
[Mc           @   s  d  Z  d d l Z d d l m Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l Z d   Z d Z d Z d Z d d l m Z m Z d d l Z i d	 e j 6d
 e j 6d e j 6d e j 6d e j 6d e j 6Z d   Z d f  d     YZ d   Z d   Z d   Z d f  d     YZ  d f  d     YZ! d f  d     YZ" d f  d     YZ# d d d d  d! d" d# d$ d% d& d' d( d) g Z$ d* d+ d, g Z% d- d. g Z& d/ g Z' d0 f  d1     YZ( e) d2 k rd3 GHn  d4   Z* d S(5   s  AXScript Client Framework

  This module provides a core framework for an ActiveX Scripting client.
  Derived classes actually implement the AX Client itself, including the
  scoping rules, etc.

  There are classes defined for the engine itself, and for ScriptItems
iN(   t   axscriptc         C   s   t  j d d |   S(   Ns   (
)||(
)s   
(   t   ret   sub(   t   text(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   RemoveCR   s    i   i    i@   (   t	   Exceptiont   IsCOMServerExceptiont   SCRIPTSTATE_UNINITIALIZEDt   SCRIPTSTATE_INITIALIZEDt   SCRIPTSTATE_STARTEDt   SCRIPTSTATE_CONNECTEDt   SCRIPTSTATE_DISCONNECTEDt   SCRIPTSTATE_CLOSEDc         G   sf   d d  l  } | j   } z | j |  f |   SWd  d d  l } | j |  j   j d  j   Xd  S(   Nit   time(   t   profilet   Profilet   runcallt   pstatst   Statst
   strip_dirst
   sort_statst   print_stats(   t   fnt   argsR   t   profR   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   *   s    t
   SafeOutputc           B   s5   e  Z d  Z d d  Z d   Z d   Z d   Z RS(   i   c         C   s%   | d  k r t j } n  | |  _ d  S(   N(   t   Nonet   syst   stdoutt   redir(   t   selfR   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   __init__9   s     c         C   s8   y |  j  j |  Wn t j | j d   n Xd  S(   Nt   mbcs(   R   t   writet   win32apit   OutputDebugStringt   encode(   R   t   message(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR!   <   s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   flushA   s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   closeC   s    N(   t   __name__t
   __module__t	   softspaceR   R   R!   R&   R'   (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   7   s
   		c          C   s   t  t j t  s t   t _ t _ d d  l }  d   } |  j |  j  |  j k r y |  j |  j |  Wq t	 k
 r q Xq n  d  S(   Nic         S   s	   d GHd  S(   Ns@   WARNING: Ignoring keyboard interrupt from ActiveScripting engine(    (   t   at   b(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   noOpN   s    (
   t
   isinstanceR   R   R   t   stderrt   signalt	   getsignalt   SIGINTt   default_int_handlert
   ValueError(   R0   R-   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   MakeValidSysOutsH   s    	c          G   s   x |  D]
 } | Gq WHd S(   s:   A function used instead of "print" for debugging output.
	N(    (   R   t   arg(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   traceZ   s    c         C   s   d GH| GHt  |  |   d S(   sJ   A debugging function that raises an exception considered an "Assertion".
	s5   **************** ASSERTION FAILED *******************N(   R   (   t   scodet   desc(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   RaiseAsserta   s    t   AXScriptCodeBlockc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   s<   An object which represents a chunk of code in an AX Script
	c         C   sC   | |  _  | |  _ d  |  _ | |  _ | |  _ | |  _ d |  _ d  S(   Ni    (   t   namet   codeTextR   t
   codeObjectt   sourceContextCookiet   startLineNumbert   flagst   beenExecuted(   R   R<   R=   R?   R@   RA   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   k   s    						c         C   s   d |  j  S(   Ns   <%s>(   R<   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetFileNames   s    c         C   s   |  j  S(   N(   R<   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetDisplayNamew   s    c         C   s   d } xO t  | d  D]= } |  j j d | d  } | d k r t |  j  } q q W|  j j d | d  } | d k r t |  j  } n  |  j | d | !j   S(   Nii   s   
(   t   rangeR=   t   findt   lent   strip(   R   t   not   post   it   epos(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt	   GetLineNoy   s     (   R(   R)   t   __doc__R   RC   RD   RM   (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR;   h   s
   			t   Eventc           B   s;   e  Z d  Z d   Z d   Z d   Z d   Z d   Z RS(   s,   A single event for a ActiveX named object.
	c         C   s   d |  _  d  S(   Ns   <None>(   R<   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR      s    c         C   s    d |  j  j t |   |  j f S(   Ns   <%s at %d: %s>(   t	   __class__R(   t   idR<   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   __repr__   s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   Reset   s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   Close   s    c         C   s*   | d |  _  | j |  j   d |  _ d  S(   Ni    (   t   dispidt   GetNamesR<   (   R   t   typeinfot   funcdesc(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   Build   s    (   R(   R)   RN   R   RR   RS   RT   RY   (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRO      s   				t	   EventSinkc           B   se   e  Z d  Z g  Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z RS(
   sT   A set of events against an item.  Note this is a COM client for connection points.
	c         C   sC   i  |  _  d  |  _ | |  _ | |  _ | j   j |  _ d  |  _ d  S(   N(	   t   eventsR   t
   connectiont
   coDispatcht   myScriptItemt	   GetEnginet   ProcessScriptItemEventt   myInvokeMethodt   iid(   R   t   myItemR]   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR      s    				c         C   s   |  j    d  S(   N(   t
   Disconnect(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRS      s    c         C   s_   d  |  _ d  |  _ d  |  _ d  |  _ x! |  j j   D] } | j   q4 Wi  |  _ |  j   d  S(   N(	   R   Rb   R^   Ra   R]   R[   t
   itervaluesRS   Rd   (   R   t   event(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRT      s    					c         C   s&   | |  j  k r" t j j j |   Sd  S(   N(   Rb   t   win32comt   servert   utilt   wrap(   R   Rb   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _query_interface_   s    c         C   sI   y |  j  | } Wn t d t j   n X|  j |  j | | | |  S(   NR8   (   R[   R   t   winerrort   DISP_E_MEMBERNOTFOUNDRa   R^   (   R   RU   t   lcidt   wFlagsR   Rf   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _invoke_   s
    c   
      C   s   | j    } | d } | d } | t j t j g k rK t t j d  n  | d } xf t |  D]X } | j |  } t j	 t j
 B} | | t j B@| k rb | j |  }	 | j |	  Sqb Wd S(   s?   Gets the typeinfo for the Source Events for the passed typeinfoi   i   s(   The typeKind of the object is unexpectedi   N(   t   GetTypeAttrt	   pythoncomt   TKIND_COCLASSt   TKIND_INTERFACER:   Rl   t   E_UNEXPECTEDt   xranget   GetImplTypeFlagst   IMPLTYPEFLAG_FDEFAULTt   IMPLTYPEFLAG_FSOURCEt   IMPLTYPEFLAG_FRESTRICTEDt   GetRefTypeOfImplTypet   GetRefTypeInfo(
   R   RW   t   attrt   cFuncst   typeKindt	   cImplTypeRK   RA   t   flagsNeededt   href(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetSourceTypeInfo   s    


c         C   s_  y+ |  j  j t j  } d } | j   } WnV t j k
 r d } d } y |  j  j t j  } Wq t j k
 r d } q Xn Xx t |  D] } | r | j	 | t j
  \ } } n | j   } |  j |  } d } | r | j   }	 |	 d |  _ |	 d } xO t |  D]> }
 | j |
  } t   } | j | |  | |  j | j <qWq q Wd  S(   Ni   i    i   (   R]   t   QueryInterfaceR    t   IID_IProvideMultipleClassInfot   GetMultiTypeInfoCountRr   t	   com_errort   IID_IProvideClassInfoRv   t   GetInfoOfIndext   MULTICLASSINFO_GETTYPEINFOt   GetClassInfoR   Rq   Rb   t   GetFuncDescRO   RY   R[   RU   (   R   t   mainTypeInfot   isMultit   numTypeInfost   itemRW   RA   t
   sourceTypeR~   R}   RK   RX   Rf   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   BuildEvents   s4    
	c         C   sJ   |  j  d  k	 s |  j d  k r" d  St j j j |  j |  |  j  |  _  d  S(   N(   R\   R   Rb   Rg   t   clientt   connectt   SimpleConnectionR]   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   Connect   s     c         C   sA   |  j  r= y |  j  j   Wn t j k
 r0 n Xd  |  _  n  d  S(   N(   R\   Rd   Rr   R   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRd      s    	(   R(   R)   RN   t   _public_methods_R   RS   RT   Rk   Rp   R   R   R   Rd   (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRZ      s   			
					t
   ScriptItemc           B   s   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s<   An item (or subitem) that is exposed to the ActiveX script
	c         C   sL   | |  _  | |  _ | |  _ | |  _ d  |  _ i  |  _ d |  _ d |  _ d  S(   Ni    (	   t
   parentItemt   dispatchR<   RA   R   t	   eventSinkt   subItemst   createdConnectionst   isRegistered(   R   R   R<   R   RA   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR      s    							c         C   sQ   d } |  j  d  k	 r. |  j  t j @r. d } n  d |  j j t |   |  j | f S(   Nt    s   /Globals   <%s at %d: %s%s>(   RA   R   R    t   SCRIPTITEM_GLOBALMEMBERSRP   R(   RQ   R<   (   R   t	   flagsDesc(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRR      s    	c         C   s   g  } |  j  d  k	 r5 |  j  t j @r5 | j d  n  |  j  d  k sZ |  j  t j @d k rj | j d  n  |  j  d  k	 r |  j  t j @r | j d  n  |  j  d  k	 r |  j  t j @r | j d  n  d | Gd G|  j Gd Gd	 j	 |  G|  GHx( |  j
 j   D] } | j | d
  qWd  S(   Ns   GLOBAL!i    s   NOT VISIBLEs
   EVENT SINKs	   CODE ONLYt    s   Name=s   , flags=t   /i   (   RA   R   R    R   t   appendt   SCRIPTITEM_ISVISIBLEt   SCRIPTITEM_ISSOURCEt   SCRIPTITEM_CODEONLYR<   t   joinR   Re   t   _dump_(   R   t   levelt	   flagDescst   subItem(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    %)c         C   sT   |  j    |  j r# |  j j   n  d |  _ x! |  j j   D] } | j   q< Wd  S(   Ni    (   Rd   R   RS   R   R   Re   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRS     s    
		c         C   sx   |  j    d  |  _ d  |  _ |  j r> |  j j   d  |  _ n  x! |  j j   D] } | j   qN Wg  |  _ d |  _ d  S(   Ni    (	   RS   R   R   R   R   RT   R   Re   R   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRT     s    
				c         C   sJ   |  j  r d  Sd |  _  x- |  j j   D] } | j  s& | j   q& q& Wd  S(   Ni   (   R   R   Re   t   Register(   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   (  s    	 		c         C   s   |  j  t j @S(   N(   RA   R    R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   IsGlobal;  s    c         C   s   |  j  t j t j B@d k S(   Ni    (   RA   R    R   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt	   IsVisible>  s    c         C   s2   |  } x" | j  j |  j k r* | j  } q	 W| j  S(   N(   R   RP   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR_   A  s    c         C   sH   |  j  } |  j rD y |  j j   d | } WqD t k
 r@ qD Xn  | S(   Nt   .(   R<   R   t   _GetFullItemNamet   AttributeError(   R   t   ret(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   G  s    		c         C   s   |  j  S(   N(   RP   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetSubItemClassP  s    c         C   s   |  j  | j   S(   N(   R   t   lower(   R   R<   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt
   GetSubItemS  s    c         C   s   | j    } y |  j | } | j d  k	 r[ | d  k	 r[ | j | k r[ t d t j   n  | j d  k	 r | d  k	 r t d t j   n  | | _ | | _ Wn7 t k
 r |  j	   | | | |  } |  j | <n X| S(   NR8   (
   R   R   RA   R   R   Rl   t   E_INVALIDARGR   t   KeyErrorR   (   R   R   R<   R   RA   t   keyNamet   rc(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetCreateSubItemV  s    *	*c         C   sA   |  j  r d  Sd |  _  |  j t j @r= |  j   |  j   n  d  S(   Ni   (   R   RA   R    R   R   t   FindBuildSubItemEvents(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   CreateConnectionsh  s    	 	
c         C   sA   |  j  r |  j  j   n  x! |  j j   D] } | j   q) Wd  S(   N(   R   R   R   Re   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   r  s    	c         C   sA   |  j  r |  j  j   n  x! |  j j   D] } | j   q) Wd  S(   N(   R   Rd   R   Re   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRd   y  s    	c         C   sW   |  j  d  k	 s |  j d  k r1 t t j d  n  t |  |  j  |  _  |  j  j   d  S(   Ns8   Item already has built events, or no dispatch available?(   R   R   R   R:   Rl   Ru   RZ   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c      
   C   s  y% |  j  j t j  } | j   } Wn t j k
 r< d  SXxt |  D]} | j | t j	  \ } } |  j
 |  } d } xy | j |  } Wn t j k
 r Pn X| d } | d }	 | d }
 | d } | d } | d } yb | t j @oH|
 t j k oH| t j k oH| d d t j k oH| d d d t j k } Wn d } n X| r y | j |	  } |  j  j |	 d t j d  } t |  t j t j k r| d } |  j |  | | t j  } | j   | j   n  Wqt j k
 rqXq q qJ Wd  S(   Ni    i   i   i   i   i	   (   R   R   R    R   R   Rr   R   Rv   R   R   t   GetDefaultSourceTypeInfoR   t   FUNCFLAG_FRESTRICTEDt   FUNC_DISPATCHt   INVOKE_PROPERTYGETt   VT_PTRt   VT_USERDEFINEDRV   t   Invoket   DISPATCH_PROPERTYGETt   typet   TypeIIDst   IID_IDispatchR   R   R   R   (   R   t   multiTypeInfoR   R   RW   RA   t   defaultTypet   indext   fdescRU   t   funckindt   invkindt   elemdesct	   funcflagst   isSubObjectt   namest   resultR<   t   subObj(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     sN    








c         C   s   | j    } | d } | d } | t j t j g k rK t t j d  n  | d } x t |  D] } | j |  } | t j	 t j
 Bt j B@t j	 k rb | j |  } | j |  }	 |	 j    } | d } | d }
 | t j k r|
 t j @r| j d  } |	 j |  S|	 Sqb qb Wd S(   sB   Gets the typeinfo for the Default Dispatch for the passed typeinfoi   i   s(   The typeKind of the object is unexpectedi   i   iN(   Rq   Rr   Rs   Rt   R:   Rl   Ru   Rv   Rw   Rx   Ry   Rz   R{   R|   t   TYPEFLAG_FDUAL(   R   RW   R}   R~   R   R   RK   RA   R   t   defTypeInfot	   typeFlags(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s$    


$

(   R(   R)   RN   R   RR   R   RS   RT   R   R   R   R_   R   R   R   R   R   R   Rd   R   R   R   (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR      s(   															
				8t   SetScriptSitet   GetScriptSitet   SetScriptStatet   GetScriptStateRT   t   AddNamedItemt
   AddTypeLibt   GetScriptDispatcht   GetCurrentScriptThreadIDt   GetScriptThreadIDt   GetScriptThreadStatet   InterruptScriptThreadt   Clonet   InitNewt   AddScriptlett   ParseScriptTextt   GetInterfaceSafetyOptionst   SetInterfaceSafetyOptionst   ParseProcedureTextt	   COMScriptc           B   s-  e  Z d  Z e e e e Z e j	 e j
 e j g Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ d    Z, d!   Z- d"   Z. d#   Z/ d$   Z0 d%   Z1 d&   Z2 d'   Z3 d(   Z4 d)   Z5 d7 d*  Z7 d7 d+  Z8 d7 d,  Z9 d7 d-  Z: d7 d.  Z; d/   Z< d0   Z= d1   Z> d2   Z? d3   Z@ d4   ZA d5   ZB d6   ZC RS(8   st   An ActiveX Scripting engine base class.

	This class implements the required COM interfaces for ActiveX scripting.
	c         C   sb   t    d |  _ d  |  _ t j |  _ t j |  _ d  |  _	 d |  _
 d |  _ i  |  _ i  |  _ d  S(   Nii    (   R5   t   baseThreadIdR   t   debugManagerR    t   SCRIPTTHREADSTATE_NOTINSCRIPTt   threadStateR   t   scriptStatet
   scriptSitet   safetyOptionsRn   R   t   scriptCodeBlocks(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    						c         C   s   |  j  r |  j  j |  Sd S(   Ni    (   R   t   _query_interface_for_debugger_(   R   Rb   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRk     s    	c         C   s&   |  j  d  k	 r" |  j t j  n  d  S(   N(   R   R   R   R    R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c	   	   	   C   s&   |  j  | | | | | | | |  d  S(   N(   t   DoAddScriptlet(	   R   t   defaultNamet   codet   itemNamet   subItemNamet	   eventNamet	   delimiterR?   R@   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   
  s    c	   	   	   C   s   | s< |  j  t j k s< |  j  t j k s< |  j  t j k rI | t B} n | t @} | t @rk |  j   n  |  j | | | | |  S(   N(   R   R    R	   R
   R   t   SCRIPTTEXT_FORCEEXECUTIONt   RegisterNewNamedItemst   DoParseScriptText(	   R   R   R   t   contextR   R?   R@   RA   t   bWantResult(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    
c
   
      C   s)   t  d | | | | | | | | |	 
 d  S(   NR   (   R7   R   (
   R   R   t   formalParamst   procNameR   t
   unkContextR   t   contextCookiet   startingLineNumberRA   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    %
c         C   s7  | |  _  |  j d  k	 r( |  j j   n  d d  l } y. d d  l } d d  l } | j |   |  _ Wn t j	 k
 r t
 d  d  |  _ ne t k
 r t
 d  d  |  _ nB | j   t
 d t j   d t j   d f  d  |  _ n Xy | j   |  _ Wn# t j	 k
 r(t j   |  _ n X|  j   d  S(   Nis<   Debugging interfaces not available - debugging is disabled..sN   Debugging extensions (axdebug) module does not exist - debugging is disabled..s2   *** Debugger Manager could not initialize - %s: %si    i   (   R   R   R   RT   t	   tracebackt   win32com.axdebug.axdebugt   debugt   DebugManagerRr   R   R7   t   ImportErrort	   print_excR   t   exc_infot   GetLCIDRn   R"   t   GetUserDefaultLCIDRS   (   R   t   siteR  Rg   R  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   ,  s.    	


(c         C   s4   |  j  d  k r$ t d t j   n  |  j  j |  S(   NR8   (   R   R   R   Rl   t   S_FALSER   (   R   Rb   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   I  s     c         C   s3  | |  j  k r d  S|  j  t j k r: t d t j   n  | t j k rt |  j  t j t j g k r/|  j	   q/n| t j k r |  j  t j k r |  j
   n  |  j  t j k r |  j   n  |  j   |  j t j  nQ| t j k rT|  j  t j t j g k r%|  j t j  |  j   n  |  j  t j k r/|  j   |  j |  q/n | t j k r|  j  t j k r/|  j
   q/n | t j k r|  j   n | t j k r|  j  t j k r|  j	   n  |  j  t j k r|  j
   n  |  j  t j k r|  j   n  |  j |  n t d t j   d  S(   NR8   (   R   R    R   R   Rl   R   R   R
   R	   t   StopRd   R   RS   t   Runt   ChangeScriptStateR   R   RT   (   R   t   state(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   M  sF     

c         C   s   |  j  S(   N(   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   v  s    c         C   s	  |  j  t j t j g k r( |  j   n  |  j  t j t j t j t j g k rR n  |  j  t j t j t j t j t j g k r |  j t j	  x! |  j
 j   D] } | j   q Wi  |  _
 d |  _ n  |  j r |  j j   d  |  _ n  d  |  _ i  |  _ d |  _ d  S(   Nii    (   R   R    R
   R   R  R   R	   R   R  R   R   Re   RT   R   R   R   R   R   t   persistLoaded(   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRT   y  s     '-				c         C   s   |  j  d  k r$ t d t j   n  y2 |  j  j | t j  d } | j t	 j
  } Wn, t	 j k
 r t d t j d d   n X|  j   |  | | |  } |  j | <| j   r | j   n  d  S(   NR8   i    R9   s+   Object has no dispatch interface available.(   R   R   R   Rl   R   t   GetItemInfoR    t   SCRIPTINFO_IUNKNOWNR   Rr   R   R   t   E_NOINTERFACEt   GetNamedItemClassR   R   R   (   R   R<   RA   t   unknownR   t   newItem(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s     &c         C   s   t  d t j   d  S(   NR8   (   R   Rl   t	   E_NOTIMPL(   R   R<   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c         C   s   |  j  S(   N(   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c         C   sO   |  j  d k r$ t d t j   n  |  j  | k rH t d t j   n  |  j  S(   NiR8   (   R   R   Rl   Ru   R   (   R   t   win32ThreadId(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s
    c         C   sO   |  j  d k r$ t d t j   n  | |  j  k rH t d t j   n  |  j S(   NiR8   (   R   R   Rl   Ru   R   R   (   R   t   scriptThreadId(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s
    c         C   s3   d d l  m } | j | |  j | | d d d  S(   Ni(   t   gencachet
   bForDemandi   (   t   win32com.clientR  t   EnsureModuleRn   (   R   t   uuidt   majort   minorRA   R  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c         C   s   t  d d t j  d  S(   Ns   Not ImplementedR8   (   R   Rl   R  (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c         C   st   | | @d k r d  S| t  j t  j t  j t j t j g k r^ |  j   } | | @| @|  _ n t	 d t
 j   d  S(   Ni    R8   (   Rr   t   IID_IPersistt   IID_IPersistStreamt   IID_IPersistStreamInitR    t   IID_IActiveScriptt   IID_IActiveScriptParset#   _GetSupportedInterfaceSafetyOptionsR   R   Rl   R  (   R   Rb   t   optionsMaskt   enabledOptionst	   supported(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    c         C   s   d S(   Ni    (    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR*    s    c         C   sY   | t  j t  j t  j t j t j g k rC |  j   } | |  j f St	 d t
 j   d  S(   NR8   (   Rr   R%  R&  R'  R    R(  R)  R*  R   R   Rl   R  (   R   Rb   R-  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s
    c         C   s   |  j    |  j   d  S(   N(   R   t   DoExecutePendingScripts(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   ExecutePendingScripts  s    
c         C   s#   |  j    |  j | | | | |  S(   N(   R   t   DoProcessScriptItemEvent(   R   R   Rf   Rn   Ro   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR`     s    
c         C   s+   x$ |  j  j   D] } | j d  q Wd  S(   Ni    (   R   Re   R   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _DumpNamedItems_  s    c         C   sf   |  j  } i  |  _  xM | j   D]? \ } } | j   | j t j @r |  j | j | j  q q Wd  S(   N(   R   t	   iteritemsRT   RA   R    t   SCRIPTITEM_ISPERSISTENTR   R<   (   R   t   existingR<   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   ResetNamedItems  s    		
c         C   s   |  j  S(   N(   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetCurrentSafetyOptions  s    c         C   s4   x- |  j  j   D] } | j s | j   q q Wd  S(   N(   R   Re   R   R   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   ProcessNewNamedItemsConnections  s    	c         C   s7   x0 |  j  j   D] } | j s |  j |  q q Wd  S(   N(   R   Re   R   t   RegisterNamedItem(   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     s    	c         C   s   | j    d  S(   N(   R   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR8    s    c         C   s:   |  j  t j t j g k r d  St t j d |  j   d  S(   Ns"   Not connected or disconnected - %d(   R   R    R
   R   R:   Rl   Ru   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   CheckConnectedOrDisconnected  s    c         C   s"   |  j    |  j   |  j   d  S(   N(   R7  R   t   ConnectEventHandlers(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR   
  s    

c         C   sQ   |  j  t j k r9 |  j  t j k r9 t d t j   n  |  j   |  j   d  S(   NR8   (	   R   R    R   R	   R   Rl   Ru   R/  t   DoRun(   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR    s    $
c         C   s-   |  j  t j k r |  j   n  |  j   d  S(   N(   R   R    R
   Rd   RS   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR    s    c         C   sC   |  j    y |  j   Wn t j k
 r. n X|  j t j  d  S(   N(   R9  t   DisconnectEventHandlersRr   R   R  R    R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRd     s    
c         C   s8   x! |  j  j   D] } | j   q W|  j t j  d  S(   N(   R   Re   R   R  R    R
   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR:  (  s    c         C   s(   x! |  j  j   D] } | j   q Wd  S(   N(   R   Re   Rd   (   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR<  .  s    c         C   s   |  j    |  j t j  d  S(   N(   R5  R  R    R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRS   3  s    
c         C   sn   |  j    zR | |  _ y  |  j r5 |  j j |  n  Wn" t j k
 rZ \ } } } } n XWd  |  j   Xd  S(   N(   t   DisableInterruptsR   R   t   OnStateChangeRr   R   t   EnableInterrupts(   R   R  t   hrR9   t   excR6   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR  8  s    
		 c         C   sV   |  j  rH |  j  j   |  j  j j r; |  j  j j | |  S| |   Sn
 | |   Sd  S(   N(   R   t   OnEnterScriptt   adbt   appDebuggerR   (   R   R   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _ApplyInScriptedSectionE  s    	c         C   sd   |  j    y? z |  j | |  SWd  |  j r= |  j j   n  |  j   XWn |  j |  n Xd  S(   N(   t   BeginScriptedSectionRE  R   t   OnLeaveScriptt   EndScriptedSectiont   HandleException(   R   t	   codeBlockR   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   ApplyInScriptedSectionO  s    
	 c         C   s)   |  j  r |  j  j   n  t | | |  S(   N(   R   RB  t   compile(   R   R   R<   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _CompileInScriptedSection\  s    	 c         C   s   | j  d  k	 r d S| d  k r+ | j } n | } | j   } |  j   yW z, |  j t |  | |  } | | _  d SWd  |  j r |  j j   n  |  j	   XWn |  j
 |  n Xd  S(   Ni   (   R>   R   R=   RC   RF  RM  R   R   RG  RH  RI  (   R   RJ  R   t   realCodeR   R<   R>   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   CompileInScriptedSection`  s"    
		 c         B   sY   |  j  rK |  j  j   |  j  j j r> |  j  j j | | |  S| | | Un
 | | | Ud  S(   N(   R   RB  RC  RD  t   run(   R   R>   t   globalst   locals(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _ExecInScriptedSectionu  s    	c         C   s   | d  k r | } n  | j s( t d  d | _ |  j   yE z |  j | j | |  Wd  |  j rt |  j j   n  |  j   XWn |  j	 |  n Xd  S(   Ns-   This code block should not have been executedi   (
   R   RB   t   AssertionErrorRF  RS  R>   R   RG  RH  RI  (   R   RJ  RQ  RR  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   ExecInScriptedSection  s     		
	 c         C   se   |  j  rQ |  j  j   |  j  j j r> |  j  j j | | |  St | | |  Sn t | | |  Sd  S(   N(   R   RB  RC  RD  t   runevalt   eval(   R   RJ  RQ  RR  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _EvalInScriptedSection  s    	c         C   s   | d  k r | } n  | j s( t d  d | _ |  j   yE z |  j | j | |  SWd  |  j rt |  j j   n  |  j   XWn |  j	 |  n Xd  S(   Ns-   This code block should not have been executedi   (
   R   RB   RT  RF  RX  R>   R   RG  RH  RI  (   R   RJ  RQ  RR  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   EvalInScriptedSection  s     		
	 c         C   s  t  j   \ } } } t |  r- d  }   n  t t j |  rn | d t j k rn d  } t	 d | d   n  t
 j |  | | | |  } d  } t
 j |  j |  j |  } | d  k	 r y |  j j d  |  Wn t j k
 r n X|  j t j  |  n  t t j d  d  S(   Ni    R8   s/   Don't have an exception to raise to the caller!(   R   R  R   R   t
   issubclassRr   R   R    t   SCRIPT_E_REPORTEDR   t   errort   AXScriptExceptiont   ProcessAXScriptExceptionR   R   t   OnScriptTerminateR   R
   R:   Rl   Ru   (   R   RJ  t   exc_typet	   exc_valuet   exc_tracebackt	   exceptiont   result_exception(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRI    s&    %		c         C   s/   |  j  d  k r t t   n  |  j  j   d  S(   N(   R   R   R   Ru   RB  (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRF    s    c         C   s/   |  j  d  k r t t   n  |  j  j   d  S(   N(   R   R   R   Ru   RG  (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyRH    s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR=    s    c         C   s   d  S(   N(    (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR?    s    c         C   s9   y |  j  | SWn# t k
 r4 t d t j   n Xd  S(   NR8   (   R   R   R   Rl   R   (   R   R<   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   GetNamedItem  s    c         C   s   t  S(   N(   R   (   R   (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR    s    c         C   s3   | |  j  | j   <|  j r/ |  j j |  n  d  S(   N(   R   RC   R   t   AddScriptBlock(   R   RJ  (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   _AddScriptCodeBlock  s    	N(D   R(   R)   RN   t   IActiveScriptMethodst   IActiveScriptParseMethodst   IObjectSafetyMethodst"   IActiveScriptParseProcedureMethodsR   R    R(  R)  t   IID_IObjectSafetyt   _com_interfaces_R   Rk   R   R   R   R   R   R   R   R   RT   R   R   R   R   R   R   R   R   R*  R   R/  R`   R1  R5  R6  R7  R   R8  R9  R   R  R  Rd   R:  R<  RS   R  RE  RK  RM  R   RO  RS  RU  RX  RY  RI  RF  RH  R=  R?  Re  R  Rg  (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyR     sr   									)								
																				
					
		

	"						t   __main__s6   This is a framework class - please use pyscript.py etcc         C   s   d  S|  j    } d GHx t | d  D]u } t |  j |   } | d } y |  j |  } Wn t j k
 rz d  } n X|  j |  } d G| Gd G| GHq& Wd GHxM t | d  D]; } t |  j	 |   } |  j |  } d G| Gd G| GHq Wd  S(   Nt   Methodsi   i    R   s   has attrt	   Variablesi   (
   Rq   Rv   t   listR   RV   Rr   t	   ole_errorR   t   GetDocumentationt
   GetVarDesc(   RW   R}   t   jR   RQ   R   t   doc(    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   dumptypeinfo  s"    

(+   RN   R   t   win32com.axscriptR    t   win32com.server.utilRg   t   win32com.client.connectR"   Rl   Rr   t   typesR   R   R   t   SCRIPTTEXT_ISEXPRESSIONt   SCRIPTTEXT_ISPERSISTENTt   win32com.server.exceptionR   R   R\  R   R   R	   R
   R   R   t	   state_mapR   R   R5   R7   R:   R;   RO   RZ   R   Rh  Ri  Rj  Rk  R   R(   Rw  (    (    (    sH   K:\RCS\Python\Lib\site-packages\win32comext\axscript\client\framework.pyt   <module>   sT   	




				_		 