
    	hV                         % S r SSKJr  SSKrSSKJr  SSKrSSKrSSKrSSK	J
r
  SSKJr   " S S5      r " S	 S
\5      r " S S\5      r " S S\5      r SSKr\rS\S'   g! \ a    \r gf = f)zNDispatcher

Please see policy.py for a discussion on dispatchers and policies
    )annotationsN)NoReturn)IsCOMServerException)IIDToInterfaceNamec                      \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSS jrS rSrg)DispatcherBase   ak  The base class for all Dispatchers.

This dispatcher supports wrapping all operations in exception handlers,
and all the necessary delegation to the policy.

This base class supports the printing of "unexpected" exceptions.  Note, however,
that exactly where the output of print goes may not be useful!  A derived class may
provide additional semantics for this.
c                J    U" U5      U l         [        [        SS 5      U l        g )Nlogger)policygetattrwin32comr   )selfpolicyClassobjects      mC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32com/server/dispatcher.py__init__DispatcherBase.__init__   s     !&) h$7    c                     U R                   R                  X5        [        R                  " X5      $ !   U R	                  5          g = fN)r   _CreateInstance_	pythoncom
WrapObject_HandleException_)r   clsidreqIIDs      r   r   DispatcherBase._CreateInstance_#   s=    	%KK((7''55	%""$s	   03 Ac                h     U R                   R                  U5      $ !   U R                  5          g = fr   )r   _QueryInterface_r   )r   iids     r   r    DispatcherBase._QueryInterface_*   s/    	%;;//44	%""$    1c                j     U R                   R                  XX45      $ !   U R                  5          g = fr   )r   _Invoke_r   r   dispidlcidwFlagsargss        r   r%   DispatcherBase._Invoke_0   s1    	%;;''fCC	%""$s    2c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _GetIDsOfNames_r   r   namesr(   s      r   r-   DispatcherBase._GetIDsOfNames_6   s/    	%;;..u;;	%""$r#   c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _GetTypeInfo_r   r   indexr(   s      r   r2   DispatcherBase._GetTypeInfo_<   s/    	%;;,,U99	%""$r#   c                f     U R                   R                  5       $ !   U R                  5          g = fr   )r   _GetTypeInfoCount_r   r   s    r   r7   !DispatcherBase._GetTypeInfoCount_B   s-    	%;;1133	%""$    0c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _GetDispID_r   r   namefdexs      r   r<   DispatcherBase._GetDispID_H   s/    	%;;**466	%""$r#   c                l     U R                   R                  XX4XV5      $ !   U R                  5          g = fr   )r   
_InvokeEx_r   r   r'   r(   r)   r*   kwargsserviceProviders          r   rB   DispatcherBase._InvokeEx_N   s8    	%;;))fF 	%""$s    3c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _DeleteMemberByName_r   r=   s      r   rH   #DispatcherBase._DeleteMemberByName_V   s/    	%;;33D??	%""$r#   c                h     U R                   R                  U5      $ !   U R                  5          g = fr   )r   _DeleteMemberByDispID_r   r   ids     r   rK   %DispatcherBase._DeleteMemberByDispID_\   s/    	%;;55b99	%""$r#   c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _GetMemberProperties_r   r   rM   r?   s      r   rP   $DispatcherBase._GetMemberProperties_b   s/    	%;;44R>>	%""$r#   c                h     U R                   R                  U5      $ !   U R                  5          g = fr   )r   _GetMemberName_r   r   r'   s     r   rT   DispatcherBase._GetMemberName_h   s/    	%;;..v66	%""$r#   c                h     U R                   R                  X5      $ !   U R                  5          g = fr   )r   _GetNextDispID_r   r   r?   flagss      r   rX   DispatcherBase._GetNextDispID_n   s/    	%;;..t;;	%""$r#   c                f     U R                   R                  5       $ !   U R                  5          g = fr   )r   _GetNameSpaceParent_r   r8   s    r   r]   #DispatcherBase._GetNameSpaceParent_t   s-    	%;;3355	%""$r:   c                    [        5       (       d>  U R                  b  U R                  R                  S5        e [        R                  " 5         e )zVCalled whenever an exception is raised.

