i3dZddlZddlZddlZGddZdZdZdZdZdd Z d Z dd Z e d kre e jdSdS)zRUtilities for selecting and enumerating the Type Libraries installed on the systemNc6eZdZd dZdZdZdZdZd dZdS) TypelibSpecrct||_t||_||_||_d|_d|_d|_||_ dSN) strclsidintlcidmajorminordlldescver_descflags)selfrr r r rs GC:\PYTHON\_runtimes\venv\Lib\site-packages\win32com/client/selecttlb.py__init__zTypelibSpec.__init__ sLZZ II      c:|dkr|jStd)NrzCan't index me!)r IndexError)ritems r __getitem__zTypelibSpec.__getitem__s" 199= *+++rc|jpd|jpd|j|jf}|jpd|jpd|j|jf}||kSNrlowerrr r )rothermethems r__lt__zTypelibSpec.__lt__s ] b ' ' ) ) Y_" # # % % J J  ^ !r ( ( * * Z 2 $ $ & & K K   Dyrc"|jpd|jpdkoW|jpd|jpdko|j|jko|j|jkSrr)rrs r__eq__zTypelibSpec.__eq__,s ] b ' ' ) )en.B-I-I-K-K K *b''))ej.>B-E-E-G-GG * ek) * ek)  rcv|jdStj|j}||ddS)Nr)r pythoncom LoadTypeLib FromTypelib)rtlbs rResolvezTypelibSpec.Resolve4s< 8 1#DH-- d###qrNc|}t|d|_|d|_|d|_|d|_|r ||_dSdS)Nrr%) GetLibAttrrrr r r r )rtypelibdllNamelas rr(zTypelibSpec.FromTypelib;sb    ! !AZZ qE U U  DHHH  rrr) __name__ __module__ __qualname__rrr!r#r*r(rrrrsx    ,,,      rrcd}g} tj||}n#tj$rYnOwxYw tj||}n#tj$rd}YnwxYw|||f|dz }w|S)Nrr%r)win32api RegEnumKeyerror RegQueryValueappend)rootindexretrvals rEnumKeysrAEs E C  &tU33DD~    E  (t44CC~   CCC  D#;    Js//A AAr%r-c tjtjd}t |}g}|D]D\}} tj|t |}n#tj$rY;wxYwt |D]\}}|dd} t| dkr| d| d} | d} tj|t |} ttj | d} n#tjtf$rd} YnwxYw| |zdkr2t | D]!\}} t|}n#t$rY#wxYw tj| |d}nE#tj$r3 tj| |d }n#tj$rYY|wxYwYnwxYw tj |d \}}|tjkrtj|}n#tj$rd }YnwxYwt!||| | | }||_||_|d z|zd z|_| |#F|S) zFReturn a list of TypelibSpec objects, one for each registered library.Typelib.r%rB0rFLAGSz\win32z\win64Nz ())r8 RegOpenKeywin32conHKEY_CLASSES_ROOTrArr:splitlenr<r r; ValueErrorRegQueryValueEx REG_EXPAND_SZExpandEnvironmentStringsrr rr) excludeFlagskeyiidsresultsiidcrapkey2versiontlbdesc major_minorr r key3rr key4r typspecs rEnumTlbsr`^s  h8) D DC C==DG3)3) T &sCHH55DD~    H !)- )- ) GW!--Q//K;!##""3''' NENE&tS\\::D H24AABBNJ/    |#q(("*4..))JD$!"4yy%!!! !%'24D9I9I9IJJ#>%%%%#+#6t=M=M=M#N#NDD'~%%%$HH%!D% ##+#;D$#G#GS("888"*"CC"H"HC#>###"#&sD%FFD"DH 'DI$+dNW$:J K KB zt 9r__main__r2)rdr)__doc__r&r8rJrrAFLAG_RESTRICTED FLAG_CONTROL FLAG_HIDDENr`rcrpr3print__dict__r6rrrxsXX::::::::z(  9999x    " z E))++ r