1 #---------------------------------------------------------------------- 
   3 # Purpose:     A class that allows the use of the IE web browser 
   8 # Created:     22-March-2004 
  10 # Copyright:   (c) 2004 by Total Control Software 
  11 # Licence:     wxWindows license 
  12 #---------------------------------------------------------------------- 
  14 # This module was originally generated by the 
  15 # wx.activex.GernerateAXModule class but has been tweaked somewhat as 
  21 clsID 
= '{8856F961-340A-11D0-A96B-00C04FD705A2}' 
  22 progID 
= 'Shell.Explorer.2' 
  25 # Flags to be used with the RefreshPage method 
  29 REFRESH_COMPLETELY 
= 3 
  31 # Flags to be used with LoadUrl, Navigate, Navigate2 methods 
  32 NAV_OpenInNewWindow 
= 0x1 
  34 NAV_NoReadFromCache 
= 0x4 
  35 NAV_NoWriteToCache 
= 0x8 
  36 NAV_AllowAutosearch 
= 0x10 
  42 # Create eventTypes and event binders 
  43 wxEVT_StatusTextChange 
= wx
.activex
.RegisterActiveXEvent('StatusTextChange') 
  44 wxEVT_ProgressChange 
= wx
.activex
.RegisterActiveXEvent('ProgressChange') 
  45 wxEVT_CommandStateChange 
= wx
.activex
.RegisterActiveXEvent('CommandStateChange') 
  46 wxEVT_DownloadBegin 
= wx
.activex
.RegisterActiveXEvent('DownloadBegin') 
  47 wxEVT_DownloadComplete 
= wx
.activex
.RegisterActiveXEvent('DownloadComplete') 
  48 wxEVT_TitleChange 
= wx
.activex
.RegisterActiveXEvent('TitleChange') 
  49 wxEVT_PropertyChange 
= wx
.activex
.RegisterActiveXEvent('PropertyChange') 
  50 wxEVT_BeforeNavigate2 
= wx
.activex
.RegisterActiveXEvent('BeforeNavigate2') 
  51 wxEVT_NewWindow2 
= wx
.activex
.RegisterActiveXEvent('NewWindow2') 
  52 wxEVT_NavigateComplete2 
= wx
.activex
.RegisterActiveXEvent('NavigateComplete2') 
  53 wxEVT_DocumentComplete 
= wx
.activex
.RegisterActiveXEvent('DocumentComplete') 
  54 wxEVT_Quit 
= wx
.activex
.RegisterActiveXEvent('OnQuit') 
  55 wxEVT_Visible 
= wx
.activex
.RegisterActiveXEvent('OnVisible') 
  56 wxEVT_ToolBar 
= wx
.activex
.RegisterActiveXEvent('OnToolBar') 
  57 wxEVT_MenuBar 
= wx
.activex
.RegisterActiveXEvent('OnMenuBar') 
  58 wxEVT_StatusBar 
= wx
.activex
.RegisterActiveXEvent('OnStatusBar') 
  59 wxEVT_FullScreen 
= wx
.activex
.RegisterActiveXEvent('OnFullScreen') 
  60 wxEVT_TheaterMode 
= wx
.activex
.RegisterActiveXEvent('OnTheaterMode') 
  61 wxEVT_WindowSetResizable 
= wx
.activex
.RegisterActiveXEvent('WindowSetResizable') 
  62 wxEVT_WindowSetLeft 
= wx
.activex
.RegisterActiveXEvent('WindowSetLeft') 
  63 wxEVT_WindowSetTop 
= wx
.activex
.RegisterActiveXEvent('WindowSetTop') 
  64 wxEVT_WindowSetWidth 
= wx
.activex
.RegisterActiveXEvent('WindowSetWidth') 
  65 wxEVT_WindowSetHeight 
= wx
.activex
.RegisterActiveXEvent('WindowSetHeight') 
  66 wxEVT_WindowClosing 
= wx
.activex
.RegisterActiveXEvent('WindowClosing') 
  67 wxEVT_ClientToHostWindow 
= wx
.activex
.RegisterActiveXEvent('ClientToHostWindow') 
  68 wxEVT_SetSecureLockIcon 
