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 af ew 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'): 
 115         wx
.activex
.IEHtmlWindowBase
.__init
__(self
, parent
, 
 116             wx
.activex
.CLSID('{8856F961-340A-11D0-A96B-00C04FD705A2}'), 
 117             ID
, pos
, size
, style
, name
) 
 119     # Methods from IEHtmlWindowBase.  Redirected from here just for 
 120     # the sake of completeness... 
 121     def LoadString(self
, html
): 
 122         """Load the html document from a string""" 
 123         return wx
.activex
.IEHtmlWindowBase
.LoadString(self
, html
) 
 126     def LoadStream(self
, stream
): 
 128         Load the html document from a wx.InputStream or a Python 
 131         return wx
.activex
.IEHtmlWindowBase
.LoadStream(self
, stream
) 
 134     def LoadUrl(self
, URL
, Flags
=0): 
 135         """Load the document from url.""" 
 136         return self
.Navigate2(URL
, Flags
) 
 139     def GetStringSelection(self
, asHTML
): 
 141         Returns the contents of the selected portion of the document as 
 142         either html or plain text. 
 144         return wx
.activex
.IEHtmlWindowBase
.GetStringSelection(self
, asHTML
) 
 147     def GetText(self
, asHTML
): 
 149         Returns the contents of the the html document as either html or plain text. 
 151         return wx
.activex
.IEHtmlWindowBase
.GetText(self
, asHTML
) 
 154     def SetCharset(self
, charset
): 
 156         return wx
.activex
.IEHtmlWindowBase
.SetCharset(self
, charset
) 
 159     # Methods exported by the ActiveX object 
 160     def QueryInterface(self
, riid
): 
 161         return self
.CallAXMethod('QueryInterface', riid
) 
 164         return self
.CallAXMethod('AddRef') 
 167         return self
.CallAXMethod('Release') 
 169     def GetTypeInfoCount(self
): 
 170         return self
.CallAXMethod('GetTypeInfoCount') 
 172     def GetTypeInfo(self
, itinfo
, lcid
): 
 173         return self
.CallAXMethod('GetTypeInfo', itinfo
, lcid
) 
 175     def GetIDsOfNames(self
, riid
, rgszNames
, cNames
, lcid
): 
 176         return self
.CallAXMethod('GetIDsOfNames', riid
, rgszNames
, cNames
, lcid
) 
 178     def Invoke(self
, dispidMember
, riid
, lcid
, wFlags
, pdispparams
): 
 179         return self
.CallAXMethod('Invoke', dispidMember
, riid
, lcid
, wFlags
, pdispparams
) 
 182         return self
.CallAXMethod('GoBack') 
 185         return self
.CallAXMethod('GoForward') 
 188         return self
.CallAXMethod('GoHome') 
 191         return self
.CallAXMethod('GoSearch') 
 193     # added default for Flags 
 194     def Navigate(self
, URL
, Flags
=0, TargetFrameName
=None, PostData
=None, Headers
=None): 
 195         return self
.CallAXMethod('Navigate', URL
, Flags
, TargetFrameName
, PostData
, Headers
) 
 197     # Removed to prevent conflict with wx.Window.Refresh 
 199     #    return self.CallAXMethod('Refresh') 
 202     def RefreshPage(self
, Level
=REFRESH_NORMAL
): 
 203         return self
.CallAXMethod('Refresh2', Level
) 
 206         return self
.CallAXMethod('Stop') 
 209         return self
.CallAXMethod('Quit') 
 211     def ClientToWindow(self
, pcx
, pcy
): 
 212         return self
.CallAXMethod('ClientToWindow', pcx
, pcy
) 
 214     def PutProperty(self
, Property
, vtValue
): 
 215         return self
.CallAXMethod('PutProperty', Property
, vtValue
) 
 217     def GetProperty(self
, Property
): 
 218         return self
.CallAXMethod('GetProperty', Property
) 
 220     # added default for flags 
 221     def Navigate2(self
, URL
, Flags
=0, TargetFrameName
=None, PostData
=None, Headers
=None): 
 222         return self
