
    %
i                        d Z ddlZddlZddlZddlZ	  ej                     n# ej        $ r ddlZY nw xY wddlm	Z	 ej
        j                            dddd           ddgZdd	gZeez   Ze	j        e	j        gZ G d
 d          Z G d d          Zd Zd Z G d de          Zd Zd Zedk    r$ej        j                            eee           dS dS )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                       e Zd ZdZd Zd ZdS )Stubzp
    this class serves as a method stub,
    outputting debug info whenever the object
    is being called.
    c                     || _         d S N)name)selfr   s     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32com/demos/iebutton.py__init__zStub.__init__B   s    			    c                 2    t          d| j        |           d S )NzSTUB: )printr   )r   argss     r   __call__zStub.__call__E   s    h	4(((((r   N)__name__
__module____qualname____doc__r   r    r   r   r
   r
   ;   s<           ) ) ) ) )r   r
   c                   V    e Zd ZdZeZeZej	        Z
dZdZdZdZd Zd Zd Zd Zd	 Zd
S )IEButtonz%
    The actual COM server class
    	IE Button+An example implementation for an IE Button. c                     | j         D ]B}t          | |          s0t          d|z             t          | |t	          |                     Cd S )Nzproviding default stub for %s)_public_methods_hasattrr   setattrr
   )r   methods     r   r   zIEButton.__init__V   s]    + 	4 	4F4(( 45>???fd6ll333	4 	4r   c                     g }|D ]8\  }}|t           j        t           j        z  z  }|                    ||f           9|d }n|t           j        k    rd}nd}||fS )NzIEButton NamezIEButton State)r   OLECMDF_SUPPORTEDOLECMDF_ENABLEDappendOLECMDTEXTF_NAME)r   pguidCmdGroupprgCmdscmdtextfresultidflagscmdtexts           r   r   zIEButton.QueryStatus]   s}       	' 	'IBY093LLLEMM2u+&&&&GG 333%GG&Gwr   c                 H    t          ||||           t          d           d S )NzIOleCommandTarget::Exec called.)r   )r   r*   nCmdIDnCmdExecOptpvaIns        r   r   zIEButton.Execn   s+    mV[%888/00000r   c                    |r|                     t          j                  }|                     t          j                  }t
          j                            |                    dt          j	                            | _
        d S d | _
        d S )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   zIEButton.SetSites   s{     	#..y/NOOI'66y7UVVO&o66,,<i>U  DOOO #DOOOr   c                     | j         S r   )_reg_clsid_)r   s    r   
GetClassIDzIEButton.GetClassID   s    r   N)r   r   r   r   _iebutton_com_interfaces__com_interfaces__iebutton_methods_r!   r8   CLSCTX_INPROC_SERVER_reg_clsctx__button_text_
_tool_tip__icon_
_hot_icon_r   r   r   r   rE   r   r   r   r   r   I   s          1)1LM>JFJ4 4 4  "1 1 1
# # #          r   r   c                    dd l }d| j        z  }	 |                    |j        |          }|                    |dd|j        | j                  }|                    |dd|j        | j                   |                    |dd|j        d           |                    |dd|j        d           |                    |d	d|j        | j                   |                    |d
d|j        | j                   |                    |dd|j        | j	                   t          d           d S # t          $ r t          d           Y d S w xY w)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.)winregrD   	CreateKeyHKEY_LOCAL_MACHINE
SetValueExREG_SZrK   rL   rM   rN   r   OSErrorclassobjrY   subKeyCLSIDhKeysubKeys        r   registerrd      s   MMM 	C

	 0 9;GG"",6=(2H
 
 	"Av}h6J	
 	
 	
 	'1fm-U	
 	
 	
 	$ 11fmUKKK$	1fmX=PQQQ$6=(/JJJ$	1fmX=PQQQ 	./////  9 9 978888889s   DD' 'EEc                 "   dd l }d| j        z  }	 |                    |j        |          }|                    |d          }|                    |d           |                    |d           |                    |d           |                    |d           |                    |d           |                    |d	           |                    |j        |           t          d
           d S # t          $ r t          d           Y d S w xY w)Nr   rP   rQ   rR   rS   rT   rV   rW   rX   z Deleted Standard toolbar regkey.z(Couldn't delete Standard toolbar regkey.)rY   rD   rZ   r[   DeleteValue	DeleteKeyr   r^   r_   s        r   
unregisterrh      s>   MMM 	C

	 2 9;GG##D,774!12224)))4!23334+++4(((4+++2K@@@ 	011111  : : :8999999:s   CC1 1DDc                   *    e Zd ZdZdZdZdZdZdZeZ	dS )PyWin32InternetExplorerButtonz&{104B66A9-9E68-49D1-A3F5-94754BE9E0E6}zPyWin32.IEButtonzTest Buttonr   r   r   N)
r   r   r   rD   _reg_progid_
_reg_desc_rK   rL   rM   rN   r   r   r   rj   rj      s1        :K%LJM>JFJJJr   rj   c                  .    t          t                     d S r   )rd   rj   r   r   r   DllRegisterServerrn      s    *+++++r   c                  .    t          t                     d S r   )rh   rj   r   r   r   DllUnregisterServerrp      s    ,-----r   __main__)finalize_registerfinalize_unregister)r   r8   win32apir:   win32com.server.registerGetConsoleTitleerrorwin32traceutilwin32com.axcontrolr   r;   gencacheEnsureModuleIObjectWithSite_methodsIOleCommandTarget_methodsrH   r7   IID_IObjectWithSiterF   r
   r   rd   rh   rj   rn   rp   r   serverUseCommandLiner   r   r   <module>r      s   (          H~    ) ( ( ( ( ( 	  % %&NPQSTVW X X X %i0 #]3 .1HH #! ) ) ) ) ) ) ) );  ;  ;  ;  ;  ;  ;  ; |0 0 082 2 28    H   , , ,. . . zO++%+/ ,      s   $ 55