= wx
.activex
.RegisterActiveXEvent('SetSecureLockIcon') 
  69 wxEVT_FileDownload 
= wx
.activex
.RegisterActiveXEvent('FileDownload') 
  70 wxEVT_NavigateError 
= wx
.activex
.RegisterActiveXEvent('NavigateError') 
  71 wxEVT_PrintTemplateInstantiation 
= wx
.activex
.RegisterActiveXEvent('PrintTemplateInstantiation') 
  72 wxEVT_PrintTemplateTeardown 
= wx
.activex
.RegisterActiveXEvent('PrintTemplateTeardown') 
  73 wxEVT_UpdatePageStatus 
= wx
.activex
.RegisterActiveXEvent('UpdatePageStatus') 
  74 wxEVT_PrivacyImpactedStateChange 
= wx
.activex
.RegisterActiveXEvent('PrivacyImpactedStateChange') 
  76 EVT_StatusTextChange 
= wx
.PyEventBinder(wxEVT_StatusTextChange
, 1) 
  77 EVT_ProgressChange 
= wx
.PyEventBinder(wxEVT_ProgressChange
, 1) 
  78 EVT_CommandStateChange 
= wx
.PyEventBinder(wxEVT_CommandStateChange
, 1) 
  79 EVT_DownloadBegin 
= wx
.PyEventBinder(wxEVT_DownloadBegin
, 1) 
  80 EVT_DownloadComplete 
= wx
.PyEventBinder(wxEVT_DownloadComplete
, 1) 
  81 EVT_TitleChange 
= wx
.PyEventBinder(wxEVT_TitleChange
, 1) 
  82 EVT_PropertyChange 
= wx
.PyEventBinder(wxEVT_PropertyChange
, 1) 
  83 EVT_BeforeNavigate2 
= wx
.PyEventBinder(wxEVT_BeforeNavigate2
, 1) 
  84 EVT_NewWindow2 
= wx
.PyEventBinder(wxEVT_NewWindow2
, 1) 
  85 EVT_NavigateComplete2 
= wx
.PyEventBinder(wxEVT_NavigateComplete2
, 1) 
  86 EVT_DocumentComplete 
= wx
.PyEventBinder(wxEVT_DocumentComplete
, 1) 
  87 EVT_Quit 
= wx
.PyEventBinder(wxEVT_Quit
, 1) 
  88 EVT_Visible 
= wx
.PyEventBinder(wxEVT_Visible
, 1) 
  89 EVT_ToolBar 
= wx
.PyEventBinder(wxEVT_ToolBar
, 1) 
  90 EVT_MenuBar 
= wx
.PyEventBinder(wxEVT_MenuBar
, 1) 
  91 EVT_StatusBar 
= wx
.PyEventBinder(wxEVT_StatusBar
, 1) 
  92 EVT_FullScreen 
= wx
.PyEventBinder(wxEVT_FullScreen
, 1) 
  93 EVT_TheaterMode 
= wx
.PyEventBinder(wxEVT_TheaterMode
, 1) 
  94 EVT_WindowSetResizable 
= wx
.PyEventBinder(wxEVT_WindowSetResizable
, 1) 
  95 EVT_WindowSetLeft 
= wx
.PyEventBinder(wxEVT_WindowSetLeft
, 1) 
  96 EVT_WindowSetTop 
= wx
.PyEventBinder(wxEVT_WindowSetTop
, 1) 
  97 EVT_WindowSetWidth 
= wx
.PyEventBinder(wxEVT_WindowSetWidth
, 1) 
  98 EVT_WindowSetHeight 
= wx
.PyEventBinder(wxEVT_WindowSetHeight
, 1) 
  99 EVT_WindowClosing 
= wx
.PyEventBinder(wxEVT_WindowClosing
, 1) 
 100 EVT_ClientToHostWindow 
= wx
.PyEventBinder(wxEVT_ClientToHostWindow
, 1) 
 101 EVT_SetSecureLockIcon 
= wx
.PyEventBinder(wxEVT_SetSecureLockIcon
, 1) 
 102 EVT_FileDownload 
= wx
.PyEventBinder(wxEVT_FileDownload
, 1) 
 103 EVT_NavigateError 
