'extracted from ExDisp.h
'partial
'https://github.com/tpn/winsdk-10/blob/master/Include/10.0.14393.0/um/ExDisp.h


  extern lib "ATL.dll"
    ! AtlAxWinInit() as int
  ' ! AtlAxWinTerm() as int
    ! AtlAxGetControl( sys hWnd, pp ) as int
  end extern


  extern virtual

    'MIDL_INTERFACE("EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B")
    class IWebBrowser 
    extends IDispatch
    '
    ! GoBack           '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoBack( void) = 0;
                       '    
    ! GoForward        '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoForward( void) = 0;
                       '    
    ! GoHome           '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoHome( void) = 0;
                       '    
    ! GoSearch         '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GoSearch( void) = 0;
                       '    
    ! Navigate         '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate( 
                       '      /* [in] */ __RPC__in BSTR URL,
                       '      /* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
                       '      /* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
                       '      /* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
                       '      /* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers) = 0;
                       '
    ! Refresh          '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh( void) = 0;
                       '
    ! Refresh2         '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh2( 
                       '/* [unique][optional][in] */ __RPC__in_opt VARIANT *Level) = 0;
                       '
    ! Stop             '  virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Stop( void) = 0;
                       '
    ! GetApplication   ' virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Application( 
                       '/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp) = 0;
                       '
    ! get_Parent       '   virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Parent( 
                       '/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp) = 0;
                       '
    ! get_Container    '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Container( 
                       '/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp) = 0;
                       '
    ! get_Document     '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Document( 
                       '/* [retval][out] */ __RPC__deref_out_opt IDispatch **ppDisp) = 0;
                       '
    ! get_TopLevelcontainer '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TopLevelContainer( 
                       '/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool) = 0;
                       '
    ! get_Type         '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Type( 
                       '/* [retval][out] */ __RPC__deref_out_opt BSTR *Type) = 0;
                       '
    ! get_Left         '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Left( 
                       '/* [retval][out] */ __RPC__out long *pl) = 0;
                       '
    ! put_Left         '  virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Left( 
                       '/* [in] */ long Left) = 0;
                       '
    ! get_Top          '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Top( 
                       '/* [retval][out] */ __RPC__out long *pl) = 0;
                       '
    ! put_Top          '  virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Top( 
                       '/* [in] */ long Top) = 0;
                       '
    ! get_Width        '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Width( 
                       '/* [retval][out] */ __RPC__out long *pl) = 0;
                       '
    ! put_Width        '  virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Width( 
                       '/* [in] */ long Width) = 0;
                       '
    ! get_Height       '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Height( 
                       '/* [retval][out] */ __RPC__out long *pl) = 0;
                       '
    ! put_Height       ' virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Height( 
                       '/* [in] */ long Height) = 0;
                       '
    ! get_LocationName '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LocationName( 
                       '/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationName) = 0;
                       '
    ! get_LocationURL  '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_LocationURL( 
                       '/* [retval][out] */ __RPC__deref_out_opt BSTR *LocationURL) = 0;
                       '
    ! get_Busy         '  virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Busy( 
                       '/* [retval][out] */ __RPC__out VARIANT_BOOL *pBool) = 0;
                       '
    end class

    
    'MIDL_INTERFACE("0002DF05-0000-0000-C000-000000000046")
    class IWebBrowserApp
    extends IWebBrowser
    ! Quit             '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Quit( void) = 0;
                       '    
    ! ClientToWindow   '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ClientToWindow( 
                       '        /* [out][in] */ __RPC__inout int *pcx,
                       '        /* [out][in] */ __RPC__inout int *pcy) = 0;
                       '    
    ! PutProperty      '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE PutProperty( 
                       '        /* [in] */ __RPC__in BSTR Property,
                       '        /* [in] */ VARIANT vtValue) = 0;
                       '    
    ! GetProperty      '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE GetProperty( 
                       '        /* [in] */ __RPC__in BSTR Property,
                       '        /* [retval][out] */ __RPC__out VARIANT *pvtValue) = 0;
                       '    
    ! get_Name         '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Name( 
                       '        /* [retval][out] */ __RPC__deref_out_opt BSTR *Name) = 0;
                       '    
    ! get_HWND         '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_HWND( 
                       '        /* [retval][out] */ __RPC__out SHANDLE_PTR *pHWND) = 0;
                       '    
    ! get_FullName     '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FullName( 
                       '        /* [retval][out] */ __RPC__deref_out_opt BSTR *FullName) = 0;
                       '    
    ! get_Path         '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Path( 
                       '        /* [retval][out] */ __RPC__deref_out_opt BSTR *Path) = 0;
                       '    
    ! get_Visible      '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Visible( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pBool) = 0;
                       '    
    ! put_Visible      '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Visible( 
                       '        /* [in] */ VARIANT_BOOL Value) = 0;
                       '    
    ! get_StatusBar    '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StatusBar( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pBool) = 0;
                       '    
    ! put_StatusBar    '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StatusBar( 
                       '        /* [in] */ VARIANT_BOOL Value) = 0;
                       '    
    ! get_StatusText   '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_StatusText( 
                       '        /* [retval][out] */ __RPC__deref_out_opt BSTR *StatusText) = 0;
                       '    
    ! put_StatusText   '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_StatusText( 
                       '        /* [in] */ __RPC__in BSTR StatusText) = 0;
                       '    
    ! get_ToolBar     '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_ToolBar( 
                       '        /* [retval][out] */ __RPC__out int *Value) = 0;
                       '    
    ! put_ToolBar      '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_ToolBar( 
                       '        /* [in] */ int Value) = 0;
                       '    
    ! get_MenuBar      '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_MenuBar( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *Value) = 0;
                       '    
    ! put_MenuBar      '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_MenuBar( 
                       '        /* [in] */ VARIANT_BOOL Value) = 0;
                       '    
    ! get_FullScreen   '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbFullScreen) = 0;
                       '    
    ! put_FullScreen   '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen( 
                       '        /* [in] */ VARIANT_BOOL bFullScreen) = 0;
    end class

    '    
    'MIDL_INTERFACE("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E")
    class IWebBrowser2
    extends IWebBrowserApp
    ! Navigate2        '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigate2( 
                       '        /* [in] */ __RPC__in VARIANT *URL,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *Flags,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *TargetFrameName,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *PostData,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *Headers) = 0;
                       '    
    ! QueryStatusWB    '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE QueryStatusWB( 
                       '        /* [in] */ OLECMDID cmdID,
                       '        /* [retval][out] */ __RPC__out OLECMDF *pcmdf) = 0;
                       '    
    ! ExecWB           '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecWB( 
                       '        /* [in] */ OLECMDID cmdID,
                       '        /* [in] */ OLECMDEXECOPT cmdexecopt,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *pvaIn,
                       '        /* [unique][optional][out][in] */ __RPC__inout_opt VARIANT *pvaOut) = 0;
                       '    
    ! ShowBrowserBar   '    virtual /* [helpcontext][helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowBrowserBar( 
                       '        /* [in] */ __RPC__in VARIANT *pvaClsid,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarShow,
                       '        /* [unique][optional][in] */ __RPC__in_opt VARIANT *pvarSize) = 0;
                       '    
    ! get_ReadyState   '    virtual /* [bindable][propget][id] */ HRESULT STDMETHODCALLTYPE get_ReadyState( 
                       '        /* [out][retval] */ __RPC__out READYSTATE *plReadyState) = 0;
                       '    
    ! get_Offline      '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Offline( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbOffline) = 0;
                       '    
    ! put_Offline      '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Offline( 
                       '        /* [in] */ VARIANT_BOOL bOffline) = 0;
                       '    
    ! get_Silent       '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Silent( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbSilent) = 0;
                       '    
    ! put_Silent       '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Silent( 
                       '        /* [in] */ VARIANT_BOOL bSilent) = 0;
                       '    
    ! get_RegisterAsBrowser '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister) = 0;
                       '    
    ! put_RegisterAsBrowser '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser( 
                       '        /* [in] */ VARIANT_BOOL bRegister) = 0;
                       '    
    ! get_RegisterAsDropTarget '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister) = 0;
                       '    
    ! put_RegisterAsDropTarget '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget( 
                       '        /* [in] */ VARIANT_BOOL bRegister) = 0;
                       '    
    ! get_TheaterMode  '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_TheaterMode( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *pbRegister) = 0;
                       '    
    ! put_TheaterMode  '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_TheaterMode( 
                       '        /* [in] */ VARIANT_BOOL bRegister) = 0;
                       '    
    ! get_AddressBar   '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_AddressBar( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *Value) = 0;
                       '    
    ! put_AddressBar   '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_AddressBar( 
                       '        /* [in] */ VARIANT_BOOL Value) = 0;
                       '    
    ! get_Resizable    '    virtual /* [helpcontext][helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Resizable( 
                       '        /* [retval][out] */ __RPC__out VARIANT_BOOL *Value) = 0;
                       '    
    ! put_Resizable    '    virtual /* [helpcontext][helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE put_Resizable( 
                       '        /* [in] */ VARIANT_BOOL Value) = 0;
                       '    
    end class

  end extern
    

 