
    	h                        S r SSKrSSKrSSKrSSKr \R
                  " 5         SSKJ	r	  \R                  R                  R                  SSSS5        SS/rSS	/r\\-   r\	R                   \	R"                  /r " S
 S5      r " S S5      rS rS r " S S\5      rS rS r\S:X  a&  \R6                  R*                  R9                  \\\S9  gg! \R                   a    SSKr Nf = f)a  
This sample implements a simple IE Button COM server
with access to the IWebBrowser2 interface.

To demonstrate:
* Execute this script to register the server.
* Open Pythonwin's Tools -> Trace Collector Debugging Tool, so you can
  see the output of 'print' statements in this demo.
* Open a new IE instance.  The toolbar should have a new "scissors" icon,
  with tooltip text "IE Button" - this is our new button - click it.
* Switch back to the Pythonwin window - you should see:
   IOleCommandTarget::Exec called.
  This is the button being clicked.  Extending this to do something more
  useful is left as an exercise.

Contribtions to this sample to make it a little "friendlier" welcome!
    N)	axcontrolz&{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}   SetSiteGetSiteExecQueryStatusc                   $    \ rS rSrSrS rS rSrg)Stub;   z`
this class serves as a method stub,
outputting debug info whenever the object
is being called.
c                     Xl         g Nname)selfr   s     jC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/demos/iebutton.py__init__Stub.__init__B   s    	    c                 2    [        SU R                  U5        g )NzSTUB: )printr   )r   argss     r   __call__Stub.__call__E   s    h		4(r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r
   r
   ;   s    )r   r
   c                   f    \ rS rSrSr\r\r\	R                  rSrSrSrSrS rS rS rS	 rS
 rSrg)IEButtonI   z
The actual COM server class
	IE Button+An example implementation for an IE Button. c                     U R                    H8  n[        X5      (       a  M  [        SU-  5        [        X[	        U5      5        M:     g )Nzproviding default stub for %s)_public_methods_hasattrr   setattrr
   )r   methods     r   r   IEButton.__init__V   s9    ++F4((5>?d6l3 ,r   c                     / nU H;  u  pVU[         R                  [         R                  -  -  nUR                  XV45        M=     Uc  S nXG4$ U[         R                  :X  a  SnXG4$ SnXG4$ )NzIEButton NamezIEButton State)r   OLECMDF_SUPPORTEDOLECMDF_ENABLEDappendOLECMDTEXTF_NAME)r   pguidCmdGroupprgCmdscmdtextfresultidflagscmdtexts           r   r   IEButton.QueryStatus]   s      IBY0093L3LLLEMM2+& ! G 	 333%G  'Gr   c                 2    [        XX45        [        S5        g )NzIOleCommandTarget::Exec called.)r   )r   r2   nCmdIDnCmdExecOptpvaIns        r   r   IEButton.Execn   s    m[8/0r   c                 "   U(       a  UR                  [        R                  5      nUR                  [        R                  5      n[
        R                  R                  UR                  S[        R                  5      5      U l
        g S U l
        g )Nz&{0002DF05-0000-0000-C000-000000000046})QueryInterfacer   IID_IOleCommandTarget	pythoncomIID_IServiceProviderwin32comclientDispatchQueryServiceIID_IDispatch
webbrowser)r   unknown	cmdtargetserviceproviders       r   r   IEButton.SetSites   si    ..y/N/NOI'66y7U7UVO&oo66,,<i>U>UDO #DOr   c                     U R                   $ r   )_reg_clsid_)r   s    r   
GetClassIDIEButton.GetClassID   s    r   )rI   N)r   r   r   r   r   _iebutton_com_interfaces__com_interfaces__iebutton_methods_r(   rB   CLSCTX_INPROC_SERVER_reg_clsctx__button_text_
_tool_tip__icon_
_hot_icon_r   r   r   r   rP   r   r    r   r   r"   r"   I   sM     1)11LM>JFJ4"1
#  r   r"   c                    SS K nSU R                  -  n UR                  UR                  U5      nUR	                  USSUR
                  U R                  5      nUR	                  USSUR
                  U R                  5        UR	                  USSUR
                  S5        UR	                  USSUR
                  S5        UR	                  US	SUR
                  U R                  5        UR	                  US
SUR
                  U R                  5        UR	                  USSUR
                  U R                  5        [        S5        g ! [         a    [        S5         g f = f)Nr   4SOFTWARE\Microsoft\Internet Explorer\Extensions\%38s
ButtonTextClsidExtensionCLSIDz&{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}Default VisibleYesToolTipIconHotIconzSet standard toolbar reg keys.z'Couldn't set standard toolbar reg keys.)winregrO   	CreateKeyHKEY_LOCAL_MACHINE
SetValueExREG_SZrW   rX   rY   rZ   r   OSErrorclassobjre   subKeyCLSIDhKeysubKeys        r   registerrp      sF    	C


	 0 9 9;G"",6==(2H2H
 	"Av}}h6J6J	
 	'1fmm-U	
 	$ 11fmmUK$	1fmmX=P=PQ$6==(//J$	1fmmX=P=PQ 	./  9789s   D'E E E c                    SS K nSU R                  -  n UR                  UR                  U5      nUR	                  US5      nUR	                  US5        UR	                  US5        UR	                  US5        UR	                  US5        UR	                  US5        UR	                  US	5        UR                  UR                  U5        [        S
5        g ! [         a    [        S5         g f = f)Nr   r\   r]   r^   r_   r`   rb   rc   rd   z Deleted Standard toolbar regkey.z(Couldn't delete Standard toolbar regkey.)re   rO   rf   rg   DeleteValue	DeleteKeyr   rj   rk   s        r   
unregisterrt      s     	C


	 2 9 9;G##D,74!124)4!234+4(4+22K@ 	01  :89:s   B6C C/.C/c                   0    \ rS rSrSrSrSrSrSrSr	\	r
Srg	)
PyWin32InternetExplorerButton   z&{104B66A9-9E68-49D1-A3F5-94754BE9E0E6}zPyWin32.IEButtonzTest Buttonr$   r%   r&   r    N)r   r   r   r   rO   _reg_progid_
_reg_desc_rW   rX   rY   rZ   r   r    r   r   rv   rv      s%    :K%LJM>JFJr   rv   c                  "    [        [        5        g r   )rp   rv   r    r   r   DllRegisterServerr{      s    *+r   c                  "    [        [        5        g r   )rt   rv   r    r   r   DllUnregisterServerr}      s    ,-r   __main__)finalize_registerfinalize_unregister)r   rB   win32apirD   win32com.server.registerGetConsoleTitleerrorwin32traceutilwin32com.axcontrolr   rE   gencacheEnsureModuleIObjectWithSite_methodsIOleCommandTarget_methodsrT   rA   IID_IObjectWithSiterR   r
   r"   rp   rt   rv   r{   r}   r   serverUseCommandLiner    r   r   <module>r      s  (    
 ) 	   % %&NPQSTVW X %i0 #]3 .1HH ##!! ) );  ; |0828H ,. zOO++%+/ ,  W ~~ s   C C'&C'