= wx
.PyEventBinder(wxEVT_NavigateError
, 1) 
 104 EVT_PrintTemplateInstantiation 
= wx
.PyEventBinder(wxEVT_PrintTemplateInstantiation
, 1) 
 105 EVT_PrintTemplateTeardown 
= wx
.PyEventBinder(wxEVT_PrintTemplateTeardown
, 1) 
 106 EVT_UpdatePageStatus 
= wx
.PyEventBinder(wxEVT_UpdatePageStatus
, 1) 
 107 EVT_PrivacyImpactedStateChange 
= wx
.PyEventBinder(wxEVT_PrivacyImpactedStateChange
, 1) 
 110 # For this there are a few special methods implemented in C++ in the 
 111 # IEHtmlWindowBase class, so derive from it instead of ActiveXWindow. 
 112 class IEHtmlWindow(wx
.activex
.IEHtmlWindowBase
): 
 113     def __init__(self
, parent
, id=-1, pos
=wx
.DefaultPosition
, 
 114                  size
=wx
.DefaultSize
, style
=0, name
='IEHtmlWindow', ID
=-1): 
 115         # in case the old 'ID' param is used as a keyword 
 119         wx
.activex
.IEHtmlWindowBase
.__init
__(self
, parent
, 
 120             wx
.activex
.CLSID('{8856F961-340A-11D0-A96B-00C04FD705A2}'), 
 121             id, pos
, size
, style
, name
) 
 124     # Methods from IEHtmlWindowBase.  Redirected from here just for 
 125     # the sake of completeness... 
 126     def LoadString(self
, html
): 
 127         """Load the html document from a string""" 
 128         return wx
.activex
.IEHtmlWindowBase
.LoadString(self
, html
) 
 131     def LoadStream(self
, stream
): 
 133         Load the html document from a wx.InputStream or a Python 
 136         return wx
.activex
.IEHtmlWindowBase
.LoadStream(self
, stream
) 
 139     def LoadUrl(self
, URL
, Flags
=0): 
 140         """Load the document from url.""" 
 141         return self
.Navigate2(URL
, Flags
) 
 144     def GetStringSelection(self
, asHTML
=True): 
 146         Returns the contents of the selected portion of the document as 
 147         either html or plain text. 
 149         return wx
.activex
.IEHtmlWindowBase
.GetStringSelection(self
, asHTML
) 
 152     def GetText(self
, asHTML
=True): 
 154         Returns the contents of the the html document as either html or plain text. 
 156         return wx
.activex
.IEHtmlWindowBase
.GetText(self
, asHTML
) 
 159     def SetCharset(self
, charset
): 
 161         return wx
.activex
.IEHtmlWindowBase
.SetCharset(self
, charset
) 
 164     # Methods exported by the ActiveX object 
 165     def QueryInterface(self
, riid
): 
 166         return self
.CallAXMethod('QueryInterface', riid
) 
 169         return self
.CallAXMethod('AddRef') 
 172         return self
.CallAXMethod('Release') 
 174     def GetTypeInfoCount(self
): 
 175         return self
.CallAXMethod('GetTypeInfoCount') 
 177     def GetTypeInfo(self
, itinfo
, lcid
): 
 178         return self
.CallAXMethod('GetTypeInfo', itinfo
, lcid
) 
 180     def GetIDsOfNames(self
, riid
, rgszNames
, cNames
, lcid
): 
 181         return self
.CallAXMethod('GetIDsOfNames', riid
, rgszNames
, cNames
, lcid
) 
 183     def Invoke(self
, dispidMember
, riid
, lcid
, wFlags
, pdispparams
): 
 184         return self
.CallAXMethod('Invoke', dispidMember
, riid
, lcid
, wFlags
, pdispparams
) 
 187         return self
.CallAXMethod('GoBack') 
 190         return self
.CallAXMethod('GoForward') 
 193         return self
.CallAXMethod('GoHome') 
 196         return self
.CallAXMethod('GoSearch') 
 198     # added default for Flags 
 199     def Navigate(self
, URL
, Flags
=0, TargetFrameName
=None, PostData
=None, Headers
=None): 
 200         return self