.CallAXMethod('Navigate2', URL
, Flags
, TargetFrameName
, PostData
, Headers
) 
 224     def QueryStatusWB(self
, cmdID
): 
 225         return self
.CallAXMethod('QueryStatusWB', cmdID
) 
 227     def ExecWB(self
, cmdID
, cmdexecopt
, pvaIn
, pvaOut
=None): 
 228         return self
.CallAXMethod('ExecWB', cmdID
, cmdexecopt
, pvaIn
, pvaOut
) 
 230     def ShowBrowserBar(self
, pvaClsid
, pvarShow
, pvarSize
=None): 
 231         return self
.CallAXMethod('ShowBrowserBar', pvaClsid
, pvarShow
, pvarSize
) 
 233     # Getters, Setters and properties 
 234     def _get_Application(self
): 
 235         return self
.GetAXProp('Application') 
 236     application 
= property(_get_Application
, None) 
 238     def _get_Parent(self
): 
 239         return self
.GetAXProp('Parent') 
 240     parent 
= property(_get_Parent
, None) 
 242     def _get_Container(self
): 
 243         return self
.GetAXProp('Container') 
 244     container 
= property(_get_Container
, None) 
 246     def _get_Document(self
): 
 247         return self
.GetAXProp('Document') 
 248     document 
= property(_get_Document
, None) 
 250     def _get_TopLevelContainer(self
): 
 251         return self
.GetAXProp('TopLevelContainer') 
 252     toplevelcontainer 
= property(_get_TopLevelContainer
, None) 
 255         return self
.GetAXProp('Type') 
 256     type = property(_get_Type
, None) 
 259         return self
.GetAXProp('Left') 
 260     def _set_Left(self
, Left
): 
 261         self
.SetAXProp('Left', Left
) 
 262     left 
= property(_get_Left
, _set_Left
) 
 265         return self
.GetAXProp('Top') 
 266     def _set_Top(self
, Top
): 
 267         self
.SetAXProp('Top', Top
) 
 268     top 
= property(_get_Top
, _set_Top
) 
 270     def _get_Width(self
): 
 271         return self
.GetAXProp('Width') 
 272     def _set_Width(self
, Width
): 
 273         self
.SetAXProp('Width', Width
) 
 274     width 
= property(_get_Width
, _set_Width
) 
 276     def _get_Height(self
): 
 277         return self
.GetAXProp('Height') 
 278     def _set_Height(self
, Height
): 
 279         self
.SetAXProp('Height', Height
) 
 280     height 
= property(_get_Height
, _set_Height
) 
 282     def _get_LocationName(self
): 
 283         return self
.GetAXProp('LocationName') 
 284     locationname 
= property(_get_LocationName
, None) 
 286     def _get_LocationURL(self
): 
 287         return self
.GetAXProp('LocationURL') 
 288     locationurl 
= property(_get_LocationURL
, None) 
 291         return self
.GetAXProp('Busy') 
 292     busy 
= property(_get_Busy
, None) 
 295         return self
.GetAXProp('Name') 
 296     name 
= property(_get_Name
, None) 
 299         return self
.GetAXProp('HWND') 
 300     hwnd 
= property(_get_HWND
, None) 
 302     def _get_FullName(self
): 
 303         return self
.GetAXProp('FullName') 
 304     fullname 
= property(_get_FullName
, None) 
 307         return self
.GetAXProp('Path') 
 308     path 
= property(_get_Path
, None) 
 310     def _get_Visible(self
): 
 311         return self
.GetAXProp('Visible') 
 312     def _set_Visible(self
, Visible
): 
 313         self
.SetAXProp('Visible', Visible
) 
 314     visible 
= property(_get_Visible
, _set_Visible
) 
 316     def _get_StatusBar(self
): 
 317         return self
.GetAXProp('StatusBar') 
 318     def _set_StatusBar(self
, StatusBar
): 
 319         self