Default behaviour is to print the exception.
zpythoncom server error)r   r   	exception	traceback	print_excr8   s    r   r    DispatcherBase._HandleException_z   s@     $%%{{&%%&>? 	 ##%r   c                    U R                   b;  SR                  [        [        U5      5      nU R                   R	                  U5        g US S  H  n[        USS9  M     [        US   5        g )N )end)r   joinmapstrdebugprint)r   r*   recordargs       r   _trace_DispatcherBase._trace_   sW    ;;"XXc#tn-FKKf%CRycs# !$r(Or   )r   r   N)returnr   )__name__
__module____qualname____firstlineno____doc__r   r   r    r%   r-   r2   r7   r<   rB   rH   rK   rP   rT   rX   r]   r   ro   __static_attributes__ r   r   r   r      s\    8%%%%%%%%%%%%%%r   r   c                  f    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)DispatcherTrace   zGA dispatcher, which causes a 'print' line for each COM function called.c                    [         R                  X5      nU(       d?  U R                  SR                  U R                  R
                  [        U5      U5      5        U$ )Nz5in {!r}._QueryInterface_ with unsupported IID {} ({}))r   r    ro   formatr   _obj_r   )r   r!   rcs      r   r     DispatcherTrace._QueryInterface_   sM    ,,T7LLGNNKK%%'9#'>
 	r   c                X    U R                  SX4-  5        [        R                  XU5      $ )Nz&in _GetIDsOfNames_ with '%s' and '%d'
)ro   r   r-   r.   s      r   r-   DispatcherTrace._GetIDsOfNames_   s)    >%NO--d4@@r   c                X    U R                  SX4-  5        [        R                  XU5      $ )Nz(in _GetTypeInfo_ with index=%d, lcid=%d
)ro   r   r2   r3   s      r   r2   DispatcherTrace._GetTypeInfo_   s)    @E=PQ++D>>r   c                N    U R                  S5        [        R                  U 5      $ )Nzin _GetTypeInfoCount_
)ro   r   r7   r8   s    r   r7   "DispatcherTrace._GetTypeInfoCount_   s     ./0066r   c                V    U R                  SXX45        [        R                  XX#U5      $ )Nzin _Invoke_ with)ro   r   r%   r&   s        r   r%   DispatcherTrace._Invoke_   s(    'vD&&tT4HHr   c                R    U R                  SX5        [        R                  XU5      $ )Nzin _GetDispID_ with)ro   r   r<   r=   s      r   r<   DispatcherTrace._GetDispID_   s$    *D7))$d;;r   c           
         U R                  SR                  U R                  R                  XX2U5      5        [        R                  XX#XEU5      $ )Nz(in {!r}._InvokeEx_-{}{!r} [{:x},{},{!r}])ro   r}   r   r~   r   rB   rC   s          r   rB   DispatcherTrace._InvokeEx_   sM    6==!!6	

 (($o
 	
r   c                R    U R                  SX5        [        R                  XU5      $ )Nzin _DeleteMemberByName_ with)ro   r   rH   r=   s      r   rH   $DispatcherTrace._DeleteMemberByName_   s$    3T@224tDDr   c                P    U R                  SU5        [        R                  X5      $ )Nzin _DeleteMemberByDispID_ with)ro   r   rK   rL   s     r   rK   &DispatcherTrace._DeleteMemberByDispID_   s"    5r:44T>>r   c                R    U R                  SX5        [        R                  XU5      $ )Nzin _GetMemberProperties_ with)ro   r   rP   rQ   s      r   rP   %DispatcherTrace._GetMemberProperties_   s$    4b?33DdCCr   c                P    U R                  SU5        [        R                  X5      $ )Nzin _GetMemberName_ with)ro   r   rT   rU   s     r   rT   DispatcherTrace._GetMemberName_   s"    .7--d;;r   c                R    U R                  SX5        [        R                  XU5      $ )Nzin _GetNextDispID_ with)ro   r   rX   rY   s      r   rX   DispatcherTrace._GetNextDispID_   s$    .<--d%@@r   c                N    U R                  S5        [        R                  U 5      $ )Nzin _GetNameSpaceParent_)ro   r   r]   r8   s    r   r]   $DispatcherTrace._GetNameSpaceParent_   s     ./22488r   rx   N)rr   rs   rt   ru   rv   r    r-   r2   r7   r%   r<   rB   rH   rK   rP   rT   rX   r]   rw   rx   r   r   rz   rz      sK    QA?7I<
E?D<A9r   rz   c                      \ rS rSrSrS rSrg)DispatcherWin32trace   zNA tracing dispatcher that sends its output to the win32trace remote collector.c                ~    [         R                  XU5        U R                  c  SS KnU R	                  SU< S35        g )Nr   z2Object with win32trace dispatcher created (object=))rz   r   r   win32traceutilro   )r   r   r   r   s       r   r   DispatcherWin32trace.__init__   s6      F;;;!I&STUVr   rx   N)rr   rs   rt   ru   rv   r   rw   rx   r   r   r   r      s    XWr   r   c                      \ rS rSrSrS rSrg)DispatcherOutputDebugString   zHA tracing dispatcher that sends its output to win32api.OutputDebugStringc                    US S  H%  n[         R                  " [        U5      S-   5        M'     [         R                  " [        US   5      S-   5        g )Nrf   re   
)win32apiOutputDebugStringrj   )r   r*   rn   s      r   ro   #DispatcherOutputDebugString._trace_   sC    9C&&s3x#~6 ""3tBx=4#78r   rx   N)rr   rs   rt   ru   rv   ro   rw   rx   r   r   r   r      s
    R9r   r   ztype[DispatcherTrace]DefaultDebugDispatcher)rv   
__future__r   ra   typingr   r   r   r   win32com.server.exceptionr   win32com.utilr   r   rz   r   r   
win32tracer   __annotations__ImportErrorrx   r   r   <module>r      s   
 #      : ,} }@A9n A9HW? W9/ 9-4H1H -,-s   A$ $A/.A/