
    	h3                         S r SSKrSSKrSSKr " S S5      rS rSrSrSrSS	 jr	S
 r
SS jr\S:X  a  \" \" 5       R                  5        gg)zRUtilities for selecting and enumerating the Type Libraries installed on the system    Nc                   @    \ rS rSrS
S jrS rS rS rS rSS jr	S	r
g)TypelibSpec   c                     [        U5      U l        [        U5      U l        X0l        X@l        S U l        S U l        S U l        XPl	        g N)
strclsidintlcidmajorminordlldescver_descflags)selfr	   r   r   r   r   s         lC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/client/selecttlb.py__init__TypelibSpec.__init__	   s>    Z
I	
 

	
    c                 <    US:X  a  U R                   $ [        S5      e)Nr   zCan't index me!)r   
IndexError)r   items     r   __getitem__TypelibSpec.__getitem__   s    19== *++r   c                 z   U R                   =(       d    SR                  5       U R                  =(       d    SR                  5       U R                  U R                  4nUR                   =(       d    SR                  5       UR                  =(       d    SR                  5       UR                  UR                  4nX#:  $ N r   lowerr   r   r   )r   othermethems       r   __lt__TypelibSpec.__lt__   s    ]] b'')YY_"##%JJJJ	
 ^^!r((*ZZ2$$&KKKK	
 yr   c                    U R                   =(       d    SR                  5       UR                   =(       d    SR                  5       :H  =(       a    U R                  =(       d    SR                  5       UR                  =(       d    SR                  5       :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   r   )r   r!   s     r   __eq__TypelibSpec.__eq__,   s    ]] b'')enn.B-I-I-KK *b'')ejj.>B-E-E-GG*

ekk)* 

ekk)		
r   c                     U R                   c  g[        R                  " U R                   5      nU R                  US 5        g)Nr      )r   	pythoncomLoadTypeLibFromTypelib)r   tlbs     r   ResolveTypelibSpec.Resolve4   s6    88##DHH-d#r   Nc                     UR                  5       n[        US   5      U l        US   U l        US   U l        US   U l        U(       a  X l        g g )Nr   r*         )
GetLibAttrr   r	   r   r   r   r   )r   typelibdllNamelas       r   r-   TypelibSpec.FromTypelib;   sM    !AZ
qE	U
U
H r   )r	   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r   r   r$   r'   r/   r-   __static_attributes__ r   r   r   r      s     ,

r   r   c                    Sn/ n  [         R                  " X5      n [         R                  " X5      nUR	                  X445        US-  nMG  ! [         R                   a     U$ f = f! [         R                   a    Sn NLf = f)Nr   r*   r   )win32api
RegEnumKeyerrorRegQueryValueappend)rootindexretr   vals        r   EnumKeysrJ   E   s    E
C
	&&t3D	 ((4C 	

D;
  ~~ 	 J	 ~~ 	C	s"   A A( A%$A%(B Br*      r3   c           
         [         R                  " [        R                  S5      n[	        U5      n/ nU GH  u  pE [         R                  " U[        U5      5      n[	        U5       GHH  u  pxUR                  SS5      n	[        U	5      S:  a  U	R                  S5        U	S   n
U	S   n[         R                  " U[        U5      5      n [        [         R                  " US5      5      nX-  S:X  d  M  [	        U5       H  u  p [        U5      n [         R                  " X S35      n [         R                  " US
5      u  nnU[        R                  :X  a  [         R                  " U5      n[!        XNXU5      nUUl        UUl        US-   U-   S-   Ul        UR                  U5        M     GMK     GM     U$ ! [         R                   a     GM  f = f! [         R                  [        4 a    Sn GNf = f! [         a     GM	  f = f! [         R                   a;     [         R                  " X S	35      n GN! [         R                   a      GMW  f = ff = f! [         R                   a    S
n GNf = f)zFReturn a list of TypelibSpec objects, one for each registered library.Typelib.r*   rK   0r   FLAGSz\win32z\win64Nz ())rA   
RegOpenKeywin32conHKEY_CLASSES_ROOTrJ   r   rC   splitlenrE   r
   rD   
ValueErrorRegQueryValueExREG_EXPAND_SZExpandEnvironmentStringsr   r   r   r   )excludeFlagskeyiidsresultsiidcrapkey2versiontlbdescmajor_minorr   r   key3r   r   key4r   typspecs                      r   EnumTlbsri   ^   sC   


h88)
DCC=DG		&&sCH5D !)G!--Q/K;!#""3'  NENE&&tS\:DH224AB #q("*4.JD!"4y%'22469IJ##+#;#;D$#GS("8"88"*"C"CC"HC 's%FD"DH 'DI$+dNW$<s$BDMNN4(/ #1- !/ h Nc ~~ 		, NNJ/  & ! !
 $>> %%#+#6#6tvW=M#ND'~~ %$%% $>> #"#sr    F;
 GG:H+AI;GGG76G7:
H		H		I	!H==II	II	I8	7I8	c                 v    / n[        5       nU H&  nUR                  U :X  d  M  UR                  U5        M(     U$ )z@Find all installed type libraries with the specified description)ri   r   rE   )r   rH   itemsr   s       r   FindTlbsWithDescriptionrl      s7    
CJE99JJt  Jr   c                    SSK n[        U5      nU H9  n[        UR                  S5      Ul        [        UR                  S5      Ul        M;     UR                  5         UR                  R                  R                  XS/5      nUc  gX5   $ )zUDisplay a list of all the type libraries, and select one.   Returns None if cancelledr   N   zType Library)	pywin.dialogs.listri   r
   r   r   sortdialogslistSelectFromLists)titler[   pywinrk   ircs         r   	SelectTlbrx      sw    \"Eaggr"aggr"  
JJL				+	+E>:J	KB	z9r   __main__r9   )zSelect Libraryr   )__doc__r+   rA   rS   r   rJ   FLAG_RESTRICTEDFLAG_CONTROLFLAG_HIDDENri   rl   rx   r:   print__dict__r?   r   r   <module>r      sa    X   : :z( 9x" z	)+

 r   