.CallAXMethod('Navigate', URL
, Flags
, TargetFrameName
, PostData
, Headers
) 
 202     # Removed to prevent conflict with wx.Window.Refresh 
 204     #    return self.CallAXMethod('Refresh') 
 207     def RefreshPage(self
, Level
=REFRESH_NORMAL
): 
 208         return self
.CallAXMethod('Refresh2', Level
) 
 211         return self
.CallAXMethod('Stop') 
 214         return self
.CallAXMethod('Quit') 
 216     def ClientToWindow(self
, pcx
, pcy
): 
 217         return self
.CallAXMethod('ClientToWindow', pcx
, pcy
) 
 219     def PutProperty(self
, Property
, vtValue
): 
 220         return self
.CallAXMethod('PutProperty', Property
, vtValue
) 
 222     def GetProperty(self
, Property
): 
 223         return self
.CallAXMethod('GetProperty', Property
) 
 225     # added default for flags 
 226     def Navigate2(self
, URL
, Flags
=0, TargetFrameName
=None, PostData
=None, Headers
=None): 
 227         return self
.CallAXMethod('Navigate2', URL
, Flags
, TargetFrameName
, PostData
, Headers
) 
 229     def QueryStatusWB(self
, cmdID
): 
 230         return self
.CallAXMethod('QueryStatusWB', cmdID
) 
 232     def ExecWB(self
, cmdID
, cmdexecopt
, pvaIn
, pvaOut
=None): 
 233         return self
.CallAXMethod('ExecWB', cmdID
, cmdexecopt
, pvaIn
, pvaOut
) 
 235     def ShowBrowserBar(self
, pvaClsid
, pvarShow
, pvarSize
=None): 
 236         return self
.CallAXMethod('ShowBrowserBar', pvaClsid
, pvarShow
, pvarSize
) 
 238     # Getters, Setters and properties 
 239     def _get_Application(self
): 
 240         return self
.GetAXProp('Application') 
 241     application 
= property(_get_Application
, None) 
 243     def _get_Parent(self
): 
 244         return self
.GetAXProp('Parent') 
 245     parent 
= property(_get_Parent
, None) 
 247     def _get_Container(self
): 
 248         return self
.GetAXProp('Container') 
 249     container 
= property(_get_Container
, None) 
 251     def _get_Document(self
): 
 252         return self
.GetAXProp('Document') 
 253     document 
= property(_get_Document
, None) 
 255     def _get_TopLevelContainer(self
): 
 256         return self
.GetAXProp('TopLevelContainer') 
 257     toplevelcontainer 
= property(_get_TopLevelContainer
, None) 
 260         return self
.GetAXProp('Type') 
 261     type = property(_get_Type
, None) 
 264         return self
.GetAXProp('Left') 
 265     def _set_Left(self
, Left
): 
 266         self
.SetAXProp('Left', Left
) 
 267     left 
= property(_get_Left
, _set_Left
) 
 270         return self
.GetAXProp('Top') 
 271     def _set_Top(self
, Top
): 
 272         self
.SetAXProp('Top', Top
) 
 273     top 
= property(_get_Top
, _set_Top
) 
 275     def _get_Width(self
): 
 276         return self
.GetAXProp('Width') 
 277     def _set_Width(self
, Width
): 
 278         self
.SetAXProp('Width', Width
) 
 279     width 
= property(_get_Width
, _set_Width
) 
 281     def _get_Height(self
): 
 282         return self
.GetAXProp('Height') 
 283     def _set_Height(self
, Height
): 
 284         self
.SetAXProp('Height', Height
) 
 285     height 
= property(_get_Height
, _set_Height
) 
 287     def _get_LocationName(self
): 
 288         return self
.GetAXProp('LocationName') 
 289     locationname 
= property(_get_LocationName
, None) 
 291     def _get_LocationURL(self
): 
 292         return self
.GetAXProp('LocationURL') 
 293     locationurl 
= property(_get_LocationURL
, None) 
 296         return self
.GetAXProp('Busy') 
 297     busy 
= property(_get_Busy
, None) 
 300         return self
.GetAXProp('Name') 
 301     name 