.SetAXProp('StatusBar', StatusBar
) 
 320     statusbar 
= property(_get_StatusBar
, _set_StatusBar
) 
 322     def _get_StatusText(self
): 
 323         return self
.GetAXProp('StatusText') 
 324     def _set_StatusText(self
, StatusText
): 
 325         self
.SetAXProp('StatusText', StatusText
) 
 326     statustext 
= property(_get_StatusText
, _set_StatusText
) 
 328     def _get_ToolBar(self
): 
 329         return self
.GetAXProp('ToolBar') 
 330     def _set_ToolBar(self
, ToolBar
): 
 331         self
.SetAXProp('ToolBar', ToolBar
) 
 332     toolbar 
= property(_get_ToolBar
, _set_ToolBar
) 
 334     def _get_MenuBar(self
): 
 335         return self
.GetAXProp('MenuBar') 
 336     def _set_MenuBar(self
, MenuBar
): 
 337         self
.SetAXProp('MenuBar', MenuBar
) 
 338     menubar 
= property(_get_MenuBar
, _set_MenuBar
) 
 340     def _get_FullScreen(self
): 
 341         return self
.GetAXProp('FullScreen') 
 342     def _set_FullScreen(self
, FullScreen
): 
 343         self
.SetAXProp('FullScreen', FullScreen
) 
 344     fullscreen 
= property(_get_FullScreen
, _set_FullScreen
) 
 346     def _get_ReadyState(self
): 
 347         return self
.GetAXProp('ReadyState') 
 348     readystate 
= property(_get_ReadyState
, None) 
 350     def _get_Offline(self
): 
 351         return self
.GetAXProp('Offline') 
 352     def _set_Offline(self
, Offline
): 
 353         self
.SetAXProp('Offline', Offline
) 
 354     offline 
= property(_get_Offline
, _set_Offline
) 
 356     def _get_Silent(self
): 
 357         return self
.GetAXProp('Silent') 
 358     def _set_Silent(self
, Silent
): 
 359         self
.SetAXProp('Silent', Silent
) 
 360     silent 
= property(_get_Silent
, _set_Silent
) 
 362     def _get_RegisterAsBrowser(self
): 
 363         return self
.GetAXProp('RegisterAsBrowser') 
 364     def _set_RegisterAsBrowser(self
, RegisterAsBrowser
): 
 365         self
.SetAXProp('RegisterAsBrowser', RegisterAsBrowser
) 
 366     registerasbrowser 
= property(_get_RegisterAsBrowser
, _set_RegisterAsBrowser
) 
 368     def _get_RegisterAsDropTarget(self
): 
 369         return self
.GetAXProp('RegisterAsDropTarget') 
 370     def _set_RegisterAsDropTarget(self
, RegisterAsDropTarget
): 
 371         self
.SetAXProp('RegisterAsDropTarget', RegisterAsDropTarget
) 
 372     registerasdroptarget 
= property(_get_RegisterAsDropTarget
, _set_RegisterAsDropTarget
) 
 374     def _get_TheaterMode(self
): 
 375         return self
.GetAXProp('TheaterMode') 
 376     def _set_TheaterMode(self
, TheaterMode
): 
 377         self
.SetAXProp('TheaterMode', TheaterMode
) 
 378     theatermode 
= property(_get_TheaterMode
, _set_TheaterMode
) 
 380     def _get_AddressBar(self
): 
 381         return self
.GetAXProp('AddressBar') 
 382     def _set_AddressBar(self
, AddressBar
): 
 383         self
.SetAXProp('AddressBar', AddressBar
) 
 384     addressbar 
= property(_get_AddressBar
, _set_AddressBar
) 
 386     def _get_Resizable(self
): 
 387         return self
.GetAXProp('Resizable') 
 388     def _set_Resizable(self
, Resizable
): 
 389         self
.SetAXProp('Resizable', Resizable
) 
 390     resizable 