= property(_get_Name
, None) 
 304         return self
.GetAXProp('HWND') 
 305     hwnd 
= property(_get_HWND
, None) 
 307     def _get_FullName(self
): 
 308         return self
.GetAXProp('FullName') 
 309     fullname 
= property(_get_FullName
, None) 
 312         return self
.GetAXProp('Path') 
 313     path 
= property(_get_Path
, None) 
 315     def _get_Visible(self
): 
 316         return self
.GetAXProp('Visible') 
 317     def _set_Visible(self
, Visible
): 
 318         self
.SetAXProp('Visible', Visible
) 
 319     visible 
= property(_get_Visible
, _set_Visible
) 
 321     def _get_StatusBar(self
): 
 322         return self
.GetAXProp('StatusBar') 
 323     def _set_StatusBar(self
, StatusBar
): 
 324         self
.SetAXProp('StatusBar', StatusBar
) 
 325     statusbar 
= property(_get_StatusBar
, _set_StatusBar
) 
 327     def _get_StatusText(self
): 
 328         return self
.GetAXProp('StatusText') 
 329     def _set_StatusText(self
, StatusText
): 
 330         self
.SetAXProp('StatusText', StatusText
) 
 331     statustext 
= property(_get_StatusText
, _set_StatusText
) 
 333     def _get_ToolBar(self
): 
 334         return self
.GetAXProp('ToolBar') 
 335     def _set_ToolBar(self
, ToolBar
): 
 336         self
.SetAXProp('ToolBar', ToolBar
) 
 337     toolbar 
= property(_get_ToolBar
, _set_ToolBar
) 
 339     def _get_MenuBar(self
): 
 340         return self
.GetAXProp('MenuBar') 
 341     def _set_MenuBar(self
, MenuBar
): 
 342         self
.SetAXProp('MenuBar', MenuBar
) 
 343     menubar 
= property(_get_MenuBar
, _set_MenuBar
) 
 345     def _get_FullScreen(self
): 
 346         return self
.GetAXProp('FullScreen') 
 347     def _set_FullScreen(self
, FullScreen
): 
 348         self
.SetAXProp('FullScreen', FullScreen
) 
 349     fullscreen 
= property(_get_FullScreen
, _set_FullScreen
) 
 351     def _get_ReadyState(self
): 
 352         return self
.GetAXProp('ReadyState') 
 353     readystate 
= property(_get_ReadyState
, None) 
 355     def _get_Offline(self
): 
 356         return self
.GetAXProp('Offline') 
 357     def _set_Offline(self
, Offline
): 
 358         self
.SetAXProp('Offline', Offline
) 
 359     offline 
= property(_get_Offline
, _set_Offline
) 
 361     def _get_Silent(self
): 
 362         return self
.GetAXProp('Silent') 
 363     def _set_Silent(self
, Silent
): 
 364         self
.SetAXProp('Silent', Silent
) 
 365     silent 
= property(_get_Silent
, _set_Silent
) 
 367     def _get_RegisterAsBrowser(self
): 
 368         return self
.GetAXProp('RegisterAsBrowser') 
 369     def _set_RegisterAsBrowser(self
, RegisterAsBrowser
): 
 370         self
.SetAXProp('RegisterAsBrowser', RegisterAsBrowser
) 
 371     registerasbrowser 
= property(_get_RegisterAsBrowser
, _set_RegisterAsBrowser
) 
 373     def _get_RegisterAsDropTarget(self
): 
 374         return self
.GetAXProp('RegisterAsDropTarget') 
 375     def _set_RegisterAsDropTarget(self
, RegisterAsDropTarget
): 
 376         self
.SetAXProp('RegisterAsDropTarget', RegisterAsDropTarget
) 
 377     registerasdroptarget 
= property(_get_RegisterAsDropTarget
, _set_RegisterAsDropTarget
) 
 379     def _get_TheaterMode(self
): 
 380         return self
.GetAXProp('TheaterMode') 
 381     def _set_TheaterMode(self
, TheaterMode
): 
 382         self
.SetAXProp('TheaterMode', TheaterMode
) 
 383     theatermode 
= property(_get_TheaterMode
, _set_TheaterMode
) 
 385     def _get_AddressBar(self
): 
 386         return self
.GetAXProp('AddressBar') 
 387     def _set_AddressBar(self
, AddressBar
): 
 388         self
.SetAXProp('AddressBar', AddressBar
) 
 389     addressbar 
= property(_get_AddressBar
, _set_AddressBar
) 
 391     def _get_Resizable(self
): 
 392         return self
.GetAXProp('Resizable') 
 393     def _set_Resizable(self
, Resizable
): 
 394         self
.SetAXProp('Resizable', Resizable
) 
 395     resizable 
= property(_get_Resizable
, _set_Resizable
) 
 399 #  -------------------- 
 401 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 404 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 407 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 410 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 413 #      type:bool  arg:VT_EMPTY  canGet:True  canSet:False 
 416 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 419 #      type:int  arg:int  canGet:True  canSet:True 
 422 #      type:int  arg:int  canGet:True  canSet:True 
 425 #      type:int  arg:int  canGet:True  canSet:True 
 428 #      type:int  arg:int  canGet:True  canSet:True 
 431 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 434 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 437 #      type:bool  arg:VT_EMPTY  canGet:True  canSet:False 
 440 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 443 #      type:int  arg:VT_EMPTY  canGet:True  canSet:False 
 446 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 449 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 452 #      type:bool  arg:bool  canGet:True  canSet:True 
 455 #      type:bool  arg:bool  canGet:True  canSet:True 
 458 #      type:string  arg:string  canGet:True  canSet:True 
 461 #      type:int  arg:int  canGet:True  canSet:True 
 464 #      type:bool  arg:bool  canGet:True  canSet:True 
 467 #      type:bool  arg:bool  canGet:True  canSet:True 
 470 #      type:unsupported type 29  arg:VT_EMPTY  canGet:True  canSet:False 
 473 #      type:bool  arg:bool  canGet:True  canSet:True 
 476 #      type:bool  arg:bool  canGet:True  canSet:True 
 479 #      type:bool  arg:bool  canGet:True  canSet:True 
 481 #  registerasdroptarget 
 482 #      type:bool  arg:bool  canGet:True  canSet:True 
 485 #      type:bool  arg:bool  canGet:True  canSet:True 
 488 #      type:bool  arg:bool  canGet:True  canSet:True 
 491 #      type:bool  arg:bool  canGet:True  canSet:True 
 497 #  -------------------- 
 502 #              in:True  out:False  optional:False  type:unsupported type 29 
 504 #              in:False  out:True  optional:False  type:unsupported type 26 
 516 #              in:False  out:True  optional:False  type:int 
 522 #              in:True  out:False  optional:False  type:int 
 524 #              in:True  out:False  optional:False  type:int 
 526 #              in:False  out:True  optional:False  type:unsupported type 26 
 532 #              in:True  out:False  optional:False  type:unsupported type 29 
 534 #              in:True  out:False  optional:False  type:unsupported type 26 
 536 #              in:True  out:False  optional:False  type:int 
 538 #              in:True  out:False  optional:False  type:int 
 540 #              in:False  out:True  optional:False  type:int 
 546 #              in:True  out:False  optional:False  type:int 
 548 #              in:True  out:False  optional:False  type:unsupported type 29 
 550 #              in:True  out:False  optional:False  type:int 
 552 #              in:True  out:False  optional:False  type:int 
 554 #              in:True  out:False  optional:False  type:unsupported type 29 
 556 #              in:False  out:True  optional:False  type:VT_VARIANT 
 558 #              in:False  out:True  optional:False  type:unsupported type 29 
 560 #              in:False  out:True  optional:False  type:int 
 578 #              in:True  out:False  optional:False  type:string 
 580 #              in:True  out:False  optional:False  type:VT_VARIANT 
 582 #              in:True  out:False  optional:True  type:VT_VARIANT 
 584 #              in:True  out:False  optional:True  type:VT_VARIANT 
 586 #              in:True  out:False  optional:True  type:VT_VARIANT 
 595 #              in:True  out:False  optional:False  type:VT_VARIANT 
 607 #              in:True  out:True  optional:False  type:int 
 609 #              in:True  out:True  optional:False  type:int 
 615 #              in:True  out:False  optional:False  type:string 
 617 #              in:True  out:False  optional:False  type:VT_VARIANT 
 620 #      retType:  VT_VARIANT 
 623 #              in:True  out:False  optional:False  type:string 
 629 #              in:True  out:False  optional:False  type:VT_VARIANT 
 631 #              in:True  out:False  optional:False  type:VT_VARIANT 
 633 #              in:True  out:False  optional:True  type:VT_VARIANT 
 635 #              in:True  out:False  optional:True  type:VT_VARIANT 
 637 #              in:True  out:False  optional:True  type:VT_VARIANT 
 640 #      retType:  unsupported type 29 
 643 #              in:True  out:False  optional:False  type:unsupported type 29 
 649 #              in:True  out:False  optional:False  type:unsupported type 29 
 651 #              in:True  out:False  optional:False  type:unsupported type 29 
 653 #              in:True  out:False  optional:False  type:VT_VARIANT 
 655 #              in:True  out:True  optional:True  type:VT_VARIANT 
 661 #              in:True  out:False  optional:False  type:VT_VARIANT 
 663 #              in:True  out:False  optional:False  type:VT_VARIANT 
 665 #              in:True  out:False  optional:True  type:VT_VARIANT 
 671 #  -------------------- 
 676 #              in:True  out:False  optional:False  type:string 
 682 #              in:True  out:False  optional:False  type:int 
 684 #              in:True  out:False  optional:False  type:int 
 690 #              in:True  out:False  optional:False  type:int 
 692 #              in:True  out:False  optional:False  type:bool 
 704 #              in:True  out:False  optional:False  type:string 
 710 #              in:True  out:False  optional:False  type:string 
 716 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 718 #              in:True  out:False  optional:False  type:VT_VARIANT 
 720 #              in:True  out:False  optional:False  type:VT_VARIANT 
 722 #              in:True  out:False  optional:False  type:VT_VARIANT 
 724 #              in:True  out:False  optional:False  type:VT_VARIANT 
 726 #              in:True  out:False  optional:False  type:VT_VARIANT 
 728 #              in:True  out:True  optional:False  type:bool 
 734 #              in:True  out:True  optional:False  type:VT_DISPATCH 
 736 #              in:True  out:True  optional:False  type:bool 
 742 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 744 #              in:True  out:False  optional:False  type:VT_VARIANT 
 750 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 752 #              in:True  out:False  optional:False  type:VT_VARIANT 
 761 #              in:True  out:False  optional:False  type:bool 
 767 #              in:True  out:False  optional:False  type:bool 
 773 #              in:True  out:False  optional:False  type:bool 
 779 #              in:True  out:False  optional:False  type:bool 
 785 #              in:True  out:False  optional:False  type:bool 
 791 #              in:True  out:False  optional:False  type:bool 
 797 #              in:True  out:False  optional:False  type:bool 
 803 #              in:True  out:False  optional:False  type:int 
 809 #              in:True  out:False  optional:False  type:int 
 815 #              in:True  out:False  optional:False  type:int 
 821 #              in:True  out:False  optional:False  type:int 
 827 #              in:True  out:False  optional:False  type:bool 
 829 #              in:True  out:True  optional:False  type:bool 
 835 #              in:True  out:True  optional:False  type:int 
 837 #              in:True  out:True  optional:False  type:int 
 843 #              in:True  out:False  optional:False  type:int 
 849 #              in:True  out:True  optional:False  type:bool 
 855 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 857 #              in:True  out:False  optional:False  type:VT_VARIANT 
 859 #              in:True  out:False  optional:False  type:VT_VARIANT 
 861 #              in:True  out:False  optional:False  type:VT_VARIANT 
 863 #              in:True  out:True  optional:False  type:bool 
 865 #  PrintTemplateInstantiation 
 869 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 871 #  PrintTemplateTeardown 
 875 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 881 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 883 #              in:True  out:False  optional:False  type:VT_VARIANT 
 885 #              in:True  out:False  optional:False  type:VT_VARIANT 
 887 #  PrivacyImpactedStateChange 
 891 #              in:True  out:False  optional:False  type:bool