= property(_get_Resizable
, _set_Resizable
) 
 394 #  -------------------- 
 396 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 399 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 402 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 405 #      type:VT_DISPATCH  arg:VT_EMPTY  canGet:True  canSet:False 
 408 #      type:bool  arg:VT_EMPTY  canGet:True  canSet:False 
 411 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 414 #      type:int  arg:int  canGet:True  canSet:True 
 417 #      type:int  arg:int  canGet:True  canSet:True 
 420 #      type:int  arg:int  canGet:True  canSet:True 
 423 #      type:int  arg:int  canGet:True  canSet:True 
 426 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 429 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 432 #      type:bool  arg:VT_EMPTY  canGet:True  canSet:False 
 435 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 438 #      type:int  arg:VT_EMPTY  canGet:True  canSet:False 
 441 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 444 #      type:string  arg:VT_EMPTY  canGet:True  canSet:False 
 447 #      type:bool  arg:bool  canGet:True  canSet:True 
 450 #      type:bool  arg:bool  canGet:True  canSet:True 
 453 #      type:string  arg:string  canGet:True  canSet:True 
 456 #      type:int  arg:int  canGet:True  canSet:True 
 459 #      type:bool  arg:bool  canGet:True  canSet:True 
 462 #      type:bool  arg:bool  canGet:True  canSet:True 
 465 #      type:unsupported type 29  arg:VT_EMPTY  canGet:True  canSet:False 
 468 #      type:bool  arg:bool  canGet:True  canSet:True 
 471 #      type:bool  arg:bool  canGet:True  canSet:True 
 474 #      type:bool  arg:bool  canGet:True  canSet:True 
 476 #  registerasdroptarget 
 477 #      type:bool  arg:bool  canGet:True  canSet:True 
 480 #      type:bool  arg:bool  canGet:True  canSet:True 
 483 #      type:bool  arg:bool  canGet:True  canSet:True 
 486 #      type:bool  arg:bool  canGet:True  canSet:True 
 492 #  -------------------- 
 497 #              in:True  out:False  optional:False  type:unsupported type 29 
 499 #              in:False  out:True  optional:False  type:unsupported type 26 
 511 #              in:False  out:True  optional:False  type:int 
 517 #              in:True  out:False  optional:False  type:int 
 519 #              in:True  out:False  optional:False  type:int 
 521 #              in:False  out:True  optional:False  type:unsupported type 26 
 527 #              in:True  out:False  optional:False  type:unsupported type 29 
 529 #              in:True  out:False  optional:False  type:unsupported type 26 
 531 #              in:True  out:False  optional:False  type:int 
 533 #              in:True  out:False  optional:False  type:int 
 535 #              in:False  out:True  optional:False  type:int 
 541 #              in:True  out:False  optional:False  type:int 
 543 #              in:True  out:False  optional:False  type:unsupported type 29 
 545 #              in:True  out:False  optional:False  type:int 
 547 #              in:True  out:False  optional:False  type:int 
 549 #              in:True  out:False  optional:False  type:unsupported type 29 
 551 #              in:False  out:True  optional:False  type:VT_VARIANT 
 553 #              in:False  out:True  optional:False  type:unsupported type 29 
 555 #              in:False  out:True  optional:False  type:int 
 573 #              in:True  out:False  optional:False  type:string 
 575 #              in:True  out:False  optional:False  type:VT_VARIANT 
 577 #              in:True  out:False  optional:True  type:VT_VARIANT 
 579 #              in:True  out:False  optional:True  type:VT_VARIANT 
 581 #              in:True  out:False  optional:True  type:VT_VARIANT 
 590 #              in:True  out:False  optional:False  type:VT_VARIANT 
 602 #              in:True  out:True  optional:False  type:int 
 604 #              in:True  out:True  optional:False  type:int 
 610 #              in:True  out:False  optional:False  type:string 
 612 #              in:True  out:False  optional:False  type:VT_VARIANT 
 615 #      retType:  VT_VARIANT 
 618 #              in:True  out:False  optional:False  type:string 
 624 #              in:True  out:False  optional:False  type:VT_VARIANT 
 626 #              in:True  out:False  optional:False  type:VT_VARIANT 
 628 #              in:True  out:False  optional:True  type:VT_VARIANT 
 630 #              in:True  out:False  optional:True  type:VT_VARIANT 
 632 #              in:True  out:False  optional:True  type:VT_VARIANT 
 635 #      retType:  unsupported type 29 
 638 #              in:True  out:False  optional:False  type:unsupported type 29 
 644 #              in:True  out:False  optional:False  type:unsupported type 29 
 646 #              in:True  out:False  optional:False  type:unsupported type 29 
 648 #              in:True  out:False  optional:False  type:VT_VARIANT 
 650 #              in:True  out:True  optional:True  type:VT_VARIANT 
 656 #              in:True  out:False  optional:False  type:VT_VARIANT 
 658 #              in:True  out:False  optional:False  type:VT_VARIANT 
 660 #              in:True  out:False  optional:True  type:VT_VARIANT 
 666 #  -------------------- 
 671 #              in:True  out:False  optional:False  type:string 
 677 #              in:True  out:False  optional:False  type:int 
 679 #              in:True  out:False  optional:False  type:int 
 685 #              in:True  out:False  optional:False  type:int 
 687 #              in:True  out:False  optional:False  type:bool 
 699 #              in:True  out:False  optional:False  type:string 
 705 #              in:True  out:False  optional:False  type:string 
 711 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 713 #              in:True  out:False  optional:False  type:VT_VARIANT 
 715 #              in:True  out:False  optional:False  type:VT_VARIANT 
 717 #              in:True  out:False  optional:False  type:VT_VARIANT 
 719 #              in:True  out:False  optional:False  type:VT_VARIANT 
 721 #              in:True  out:False  optional:False  type:VT_VARIANT 
 723 #              in:True  out:True  optional:False  type:bool 
 729 #              in:True  out:True  optional:False  type:VT_DISPATCH 
 731 #              in:True  out:True  optional:False  type:bool 
 737 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 739 #              in:True  out:False  optional:False  type:VT_VARIANT 
 745 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 747 #              in:True  out:False  optional:False  type:VT_VARIANT 
 756 #              in:True  out:False  optional:False  type:bool 
 762 #              in:True  out:False  optional:False  type:bool 
 768 #              in:True  out:False  optional:False  type:bool 
 774 #              in:True  out:False  optional:False  type:bool 
 780 #              in:True  out:False  optional:False  type:bool 
 786 #              in:True  out:False  optional:False  type:bool 
 792 #              in:True  out:False  optional:False  type:bool 
 798 #              in:True  out:False  optional:False  type:int 
 804 #              in:True  out:False  optional:False  type:int 
 810 #              in:True  out:False  optional:False  type:int 
 816 #              in:True  out:False  optional:False  type:int 
 822 #              in:True  out:False  optional:False  type:bool 
 824 #              in:True  out:True  optional:False  type:bool 
 830 #              in:True  out:True  optional:False  type:int 
 832 #              in:True  out:True  optional:False  type:int 
 838 #              in:True  out:False  optional:False  type:int 
 844 #              in:True  out:True  optional:False  type:bool 
 850 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 852 #              in:True  out:False  optional:False  type:VT_VARIANT 
 854 #              in:True  out:False  optional:False  type:VT_VARIANT 
 856 #              in:True  out:False  optional:False  type:VT_VARIANT 
 858 #              in:True  out:True  optional:False  type:bool 
 860 #  PrintTemplateInstantiation 
 864 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 866 #  PrintTemplateTeardown 
 870 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 876 #              in:True  out:False  optional:False  type:VT_DISPATCH 
 878 #              in:True  out:False  optional:False  type:VT_VARIANT 
 880 #              in:True  out:False  optional:False  type:VT_VARIANT 
 882 #  PrivacyImpactedStateChange 
 886 #              in:True  out:False  optional:False  type:bool