/*** Autogenerated by WIDL 0.9.22 from exdisp.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_EXDISP_H
#define __WIDL_EXDISP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ocidl.h>
#include <docobj.h>

DEFINE_GUID(LIBID_SHDocVw, 0xeab22ac0, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b);

#ifndef __IWebBrowser_FWD_DEFINED__
#define __IWebBrowser_FWD_DEFINED__
typedef interface IWebBrowser IWebBrowser;
#endif

typedef enum BrowserNavConstants {
    navOpenInNewWindow = 0x1,
    navNoHistory = 0x2,
    navNoReadFromCache = 0x4,
    navNoWriteToCache = 0x8,
    navAllowAutosearch = 0x10,
    navBrowserBar = 0x20,
    navHyperlink = 0x40,
    navEnforceRestricted = 0x80
} BrowserNavConstants;
typedef enum RefreshConstants {
    REFRESH_NORMAL = 0,
    REFRESH_IFEXPIRED = 1,
    REFRESH_COMPLETELY = 3
} RefreshConstants;
/*****************************************************************************
 * IWebBrowser interface
 */
#ifndef __IWebBrowser_INTERFACE_DEFINED__
#define __IWebBrowser_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWebBrowser, 0xeab22ac1, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IWebBrowser : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE GoBack(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GoForward(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GoHome(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GoSearch(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Navigate(
        BSTR URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers) = 0;

    virtual HRESULT STDMETHODCALLTYPE Refresh(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Refresh2(
        VARIANT* Level) = 0;

    virtual HRESULT STDMETHODCALLTYPE Stop(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Application(
        IDispatch** ppDisp) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Parent(
        IDispatch** ppDisp) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Container(
        IDispatch** ppDisp) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Document(
        IDispatch** ppDisp) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TopLevelContainer(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Type(
        BSTR* Type) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Left(
        long* pl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Left(
        long Left) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Top(
        long* pl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Top(
        long Top) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Width(
        long* pl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Width(
        long Width) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Height(
        long* pl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Height(
        long Height) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocationName(
        BSTR* LocationName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_LocationURL(
        BSTR* LocationURL) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Busy(
        VARIANT_BOOL* pBool) = 0;

};
#else
typedef struct IWebBrowserVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWebBrowser* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWebBrowser* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWebBrowser* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWebBrowser* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWebBrowser* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWebBrowser* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWebBrowser* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IWebBrowser methods ***/
    HRESULT (STDMETHODCALLTYPE *GoBack)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *GoForward)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *GoHome)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *GoSearch)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *Navigate)(
        IWebBrowser* This,
        BSTR URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers);

    HRESULT (STDMETHODCALLTYPE *Refresh)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *Refresh2)(
        IWebBrowser* This,
        VARIANT* Level);

    HRESULT (STDMETHODCALLTYPE *Stop)(
        IWebBrowser* This);

    HRESULT (STDMETHODCALLTYPE *get_Application)(
        IWebBrowser* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Parent)(
        IWebBrowser* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Container)(
        IWebBrowser* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Document)(
        IWebBrowser* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_TopLevelContainer)(
        IWebBrowser* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IWebBrowser* This,
        BSTR* Type);

    HRESULT (STDMETHODCALLTYPE *get_Left)(
        IWebBrowser* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Left)(
        IWebBrowser* This,
        long Left);

    HRESULT (STDMETHODCALLTYPE *get_Top)(
        IWebBrowser* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Top)(
        IWebBrowser* This,
        long Top);

    HRESULT (STDMETHODCALLTYPE *get_Width)(
        IWebBrowser* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Width)(
        IWebBrowser* This,
        long Width);

    HRESULT (STDMETHODCALLTYPE *get_Height)(
        IWebBrowser* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Height)(
        IWebBrowser* This,
        long Height);

    HRESULT (STDMETHODCALLTYPE *get_LocationName)(
        IWebBrowser* This,
        BSTR* LocationName);

    HRESULT (STDMETHODCALLTYPE *get_LocationURL)(
        IWebBrowser* This,
        BSTR* LocationURL);

    HRESULT (STDMETHODCALLTYPE *get_Busy)(
        IWebBrowser* This,
        VARIANT_BOOL* pBool);

    END_INTERFACE
} IWebBrowserVtbl;
interface IWebBrowser {
    const IWebBrowserVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowser_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IWebBrowser_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IWebBrowser_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IWebBrowser_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IWebBrowser_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IWebBrowser_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IWebBrowser_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IWebBrowser methods ***/
#define IWebBrowser_GoBack(p) (p)->lpVtbl->GoBack(p)
#define IWebBrowser_GoForward(p) (p)->lpVtbl->GoForward(p)
#define IWebBrowser_GoHome(p) (p)->lpVtbl->GoHome(p)
#define IWebBrowser_GoSearch(p) (p)->lpVtbl->GoSearch(p)
#define IWebBrowser_Navigate(p,a,b,c,d,e) (p)->lpVtbl->Navigate(p,a,b,c,d,e)
#define IWebBrowser_Refresh(p) (p)->lpVtbl->Refresh(p)
#define IWebBrowser_Refresh2(p,a) (p)->lpVtbl->Refresh2(p,a)
#define IWebBrowser_Stop(p) (p)->lpVtbl->Stop(p)
#define IWebBrowser_get_Application(p,a) (p)->lpVtbl->get_Application(p,a)
#define IWebBrowser_get_Parent(p,a) (p)->lpVtbl->get_Parent(p,a)
#define IWebBrowser_get_Container(p,a) (p)->lpVtbl->get_Container(p,a)
#define IWebBrowser_get_Document(p,a) (p)->lpVtbl->get_Document(p,a)
#define IWebBrowser_get_TopLevelContainer(p,a) (p)->lpVtbl->get_TopLevelContainer(p,a)
#define IWebBrowser_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
#define IWebBrowser_get_Left(p,a) (p)->lpVtbl->get_Left(p,a)
#define IWebBrowser_put_Left(p,a) (p)->lpVtbl->put_Left(p,a)
#define IWebBrowser_get_Top(p,a) (p)->lpVtbl->get_Top(p,a)
#define IWebBrowser_put_Top(p,a) (p)->lpVtbl->put_Top(p,a)
#define IWebBrowser_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
#define IWebBrowser_put_Width(p,a) (p)->lpVtbl->put_Width(p,a)
#define IWebBrowser_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
#define IWebBrowser_put_Height(p,a) (p)->lpVtbl->put_Height(p,a)
#define IWebBrowser_get_LocationName(p,a) (p)->lpVtbl->get_LocationName(p,a)
#define IWebBrowser_get_LocationURL(p,a) (p)->lpVtbl->get_LocationURL(p,a)
#define IWebBrowser_get_Busy(p,a) (p)->lpVtbl->get_Busy(p,a)
#endif

#endif

HRESULT CALLBACK IWebBrowser_GoBack_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoBack_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_GoForward_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoForward_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_GoHome_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoHome_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_GoSearch_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoSearch_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_Navigate_Proxy(
    IWebBrowser* This,
    BSTR URL,
    VARIANT* Flags,
    VARIANT* TargetFrameName,
    VARIANT* PostData,
    VARIANT* Headers);
void __RPC_STUB IWebBrowser_Navigate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_Refresh_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_Refresh_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_Refresh2_Proxy(
    IWebBrowser* This,
    VARIANT* Level);
void __RPC_STUB IWebBrowser_Refresh2_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_Stop_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_Stop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Application_Proxy(
    IWebBrowser* This,
    IDispatch** ppDisp);
void __RPC_STUB IWebBrowser_get_Application_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Parent_Proxy(
    IWebBrowser* This,
    IDispatch** ppDisp);
void __RPC_STUB IWebBrowser_get_Parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Container_Proxy(
    IWebBrowser* This,
    IDispatch** ppDisp);
void __RPC_STUB IWebBrowser_get_Container_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Document_Proxy(
    IWebBrowser* This,
    IDispatch** ppDisp);
void __RPC_STUB IWebBrowser_get_Document_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_TopLevelContainer_Proxy(
    IWebBrowser* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IWebBrowser_get_TopLevelContainer_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Type_Proxy(
    IWebBrowser* This,
    BSTR* Type);
void __RPC_STUB IWebBrowser_get_Type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Left_Proxy(
    IWebBrowser* This,
    long* pl);
void __RPC_STUB IWebBrowser_get_Left_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_put_Left_Proxy(
    IWebBrowser* This,
    long Left);
void __RPC_STUB IWebBrowser_put_Left_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Top_Proxy(
    IWebBrowser* This,
    long* pl);
void __RPC_STUB IWebBrowser_get_Top_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_put_Top_Proxy(
    IWebBrowser* This,
    long Top);
void __RPC_STUB IWebBrowser_put_Top_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Width_Proxy(
    IWebBrowser* This,
    long* pl);
void __RPC_STUB IWebBrowser_get_Width_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_put_Width_Proxy(
    IWebBrowser* This,
    long Width);
void __RPC_STUB IWebBrowser_put_Width_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Height_Proxy(
    IWebBrowser* This,
    long* pl);
void __RPC_STUB IWebBrowser_get_Height_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_put_Height_Proxy(
    IWebBrowser* This,
    long Height);
void __RPC_STUB IWebBrowser_put_Height_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_LocationName_Proxy(
    IWebBrowser* This,
    BSTR* LocationName);
void __RPC_STUB IWebBrowser_get_LocationName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_LocationURL_Proxy(
    IWebBrowser* This,
    BSTR* LocationURL);
void __RPC_STUB IWebBrowser_get_LocationURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser_get_Busy_Proxy(
    IWebBrowser* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IWebBrowser_get_Busy_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IWebBrowser_INTERFACE_DEFINED__ */

#ifndef __DWebBrowserEvents_FWD_DEFINED__
#define __DWebBrowserEvents_FWD_DEFINED__
typedef interface DWebBrowserEvents DWebBrowserEvents;
#endif

/*****************************************************************************
 * DWebBrowserEvents dispinterface
 */
#ifndef __DWebBrowserEvents_DISPINTERFACE_DEFINED__
#define __DWebBrowserEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_DWebBrowserEvents, 0xeab22ac2, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DWebBrowserEvents : public IDispatch
{
};
#else
typedef struct DWebBrowserEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        DWebBrowserEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        DWebBrowserEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        DWebBrowserEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        DWebBrowserEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        DWebBrowserEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        DWebBrowserEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        DWebBrowserEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} DWebBrowserEventsVtbl;
interface DWebBrowserEvents {
    const DWebBrowserEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DWebBrowserEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define DWebBrowserEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define DWebBrowserEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define DWebBrowserEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define DWebBrowserEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define DWebBrowserEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define DWebBrowserEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __DWebBrowserEvents_DISPINTERFACE_DEFINED__ */

typedef enum CommandStateChangeConstants {
    CSC_UPDATECOMMANDS = -1,
    CSC_NAVIGATEFORWARD = 1,
    CSC_NAVIGATEBACK = 2
} CommandStateChangeConstants;
#ifndef __IWebBrowserApp_FWD_DEFINED__
#define __IWebBrowserApp_FWD_DEFINED__
typedef interface IWebBrowserApp IWebBrowserApp;
#endif

/*****************************************************************************
 * IWebBrowserApp interface
 */
#ifndef __IWebBrowserApp_INTERFACE_DEFINED__
#define __IWebBrowserApp_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWebBrowserApp, 0x0002df05, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IWebBrowserApp : public IWebBrowser
{
    virtual HRESULT STDMETHODCALLTYPE Quit(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE ClientToWindow(
        int* pcx,
        int* pcy) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutProperty(
        BSTR Property,
        VARIANT vtValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProperty(
        BSTR Property,
        VARIANT* pvtValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Name(
        BSTR* Name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_HWND(
        long* pHWND) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_FullName(
        BSTR* FullName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Path(
        BSTR* Path) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Visible(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Visible(
        VARIANT_BOOL Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_StatusBar(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_StatusBar(
        VARIANT_BOOL Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_StatusText(
        BSTR* StatusText) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_StatusText(
        BSTR StatusText) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ToolBar(
        int* Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ToolBar(
        int Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_MenuBar(
        VARIANT_BOOL* Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_MenuBar(
        VARIANT_BOOL Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_FullScreen(
        VARIANT_BOOL* pbFullScreen) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_FullScreen(
        VARIANT_BOOL bFullScreen) = 0;

};
#else
typedef struct IWebBrowserAppVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWebBrowserApp* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWebBrowserApp* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWebBrowserApp* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWebBrowserApp* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWebBrowserApp* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWebBrowserApp* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWebBrowserApp* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IWebBrowser methods ***/
    HRESULT (STDMETHODCALLTYPE *GoBack)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *GoForward)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *GoHome)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *GoSearch)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *Navigate)(
        IWebBrowserApp* This,
        BSTR URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers);

    HRESULT (STDMETHODCALLTYPE *Refresh)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *Refresh2)(
        IWebBrowserApp* This,
        VARIANT* Level);

    HRESULT (STDMETHODCALLTYPE *Stop)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *get_Application)(
        IWebBrowserApp* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Parent)(
        IWebBrowserApp* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Container)(
        IWebBrowserApp* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Document)(
        IWebBrowserApp* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_TopLevelContainer)(
        IWebBrowserApp* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IWebBrowserApp* This,
        BSTR* Type);

    HRESULT (STDMETHODCALLTYPE *get_Left)(
        IWebBrowserApp* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Left)(
        IWebBrowserApp* This,
        long Left);

    HRESULT (STDMETHODCALLTYPE *get_Top)(
        IWebBrowserApp* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Top)(
        IWebBrowserApp* This,
        long Top);

    HRESULT (STDMETHODCALLTYPE *get_Width)(
        IWebBrowserApp* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Width)(
        IWebBrowserApp* This,
        long Width);

    HRESULT (STDMETHODCALLTYPE *get_Height)(
        IWebBrowserApp* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Height)(
        IWebBrowserApp* This,
        long Height);

    HRESULT (STDMETHODCALLTYPE *get_LocationName)(
        IWebBrowserApp* This,
        BSTR* LocationName);

    HRESULT (STDMETHODCALLTYPE *get_LocationURL)(
        IWebBrowserApp* This,
        BSTR* LocationURL);

    HRESULT (STDMETHODCALLTYPE *get_Busy)(
        IWebBrowserApp* This,
        VARIANT_BOOL* pBool);

    /*** IWebBrowserApp methods ***/
    HRESULT (STDMETHODCALLTYPE *Quit)(
        IWebBrowserApp* This);

    HRESULT (STDMETHODCALLTYPE *ClientToWindow)(
        IWebBrowserApp* This,
        int* pcx,
        int* pcy);

    HRESULT (STDMETHODCALLTYPE *PutProperty)(
        IWebBrowserApp* This,
        BSTR Property,
        VARIANT vtValue);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        IWebBrowserApp* This,
        BSTR Property,
        VARIANT* pvtValue);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IWebBrowserApp* This,
        BSTR* Name);

    HRESULT (STDMETHODCALLTYPE *get_HWND)(
        IWebBrowserApp* This,
        long* pHWND);

    HRESULT (STDMETHODCALLTYPE *get_FullName)(
        IWebBrowserApp* This,
        BSTR* FullName);

    HRESULT (STDMETHODCALLTYPE *get_Path)(
        IWebBrowserApp* This,
        BSTR* Path);

    HRESULT (STDMETHODCALLTYPE *get_Visible)(
        IWebBrowserApp* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *put_Visible)(
        IWebBrowserApp* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_StatusBar)(
        IWebBrowserApp* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *put_StatusBar)(
        IWebBrowserApp* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_StatusText)(
        IWebBrowserApp* This,
        BSTR* StatusText);

    HRESULT (STDMETHODCALLTYPE *put_StatusText)(
        IWebBrowserApp* This,
        BSTR StatusText);

    HRESULT (STDMETHODCALLTYPE *get_ToolBar)(
        IWebBrowserApp* This,
        int* Value);

    HRESULT (STDMETHODCALLTYPE *put_ToolBar)(
        IWebBrowserApp* This,
        int Value);

    HRESULT (STDMETHODCALLTYPE *get_MenuBar)(
        IWebBrowserApp* This,
        VARIANT_BOOL* Value);

    HRESULT (STDMETHODCALLTYPE *put_MenuBar)(
        IWebBrowserApp* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_FullScreen)(
        IWebBrowserApp* This,
        VARIANT_BOOL* pbFullScreen);

    HRESULT (STDMETHODCALLTYPE *put_FullScreen)(
        IWebBrowserApp* This,
        VARIANT_BOOL bFullScreen);

    END_INTERFACE
} IWebBrowserAppVtbl;
interface IWebBrowserApp {
    const IWebBrowserAppVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowserApp_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IWebBrowserApp_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IWebBrowserApp_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IWebBrowserApp_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IWebBrowserApp_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IWebBrowserApp_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IWebBrowserApp_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IWebBrowser methods ***/
#define IWebBrowserApp_GoBack(p) (p)->lpVtbl->GoBack(p)
#define IWebBrowserApp_GoForward(p) (p)->lpVtbl->GoForward(p)
#define IWebBrowserApp_GoHome(p) (p)->lpVtbl->GoHome(p)
#define IWebBrowserApp_GoSearch(p) (p)->lpVtbl->GoSearch(p)
#define IWebBrowserApp_Navigate(p,a,b,c,d,e) (p)->lpVtbl->Navigate(p,a,b,c,d,e)
#define IWebBrowserApp_Refresh(p) (p)->lpVtbl->Refresh(p)
#define IWebBrowserApp_Refresh2(p,a) (p)->lpVtbl->Refresh2(p,a)
#define IWebBrowserApp_Stop(p) (p)->lpVtbl->Stop(p)
#define IWebBrowserApp_get_Application(p,a) (p)->lpVtbl->get_Application(p,a)
#define IWebBrowserApp_get_Parent(p,a) (p)->lpVtbl->get_Parent(p,a)
#define IWebBrowserApp_get_Container(p,a) (p)->lpVtbl->get_Container(p,a)
#define IWebBrowserApp_get_Document(p,a) (p)->lpVtbl->get_Document(p,a)
#define IWebBrowserApp_get_TopLevelContainer(p,a) (p)->lpVtbl->get_TopLevelContainer(p,a)
#define IWebBrowserApp_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
#define IWebBrowserApp_get_Left(p,a) (p)->lpVtbl->get_Left(p,a)
#define IWebBrowserApp_put_Left(p,a) (p)->lpVtbl->put_Left(p,a)
#define IWebBrowserApp_get_Top(p,a) (p)->lpVtbl->get_Top(p,a)
#define IWebBrowserApp_put_Top(p,a) (p)->lpVtbl->put_Top(p,a)
#define IWebBrowserApp_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
#define IWebBrowserApp_put_Width(p,a) (p)->lpVtbl->put_Width(p,a)
#define IWebBrowserApp_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
#define IWebBrowserApp_put_Height(p,a) (p)->lpVtbl->put_Height(p,a)
#define IWebBrowserApp_get_LocationName(p,a) (p)->lpVtbl->get_LocationName(p,a)
#define IWebBrowserApp_get_LocationURL(p,a) (p)->lpVtbl->get_LocationURL(p,a)
#define IWebBrowserApp_get_Busy(p,a) (p)->lpVtbl->get_Busy(p,a)
/*** IWebBrowserApp methods ***/
#define IWebBrowserApp_Quit(p) (p)->lpVtbl->Quit(p)
#define IWebBrowserApp_ClientToWindow(p,a,b) (p)->lpVtbl->ClientToWindow(p,a,b)
#define IWebBrowserApp_PutProperty(p,a,b) (p)->lpVtbl->PutProperty(p,a,b)
#define IWebBrowserApp_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
#define IWebBrowserApp_get_Name(p,a) (p)->lpVtbl->get_Name(p,a)
#define IWebBrowserApp_get_HWND(p,a) (p)->lpVtbl->get_HWND(p,a)
#define IWebBrowserApp_get_FullName(p,a) (p)->lpVtbl->get_FullName(p,a)
#define IWebBrowserApp_get_Path(p,a) (p)->lpVtbl->get_Path(p,a)
#define IWebBrowserApp_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
#define IWebBrowserApp_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
#define IWebBrowserApp_get_StatusBar(p,a) (p)->lpVtbl->get_StatusBar(p,a)
#define IWebBrowserApp_put_StatusBar(p,a) (p)->lpVtbl->put_StatusBar(p,a)
#define IWebBrowserApp_get_StatusText(p,a) (p)->lpVtbl->get_StatusText(p,a)
#define IWebBrowserApp_put_StatusText(p,a) (p)->lpVtbl->put_StatusText(p,a)
#define IWebBrowserApp_get_ToolBar(p,a) (p)->lpVtbl->get_ToolBar(p,a)
#define IWebBrowserApp_put_ToolBar(p,a) (p)->lpVtbl->put_ToolBar(p,a)
#define IWebBrowserApp_get_MenuBar(p,a) (p)->lpVtbl->get_MenuBar(p,a)
#define IWebBrowserApp_put_MenuBar(p,a) (p)->lpVtbl->put_MenuBar(p,a)
#define IWebBrowserApp_get_FullScreen(p,a) (p)->lpVtbl->get_FullScreen(p,a)
#define IWebBrowserApp_put_FullScreen(p,a) (p)->lpVtbl->put_FullScreen(p,a)
#endif

#endif

HRESULT CALLBACK IWebBrowserApp_Quit_Proxy(
    IWebBrowserApp* This);
void __RPC_STUB IWebBrowserApp_Quit_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_ClientToWindow_Proxy(
    IWebBrowserApp* This,
    int* pcx,
    int* pcy);
void __RPC_STUB IWebBrowserApp_ClientToWindow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_PutProperty_Proxy(
    IWebBrowserApp* This,
    BSTR Property,
    VARIANT vtValue);
void __RPC_STUB IWebBrowserApp_PutProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_GetProperty_Proxy(
    IWebBrowserApp* This,
    BSTR Property,
    VARIANT* pvtValue);
void __RPC_STUB IWebBrowserApp_GetProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_Name_Proxy(
    IWebBrowserApp* This,
    BSTR* Name);
void __RPC_STUB IWebBrowserApp_get_Name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_HWND_Proxy(
    IWebBrowserApp* This,
    long* pHWND);
void __RPC_STUB IWebBrowserApp_get_HWND_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_FullName_Proxy(
    IWebBrowserApp* This,
    BSTR* FullName);
void __RPC_STUB IWebBrowserApp_get_FullName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_Path_Proxy(
    IWebBrowserApp* This,
    BSTR* Path);
void __RPC_STUB IWebBrowserApp_get_Path_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_Visible_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IWebBrowserApp_get_Visible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_Visible_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL Value);
void __RPC_STUB IWebBrowserApp_put_Visible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_StatusBar_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IWebBrowserApp_get_StatusBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_StatusBar_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL Value);
void __RPC_STUB IWebBrowserApp_put_StatusBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_StatusText_Proxy(
    IWebBrowserApp* This,
    BSTR* StatusText);
void __RPC_STUB IWebBrowserApp_get_StatusText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_StatusText_Proxy(
    IWebBrowserApp* This,
    BSTR StatusText);
void __RPC_STUB IWebBrowserApp_put_StatusText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_ToolBar_Proxy(
    IWebBrowserApp* This,
    int* Value);
void __RPC_STUB IWebBrowserApp_get_ToolBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_ToolBar_Proxy(
    IWebBrowserApp* This,
    int Value);
void __RPC_STUB IWebBrowserApp_put_ToolBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_MenuBar_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL* Value);
void __RPC_STUB IWebBrowserApp_get_MenuBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_MenuBar_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL Value);
void __RPC_STUB IWebBrowserApp_put_MenuBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_get_FullScreen_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL* pbFullScreen);
void __RPC_STUB IWebBrowserApp_get_FullScreen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowserApp_put_FullScreen_Proxy(
    IWebBrowserApp* This,
    VARIANT_BOOL bFullScreen);
void __RPC_STUB IWebBrowserApp_put_FullScreen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IWebBrowserApp_INTERFACE_DEFINED__ */

#ifndef __IWebBrowser2_FWD_DEFINED__
#define __IWebBrowser2_FWD_DEFINED__
typedef interface IWebBrowser2 IWebBrowser2;
#endif

/*****************************************************************************
 * IWebBrowser2 interface
 */
#ifndef __IWebBrowser2_INTERFACE_DEFINED__
#define __IWebBrowser2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IWebBrowser2, 0xd30c1661, 0xcdaf, 0x11d0, 0x8a,0x3e, 0x00,0xc0,0x4f,0xc9,0xe2,0x6e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IWebBrowser2 : public IWebBrowserApp
{
    virtual HRESULT STDMETHODCALLTYPE Navigate2(
        VARIANT* URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers) = 0;

    virtual HRESULT STDMETHODCALLTYPE QueryStatusWB(
        OLECMDID cmdID,
        OLECMDF* pcmdf) = 0;

    virtual HRESULT STDMETHODCALLTYPE ExecWB(
        OLECMDID cmdID,
        OLECMDEXECOPT cmdexecopt,
        VARIANT* pvaIn,
        VARIANT* pvaOut) = 0;

    virtual HRESULT STDMETHODCALLTYPE ShowBrowserBar(
        VARIANT* pvaClsid,
        VARIANT* pvarShow,
        VARIANT* pvarSize) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ReadyState(
        READYSTATE* plReadyState) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Offline(
        VARIANT_BOOL* pbOffline) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Offline(
        VARIANT_BOOL bOffline) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Silent(
        VARIANT_BOOL* pbSilent) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Silent(
        VARIANT_BOOL bSilent) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RegisterAsBrowser(
        VARIANT_BOOL* pbRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_RegisterAsBrowser(
        VARIANT_BOOL bRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_RegisterAsDropTarget(
        VARIANT_BOOL* pbRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_RegisterAsDropTarget(
        VARIANT_BOOL bRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TheaterMode(
        VARIANT_BOOL* pbRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_TheaterMode(
        VARIANT_BOOL bRegister) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_AddressBar(
        VARIANT_BOOL* Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_AddressBar(
        VARIANT_BOOL Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Resizable(
        VARIANT_BOOL* Value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Resizable(
        VARIANT_BOOL Value) = 0;

};
#else
typedef struct IWebBrowser2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IWebBrowser2* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IWebBrowser2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IWebBrowser2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IWebBrowser2* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IWebBrowser2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IWebBrowser2* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IWebBrowser2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IWebBrowser methods ***/
    HRESULT (STDMETHODCALLTYPE *GoBack)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *GoForward)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *GoHome)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *GoSearch)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *Navigate)(
        IWebBrowser2* This,
        BSTR URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers);

    HRESULT (STDMETHODCALLTYPE *Refresh)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *Refresh2)(
        IWebBrowser2* This,
        VARIANT* Level);

    HRESULT (STDMETHODCALLTYPE *Stop)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *get_Application)(
        IWebBrowser2* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Parent)(
        IWebBrowser2* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Container)(
        IWebBrowser2* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_Document)(
        IWebBrowser2* This,
        IDispatch** ppDisp);

    HRESULT (STDMETHODCALLTYPE *get_TopLevelContainer)(
        IWebBrowser2* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *get_Type)(
        IWebBrowser2* This,
        BSTR* Type);

    HRESULT (STDMETHODCALLTYPE *get_Left)(
        IWebBrowser2* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Left)(
        IWebBrowser2* This,
        long Left);

    HRESULT (STDMETHODCALLTYPE *get_Top)(
        IWebBrowser2* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Top)(
        IWebBrowser2* This,
        long Top);

    HRESULT (STDMETHODCALLTYPE *get_Width)(
        IWebBrowser2* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Width)(
        IWebBrowser2* This,
        long Width);

    HRESULT (STDMETHODCALLTYPE *get_Height)(
        IWebBrowser2* This,
        long* pl);

    HRESULT (STDMETHODCALLTYPE *put_Height)(
        IWebBrowser2* This,
        long Height);

    HRESULT (STDMETHODCALLTYPE *get_LocationName)(
        IWebBrowser2* This,
        BSTR* LocationName);

    HRESULT (STDMETHODCALLTYPE *get_LocationURL)(
        IWebBrowser2* This,
        BSTR* LocationURL);

    HRESULT (STDMETHODCALLTYPE *get_Busy)(
        IWebBrowser2* This,
        VARIANT_BOOL* pBool);

    /*** IWebBrowserApp methods ***/
    HRESULT (STDMETHODCALLTYPE *Quit)(
        IWebBrowser2* This);

    HRESULT (STDMETHODCALLTYPE *ClientToWindow)(
        IWebBrowser2* This,
        int* pcx,
        int* pcy);

    HRESULT (STDMETHODCALLTYPE *PutProperty)(
        IWebBrowser2* This,
        BSTR Property,
        VARIANT vtValue);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        IWebBrowser2* This,
        BSTR Property,
        VARIANT* pvtValue);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        IWebBrowser2* This,
        BSTR* Name);

    HRESULT (STDMETHODCALLTYPE *get_HWND)(
        IWebBrowser2* This,
        long* pHWND);

    HRESULT (STDMETHODCALLTYPE *get_FullName)(
        IWebBrowser2* This,
        BSTR* FullName);

    HRESULT (STDMETHODCALLTYPE *get_Path)(
        IWebBrowser2* This,
        BSTR* Path);

    HRESULT (STDMETHODCALLTYPE *get_Visible)(
        IWebBrowser2* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *put_Visible)(
        IWebBrowser2* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_StatusBar)(
        IWebBrowser2* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *put_StatusBar)(
        IWebBrowser2* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_StatusText)(
        IWebBrowser2* This,
        BSTR* StatusText);

    HRESULT (STDMETHODCALLTYPE *put_StatusText)(
        IWebBrowser2* This,
        BSTR StatusText);

    HRESULT (STDMETHODCALLTYPE *get_ToolBar)(
        IWebBrowser2* This,
        int* Value);

    HRESULT (STDMETHODCALLTYPE *put_ToolBar)(
        IWebBrowser2* This,
        int Value);

    HRESULT (STDMETHODCALLTYPE *get_MenuBar)(
        IWebBrowser2* This,
        VARIANT_BOOL* Value);

    HRESULT (STDMETHODCALLTYPE *put_MenuBar)(
        IWebBrowser2* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_FullScreen)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbFullScreen);

    HRESULT (STDMETHODCALLTYPE *put_FullScreen)(
        IWebBrowser2* This,
        VARIANT_BOOL bFullScreen);

    /*** IWebBrowser2 methods ***/
    HRESULT (STDMETHODCALLTYPE *Navigate2)(
        IWebBrowser2* This,
        VARIANT* URL,
        VARIANT* Flags,
        VARIANT* TargetFrameName,
        VARIANT* PostData,
        VARIANT* Headers);

    HRESULT (STDMETHODCALLTYPE *QueryStatusWB)(
        IWebBrowser2* This,
        OLECMDID cmdID,
        OLECMDF* pcmdf);

    HRESULT (STDMETHODCALLTYPE *ExecWB)(
        IWebBrowser2* This,
        OLECMDID cmdID,
        OLECMDEXECOPT cmdexecopt,
        VARIANT* pvaIn,
        VARIANT* pvaOut);

    HRESULT (STDMETHODCALLTYPE *ShowBrowserBar)(
        IWebBrowser2* This,
        VARIANT* pvaClsid,
        VARIANT* pvarShow,
        VARIANT* pvarSize);

    HRESULT (STDMETHODCALLTYPE *get_ReadyState)(
        IWebBrowser2* This,
        READYSTATE* plReadyState);

    HRESULT (STDMETHODCALLTYPE *get_Offline)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbOffline);

    HRESULT (STDMETHODCALLTYPE *put_Offline)(
        IWebBrowser2* This,
        VARIANT_BOOL bOffline);

    HRESULT (STDMETHODCALLTYPE *get_Silent)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbSilent);

    HRESULT (STDMETHODCALLTYPE *put_Silent)(
        IWebBrowser2* This,
        VARIANT_BOOL bSilent);

    HRESULT (STDMETHODCALLTYPE *get_RegisterAsBrowser)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbRegister);

    HRESULT (STDMETHODCALLTYPE *put_RegisterAsBrowser)(
        IWebBrowser2* This,
        VARIANT_BOOL bRegister);

    HRESULT (STDMETHODCALLTYPE *get_RegisterAsDropTarget)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbRegister);

    HRESULT (STDMETHODCALLTYPE *put_RegisterAsDropTarget)(
        IWebBrowser2* This,
        VARIANT_BOOL bRegister);

    HRESULT (STDMETHODCALLTYPE *get_TheaterMode)(
        IWebBrowser2* This,
        VARIANT_BOOL* pbRegister);

    HRESULT (STDMETHODCALLTYPE *put_TheaterMode)(
        IWebBrowser2* This,
        VARIANT_BOOL bRegister);

    HRESULT (STDMETHODCALLTYPE *get_AddressBar)(
        IWebBrowser2* This,
        VARIANT_BOOL* Value);

    HRESULT (STDMETHODCALLTYPE *put_AddressBar)(
        IWebBrowser2* This,
        VARIANT_BOOL Value);

    HRESULT (STDMETHODCALLTYPE *get_Resizable)(
        IWebBrowser2* This,
        VARIANT_BOOL* Value);

    HRESULT (STDMETHODCALLTYPE *put_Resizable)(
        IWebBrowser2* This,
        VARIANT_BOOL Value);

    END_INTERFACE
} IWebBrowser2Vtbl;
interface IWebBrowser2 {
    const IWebBrowser2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowser2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IWebBrowser2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IWebBrowser2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IWebBrowser2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IWebBrowser2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IWebBrowser2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IWebBrowser2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IWebBrowser methods ***/
#define IWebBrowser2_GoBack(p) (p)->lpVtbl->GoBack(p)
#define IWebBrowser2_GoForward(p) (p)->lpVtbl->GoForward(p)
#define IWebBrowser2_GoHome(p) (p)->lpVtbl->GoHome(p)
#define IWebBrowser2_GoSearch(p) (p)->lpVtbl->GoSearch(p)
#define IWebBrowser2_Navigate(p,a,b,c,d,e) (p)->lpVtbl->Navigate(p,a,b,c,d,e)
#define IWebBrowser2_Refresh(p) (p)->lpVtbl->Refresh(p)
#define IWebBrowser2_Refresh2(p,a) (p)->lpVtbl->Refresh2(p,a)
#define IWebBrowser2_Stop(p) (p)->lpVtbl->Stop(p)
#define IWebBrowser2_get_Application(p,a) (p)->lpVtbl->get_Application(p,a)
#define IWebBrowser2_get_Parent(p,a) (p)->lpVtbl->get_Parent(p,a)
#define IWebBrowser2_get_Container(p,a) (p)->lpVtbl->get_Container(p,a)
#define IWebBrowser2_get_Document(p,a) (p)->lpVtbl->get_Document(p,a)
#define IWebBrowser2_get_TopLevelContainer(p,a) (p)->lpVtbl->get_TopLevelContainer(p,a)
#define IWebBrowser2_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
#define IWebBrowser2_get_Left(p,a) (p)->lpVtbl->get_Left(p,a)
#define IWebBrowser2_put_Left(p,a) (p)->lpVtbl->put_Left(p,a)
#define IWebBrowser2_get_Top(p,a) (p)->lpVtbl->get_Top(p,a)
#define IWebBrowser2_put_Top(p,a) (p)->lpVtbl->put_Top(p,a)
#define IWebBrowser2_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
#define IWebBrowser2_put_Width(p,a) (p)->lpVtbl->put_Width(p,a)
#define IWebBrowser2_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
#define IWebBrowser2_put_Height(p,a) (p)->lpVtbl->put_Height(p,a)
#define IWebBrowser2_get_LocationName(p,a) (p)->lpVtbl->get_LocationName(p,a)
#define IWebBrowser2_get_LocationURL(p,a) (p)->lpVtbl->get_LocationURL(p,a)
#define IWebBrowser2_get_Busy(p,a) (p)->lpVtbl->get_Busy(p,a)
/*** IWebBrowserApp methods ***/
#define IWebBrowser2_Quit(p) (p)->lpVtbl->Quit(p)
#define IWebBrowser2_ClientToWindow(p,a,b) (p)->lpVtbl->ClientToWindow(p,a,b)
#define IWebBrowser2_PutProperty(p,a,b) (p)->lpVtbl->PutProperty(p,a,b)
#define IWebBrowser2_GetProperty(p,a,b) (p)->lpVtbl->GetProperty(p,a,b)
#define IWebBrowser2_get_Name(p,a) (p)->lpVtbl->get_Name(p,a)
#define IWebBrowser2_get_HWND(p,a) (p)->lpVtbl->get_HWND(p,a)
#define IWebBrowser2_get_FullName(p,a) (p)->lpVtbl->get_FullName(p,a)
#define IWebBrowser2_get_Path(p,a) (p)->lpVtbl->get_Path(p,a)
#define IWebBrowser2_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a)
#define IWebBrowser2_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a)
#define IWebBrowser2_get_StatusBar(p,a) (p)->lpVtbl->get_StatusBar(p,a)
#define IWebBrowser2_put_StatusBar(p,a) (p)->lpVtbl->put_StatusBar(p,a)
#define IWebBrowser2_get_StatusText(p,a) (p)->lpVtbl->get_StatusText(p,a)
#define IWebBrowser2_put_StatusText(p,a) (p)->lpVtbl->put_StatusText(p,a)
#define IWebBrowser2_get_ToolBar(p,a) (p)->lpVtbl->get_ToolBar(p,a)
#define IWebBrowser2_put_ToolBar(p,a) (p)->lpVtbl->put_ToolBar(p,a)
#define IWebBrowser2_get_MenuBar(p,a) (p)->lpVtbl->get_MenuBar(p,a)
#define IWebBrowser2_put_MenuBar(p,a) (p)->lpVtbl->put_MenuBar(p,a)
#define IWebBrowser2_get_FullScreen(p,a) (p)->lpVtbl->get_FullScreen(p,a)
#define IWebBrowser2_put_FullScreen(p,a) (p)->lpVtbl->put_FullScreen(p,a)
/*** IWebBrowser2 methods ***/
#define IWebBrowser2_Navigate2(p,a,b,c,d,e) (p)->lpVtbl->Navigate2(p,a,b,c,d,e)
#define IWebBrowser2_QueryStatusWB(p,a,b) (p)->lpVtbl->QueryStatusWB(p,a,b)
#define IWebBrowser2_ExecWB(p,a,b,c,d) (p)->lpVtbl->ExecWB(p,a,b,c,d)
#define IWebBrowser2_ShowBrowserBar(p,a,b,c) (p)->lpVtbl->ShowBrowserBar(p,a,b,c)
#define IWebBrowser2_get_ReadyState(p,a) (p)->lpVtbl->get_ReadyState(p,a)
#define IWebBrowser2_get_Offline(p,a) (p)->lpVtbl->get_Offline(p,a)
#define IWebBrowser2_put_Offline(p,a) (p)->lpVtbl->put_Offline(p,a)
#define IWebBrowser2_get_Silent(p,a) (p)->lpVtbl->get_Silent(p,a)
#define IWebBrowser2_put_Silent(p,a) (p)->lpVtbl->put_Silent(p,a)
#define IWebBrowser2_get_RegisterAsBrowser(p,a) (p)->lpVtbl->get_RegisterAsBrowser(p,a)
#define IWebBrowser2_put_RegisterAsBrowser(p,a) (p)->lpVtbl->put_RegisterAsBrowser(p,a)
#define IWebBrowser2_get_RegisterAsDropTarget(p,a) (p)->lpVtbl->get_RegisterAsDropTarget(p,a)
#define IWebBrowser2_put_RegisterAsDropTarget(p,a) (p)->lpVtbl->put_RegisterAsDropTarget(p,a)
#define IWebBrowser2_get_TheaterMode(p,a) (p)->lpVtbl->get_TheaterMode(p,a)
#define IWebBrowser2_put_TheaterMode(p,a) (p)->lpVtbl->put_TheaterMode(p,a)
#define IWebBrowser2_get_AddressBar(p,a) (p)->lpVtbl->get_AddressBar(p,a)
#define IWebBrowser2_put_AddressBar(p,a) (p)->lpVtbl->put_AddressBar(p,a)
#define IWebBrowser2_get_Resizable(p,a) (p)->lpVtbl->get_Resizable(p,a)
#define IWebBrowser2_put_Resizable(p,a) (p)->lpVtbl->put_Resizable(p,a)
#endif

#endif

HRESULT CALLBACK IWebBrowser2_Navigate2_Proxy(
    IWebBrowser2* This,
    VARIANT* URL,
    VARIANT* Flags,
    VARIANT* TargetFrameName,
    VARIANT* PostData,
    VARIANT* Headers);
void __RPC_STUB IWebBrowser2_Navigate2_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_QueryStatusWB_Proxy(
    IWebBrowser2* This,
    OLECMDID cmdID,
    OLECMDF* pcmdf);
void __RPC_STUB IWebBrowser2_QueryStatusWB_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_ExecWB_Proxy(
    IWebBrowser2* This,
    OLECMDID cmdID,
    OLECMDEXECOPT cmdexecopt,
    VARIANT* pvaIn,
    VARIANT* pvaOut);
void __RPC_STUB IWebBrowser2_ExecWB_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_ShowBrowserBar_Proxy(
    IWebBrowser2* This,
    VARIANT* pvaClsid,
    VARIANT* pvarShow,
    VARIANT* pvarSize);
void __RPC_STUB IWebBrowser2_ShowBrowserBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_ReadyState_Proxy(
    IWebBrowser2* This,
    READYSTATE* plReadyState);
void __RPC_STUB IWebBrowser2_get_ReadyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_Offline_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* pbOffline);
void __RPC_STUB IWebBrowser2_get_Offline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_Offline_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL bOffline);
void __RPC_STUB IWebBrowser2_put_Offline_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_Silent_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* pbSilent);
void __RPC_STUB IWebBrowser2_get_Silent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_Silent_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL bSilent);
void __RPC_STUB IWebBrowser2_put_Silent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_RegisterAsBrowser_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* pbRegister);
void __RPC_STUB IWebBrowser2_get_RegisterAsBrowser_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_RegisterAsBrowser_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL bRegister);
void __RPC_STUB IWebBrowser2_put_RegisterAsBrowser_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_RegisterAsDropTarget_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* pbRegister);
void __RPC_STUB IWebBrowser2_get_RegisterAsDropTarget_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_RegisterAsDropTarget_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL bRegister);
void __RPC_STUB IWebBrowser2_put_RegisterAsDropTarget_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_TheaterMode_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* pbRegister);
void __RPC_STUB IWebBrowser2_get_TheaterMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_TheaterMode_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL bRegister);
void __RPC_STUB IWebBrowser2_put_TheaterMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_AddressBar_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* Value);
void __RPC_STUB IWebBrowser2_get_AddressBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_AddressBar_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL Value);
void __RPC_STUB IWebBrowser2_put_AddressBar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_get_Resizable_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL* Value);
void __RPC_STUB IWebBrowser2_get_Resizable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IWebBrowser2_put_Resizable_Proxy(
    IWebBrowser2* This,
    VARIANT_BOOL Value);
void __RPC_STUB IWebBrowser2_put_Resizable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IWebBrowser2_INTERFACE_DEFINED__ */

typedef enum SecureLockIconConstants {
    secureLockIconUnsecure = 0,
    secureLockIconMixed = 1,
    secureLockIconSecureUnknownBits = 2,
    secureLockIconSecure40Bit = 3,
    secureLockIconSecure56Bit = 4,
    secureLockIconSecureFortezza = 5,
    secureLockIconSecure128Bit = 6
} SecureLockIconConstants;
#ifndef __DWebBrowserEvents2_FWD_DEFINED__
#define __DWebBrowserEvents2_FWD_DEFINED__
typedef interface DWebBrowserEvents2 DWebBrowserEvents2;
#endif

/*****************************************************************************
 * DWebBrowserEvents2 dispinterface
 */
#ifndef __DWebBrowserEvents2_DISPINTERFACE_DEFINED__
#define __DWebBrowserEvents2_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_DWebBrowserEvents2, 0x34a715a0, 0x6587, 0x11d0, 0x92,0x4a, 0x00,0x20,0xaf,0xc7,0xac,0x4d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DWebBrowserEvents2 : public IDispatch
{
};
#else
typedef struct DWebBrowserEvents2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        DWebBrowserEvents2* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        DWebBrowserEvents2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        DWebBrowserEvents2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        DWebBrowserEvents2* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        DWebBrowserEvents2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        DWebBrowserEvents2* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        DWebBrowserEvents2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} DWebBrowserEvents2Vtbl;
interface DWebBrowserEvents2 {
    const DWebBrowserEvents2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DWebBrowserEvents2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define DWebBrowserEvents2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define DWebBrowserEvents2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define DWebBrowserEvents2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define DWebBrowserEvents2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define DWebBrowserEvents2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define DWebBrowserEvents2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __DWebBrowserEvents2_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * WebBrowser_V1 coclass
 */

DEFINE_GUID(CLSID_WebBrowser_V1, 0xeab22ac3, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b);

#ifndef __WebBrowser_V1_FWD_DEFINED__
#define __WebBrowser_V1_FWD_DEFINED__
typedef struct WebBrowser_V1 WebBrowser_V1;
#endif /* defined __WebBrowser_V1_FWD_DEFINED__ */

/*****************************************************************************
 * WebBrowser coclass
 */

DEFINE_GUID(CLSID_WebBrowser, 0x8856f961, 0x340a, 0x11d0, 0xa9,0x6b, 0x00,0xc0,0x4f,0xd7,0x05,0xa2);

#ifndef __WebBrowser_FWD_DEFINED__
#define __WebBrowser_FWD_DEFINED__
typedef struct WebBrowser WebBrowser;
#endif /* defined __WebBrowser_FWD_DEFINED__ */

/*****************************************************************************
 * InternetExplorer coclass
 */

DEFINE_GUID(CLSID_InternetExplorer, 0x0002df01, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);

#ifndef __InternetExplorer_FWD_DEFINED__
#define __InternetExplorer_FWD_DEFINED__
typedef struct InternetExplorer InternetExplorer;
#endif /* defined __InternetExplorer_FWD_DEFINED__ */

/*****************************************************************************
 * ShellBrowserWindow coclass
 */

DEFINE_GUID(CLSID_ShellBrowserWindow, 0xc08afd90, 0xf2a1, 0x11d1, 0x84,0x55, 0x00,0xa0,0xc9,0x1f,0x38,0x80);

#ifndef __ShellBrowserWindow_FWD_DEFINED__
#define __ShellBrowserWindow_FWD_DEFINED__
typedef struct ShellBrowserWindow ShellBrowserWindow;
#endif /* defined __ShellBrowserWindow_FWD_DEFINED__ */

typedef enum ShellWindowTypeConstants {
    SWC_EXPLORER = 0,
    SWC_BROWSER = 1,
    SWC_3RDPARTY = 2,
    SWC_CALLBACK = 4
} ShellWindowTypeConstants;
typedef enum ShellWindowFindWindowOptions {
    SWFO_NEEDDISPATCH = 1,
    SWFO_INCLUDEPENDING = 2,
    SWFO_COOKIEPASSED = 4
} ShellWindowFindWindowOptions;
#ifndef __DShellWindowsEvents_FWD_DEFINED__
#define __DShellWindowsEvents_FWD_DEFINED__
typedef interface DShellWindowsEvents DShellWindowsEvents;
#endif

/*****************************************************************************
 * DShellWindowsEvents dispinterface
 */
#ifndef __DShellWindowsEvents_DISPINTERFACE_DEFINED__
#define __DShellWindowsEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_DShellWindowsEvents, 0xfe4106e0, 0x399a, 0x11d0, 0xa4,0x8c, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DShellWindowsEvents : public IDispatch
{
};
#else
typedef struct DShellWindowsEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        DShellWindowsEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        DShellWindowsEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        DShellWindowsEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        DShellWindowsEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        DShellWindowsEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        DShellWindowsEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        DShellWindowsEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} DShellWindowsEventsVtbl;
interface DShellWindowsEvents {
    const DShellWindowsEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DShellWindowsEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define DShellWindowsEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define DShellWindowsEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define DShellWindowsEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define DShellWindowsEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define DShellWindowsEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define DShellWindowsEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __DShellWindowsEvents_DISPINTERFACE_DEFINED__ */

#ifndef __IShellWindows_FWD_DEFINED__
#define __IShellWindows_FWD_DEFINED__
typedef interface IShellWindows IShellWindows;
#endif

/*****************************************************************************
 * IShellWindows interface
 */
#ifndef __IShellWindows_INTERFACE_DEFINED__
#define __IShellWindows_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellWindows, 0x85cb6900, 0x4d95, 0x11cf, 0x96,0x0c, 0x00,0x80,0xc7,0xf4,0xee,0x85);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IShellWindows : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Count(
        long* Count) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        VARIANT index,
        IDispatch** Folder) = 0;

    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
        IUnknown** ppunk) = 0;

    virtual HRESULT STDMETHODCALLTYPE Register(
        IDispatch* pid,
        long hWnd,
        int swClass,
        long* plCookie) = 0;

    virtual HRESULT STDMETHODCALLTYPE RegisterPending(
        long lThreadId,
        VARIANT* pvarloc,
        VARIANT* pvarlocRoot,
        int swClass,
        long* plCookie) = 0;

    virtual HRESULT STDMETHODCALLTYPE Revoke(
        long lCookie) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnNavigate(
        long lCookie,
        VARIANT* pvarLoc) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnActivated(
        long lCookie,
        VARIANT_BOOL fActive) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindWindowSW(
        VARIANT* pvarLoc,
        VARIANT* pvarLocRoot,
        int swClass,
        long* phwnd,
        int swfwOptions,
        IDispatch** ppdispOut) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnCreated(
        long lCookie,
        IUnknown* punk) = 0;

    virtual HRESULT STDMETHODCALLTYPE ProcessAttachDetach(
        VARIANT_BOOL fAttach) = 0;

};
#else
typedef struct IShellWindowsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IShellWindows* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IShellWindows* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IShellWindows* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IShellWindows* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IShellWindows* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IShellWindows* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IShellWindows* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IShellWindows methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Count)(
        IShellWindows* This,
        long* Count);

    HRESULT (STDMETHODCALLTYPE *Item)(
        IShellWindows* This,
        VARIANT index,
        IDispatch** Folder);

    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
        IShellWindows* This,
        IUnknown** ppunk);

    HRESULT (STDMETHODCALLTYPE *Register)(
        IShellWindows* This,
        IDispatch* pid,
        long hWnd,
        int swClass,
        long* plCookie);

    HRESULT (STDMETHODCALLTYPE *RegisterPending)(
        IShellWindows* This,
        long lThreadId,
        VARIANT* pvarloc,
        VARIANT* pvarlocRoot,
        int swClass,
        long* plCookie);

    HRESULT (STDMETHODCALLTYPE *Revoke)(
        IShellWindows* This,
        long lCookie);

    HRESULT (STDMETHODCALLTYPE *OnNavigate)(
        IShellWindows* This,
        long lCookie,
        VARIANT* pvarLoc);

    HRESULT (STDMETHODCALLTYPE *OnActivated)(
        IShellWindows* This,
        long lCookie,
        VARIANT_BOOL fActive);

    HRESULT (STDMETHODCALLTYPE *FindWindowSW)(
        IShellWindows* This,
        VARIANT* pvarLoc,
        VARIANT* pvarLocRoot,
        int swClass,
        long* phwnd,
        int swfwOptions,
        IDispatch** ppdispOut);

    HRESULT (STDMETHODCALLTYPE *OnCreated)(
        IShellWindows* This,
        long lCookie,
        IUnknown* punk);

    HRESULT (STDMETHODCALLTYPE *ProcessAttachDetach)(
        IShellWindows* This,
        VARIANT_BOOL fAttach);

    END_INTERFACE
} IShellWindowsVtbl;
interface IShellWindows {
    const IShellWindowsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellWindows_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IShellWindows_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IShellWindows_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IShellWindows_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IShellWindows_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IShellWindows_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IShellWindows_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IShellWindows methods ***/
#define IShellWindows_get_Count(p,a) (p)->lpVtbl->get_Count(p,a)
#define IShellWindows_Item(p,a,b) (p)->lpVtbl->Item(p,a,b)
#define IShellWindows__NewEnum(p,a) (p)->lpVtbl->_NewEnum(p,a)
#define IShellWindows_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
#define IShellWindows_RegisterPending(p,a,b,c,d,e) (p)->lpVtbl->RegisterPending(p,a,b,c,d,e)
#define IShellWindows_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
#define IShellWindows_OnNavigate(p,a,b) (p)->lpVtbl->OnNavigate(p,a,b)
#define IShellWindows_OnActivated(p,a,b) (p)->lpVtbl->OnActivated(p,a,b)
#define IShellWindows_FindWindowSW(p,a,b,c,d,e,f) (p)->lpVtbl->FindWindowSW(p,a,b,c,d,e,f)
#define IShellWindows_OnCreated(p,a,b) (p)->lpVtbl->OnCreated(p,a,b)
#define IShellWindows_ProcessAttachDetach(p,a) (p)->lpVtbl->ProcessAttachDetach(p,a)
#endif

#endif

HRESULT CALLBACK IShellWindows_get_Count_Proxy(
    IShellWindows* This,
    long* Count);
void __RPC_STUB IShellWindows_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_Item_Proxy(
    IShellWindows* This,
    VARIANT index,
    IDispatch** Folder);
void __RPC_STUB IShellWindows_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows__NewEnum_Proxy(
    IShellWindows* This,
    IUnknown** ppunk);
void __RPC_STUB IShellWindows__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_Register_Proxy(
    IShellWindows* This,
    IDispatch* pid,
    long hWnd,
    int swClass,
    long* plCookie);
void __RPC_STUB IShellWindows_Register_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_RegisterPending_Proxy(
    IShellWindows* This,
    long lThreadId,
    VARIANT* pvarloc,
    VARIANT* pvarlocRoot,
    int swClass,
    long* plCookie);
void __RPC_STUB IShellWindows_RegisterPending_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_Revoke_Proxy(
    IShellWindows* This,
    long lCookie);
void __RPC_STUB IShellWindows_Revoke_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_OnNavigate_Proxy(
    IShellWindows* This,
    long lCookie,
    VARIANT* pvarLoc);
void __RPC_STUB IShellWindows_OnNavigate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_OnActivated_Proxy(
    IShellWindows* This,
    long lCookie,
    VARIANT_BOOL fActive);
void __RPC_STUB IShellWindows_OnActivated_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_FindWindowSW_Proxy(
    IShellWindows* This,
    VARIANT* pvarLoc,
    VARIANT* pvarLocRoot,
    int swClass,
    long* phwnd,
    int swfwOptions,
    IDispatch** ppdispOut);
void __RPC_STUB IShellWindows_FindWindowSW_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_OnCreated_Proxy(
    IShellWindows* This,
    long lCookie,
    IUnknown* punk);
void __RPC_STUB IShellWindows_OnCreated_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellWindows_ProcessAttachDetach_Proxy(
    IShellWindows* This,
    VARIANT_BOOL fAttach);
void __RPC_STUB IShellWindows_ProcessAttachDetach_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellWindows_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ShellWindows coclass
 */

DEFINE_GUID(CLSID_ShellWindows, 0x9ba05972, 0xf6a8, 0x11cf, 0xa4,0x42, 0x00,0xa0,0xc9,0x0a,0x8f,0x39);

#ifndef __ShellWindows_FWD_DEFINED__
#define __ShellWindows_FWD_DEFINED__
typedef struct ShellWindows ShellWindows;
#endif /* defined __ShellWindows_FWD_DEFINED__ */

#ifndef __IShellUIHelper_FWD_DEFINED__
#define __IShellUIHelper_FWD_DEFINED__
typedef interface IShellUIHelper IShellUIHelper;
#endif

/*****************************************************************************
 * IShellUIHelper interface
 */
#ifndef __IShellUIHelper_INTERFACE_DEFINED__
#define __IShellUIHelper_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellUIHelper, 0x729fe2f8, 0x1ea8, 0x11d1, 0x8f,0x85, 0x00,0xc0,0x4f,0xc2,0xfb,0xe1);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IShellUIHelper : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE ResetFirstBootMode(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResetSafeMode(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE RefreshOfflineDesktop(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddFavorite(
        BSTR URL,
        VARIANT* Title) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddChannel(
        BSTR URL) = 0;

    virtual HRESULT STDMETHODCALLTYPE AddDesktopComponent(
        BSTR URL,
        BSTR Type,
        VARIANT* Left,
        VARIANT* Top,
        VARIANT* Width,
        VARIANT* Height) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsSubscribed(
        BSTR URL,
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE NavigateAndFind(
        BSTR URL,
        BSTR strQuery,
        VARIANT* varTargetFrame) = 0;

    virtual HRESULT STDMETHODCALLTYPE ImportExportFavorites(
        VARIANT_BOOL fImport,
        BSTR strImpExpPath) = 0;

    virtual HRESULT STDMETHODCALLTYPE AutoCompleteSaveForm(
        VARIANT* Form) = 0;

    virtual HRESULT STDMETHODCALLTYPE AutoScan(
        BSTR strSearch,
        BSTR strFailureUrl,
        VARIANT* pvarTargetFrame) = 0;

    virtual HRESULT STDMETHODCALLTYPE AutoCompleteAttach(
        VARIANT* Reserved) = 0;

    virtual HRESULT STDMETHODCALLTYPE ShowBrowserUI(
        BSTR bstrName,
        VARIANT* pvarIn,
        VARIANT* pvarOut) = 0;

};
#else
typedef struct IShellUIHelperVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IShellUIHelper* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IShellUIHelper* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IShellUIHelper* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IShellUIHelper* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IShellUIHelper* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IShellUIHelper* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IShellUIHelper* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IShellUIHelper methods ***/
    HRESULT (STDMETHODCALLTYPE *ResetFirstBootMode)(
        IShellUIHelper* This);

    HRESULT (STDMETHODCALLTYPE *ResetSafeMode)(
        IShellUIHelper* This);

    HRESULT (STDMETHODCALLTYPE *RefreshOfflineDesktop)(
        IShellUIHelper* This);

    HRESULT (STDMETHODCALLTYPE *AddFavorite)(
        IShellUIHelper* This,
        BSTR URL,
        VARIANT* Title);

    HRESULT (STDMETHODCALLTYPE *AddChannel)(
        IShellUIHelper* This,
        BSTR URL);

    HRESULT (STDMETHODCALLTYPE *AddDesktopComponent)(
        IShellUIHelper* This,
        BSTR URL,
        BSTR Type,
        VARIANT* Left,
        VARIANT* Top,
        VARIANT* Width,
        VARIANT* Height);

    HRESULT (STDMETHODCALLTYPE *IsSubscribed)(
        IShellUIHelper* This,
        BSTR URL,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *NavigateAndFind)(
        IShellUIHelper* This,
        BSTR URL,
        BSTR strQuery,
        VARIANT* varTargetFrame);

    HRESULT (STDMETHODCALLTYPE *ImportExportFavorites)(
        IShellUIHelper* This,
        VARIANT_BOOL fImport,
        BSTR strImpExpPath);

    HRESULT (STDMETHODCALLTYPE *AutoCompleteSaveForm)(
        IShellUIHelper* This,
        VARIANT* Form);

    HRESULT (STDMETHODCALLTYPE *AutoScan)(
        IShellUIHelper* This,
        BSTR strSearch,
        BSTR strFailureUrl,
        VARIANT* pvarTargetFrame);

    HRESULT (STDMETHODCALLTYPE *AutoCompleteAttach)(
        IShellUIHelper* This,
        VARIANT* Reserved);

    HRESULT (STDMETHODCALLTYPE *ShowBrowserUI)(
        IShellUIHelper* This,
        BSTR bstrName,
        VARIANT* pvarIn,
        VARIANT* pvarOut);

    END_INTERFACE
} IShellUIHelperVtbl;
interface IShellUIHelper {
    const IShellUIHelperVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellUIHelper_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IShellUIHelper_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IShellUIHelper_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IShellUIHelper_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IShellUIHelper_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IShellUIHelper_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IShellUIHelper_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IShellUIHelper methods ***/
#define IShellUIHelper_ResetFirstBootMode(p) (p)->lpVtbl->ResetFirstBootMode(p)
#define IShellUIHelper_ResetSafeMode(p) (p)->lpVtbl->ResetSafeMode(p)
#define IShellUIHelper_RefreshOfflineDesktop(p) (p)->lpVtbl->RefreshOfflineDesktop(p)
#define IShellUIHelper_AddFavorite(p,a,b) (p)->lpVtbl->AddFavorite(p,a,b)
#define IShellUIHelper_AddChannel(p,a) (p)->lpVtbl->AddChannel(p,a)
#define IShellUIHelper_AddDesktopComponent(p,a,b,c,d,e,f) (p)->lpVtbl->AddDesktopComponent(p,a,b,c,d,e,f)
#define IShellUIHelper_IsSubscribed(p,a,b) (p)->lpVtbl->IsSubscribed(p,a,b)
#define IShellUIHelper_NavigateAndFind(p,a,b,c) (p)->lpVtbl->NavigateAndFind(p,a,b,c)
#define IShellUIHelper_ImportExportFavorites(p,a,b) (p)->lpVtbl->ImportExportFavorites(p,a,b)
#define IShellUIHelper_AutoCompleteSaveForm(p,a) (p)->lpVtbl->AutoCompleteSaveForm(p,a)
#define IShellUIHelper_AutoScan(p,a,b,c) (p)->lpVtbl->AutoScan(p,a,b,c)
#define IShellUIHelper_AutoCompleteAttach(p,a) (p)->lpVtbl->AutoCompleteAttach(p,a)
#define IShellUIHelper_ShowBrowserUI(p,a,b,c) (p)->lpVtbl->ShowBrowserUI(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IShellUIHelper_ResetFirstBootMode_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_ResetFirstBootMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_ResetSafeMode_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_ResetSafeMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_RefreshOfflineDesktop_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_RefreshOfflineDesktop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AddFavorite_Proxy(
    IShellUIHelper* This,
    BSTR URL,
    VARIANT* Title);
void __RPC_STUB IShellUIHelper_AddFavorite_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AddChannel_Proxy(
    IShellUIHelper* This,
    BSTR URL);
void __RPC_STUB IShellUIHelper_AddChannel_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AddDesktopComponent_Proxy(
    IShellUIHelper* This,
    BSTR URL,
    BSTR Type,
    VARIANT* Left,
    VARIANT* Top,
    VARIANT* Width,
    VARIANT* Height);
void __RPC_STUB IShellUIHelper_AddDesktopComponent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_IsSubscribed_Proxy(
    IShellUIHelper* This,
    BSTR URL,
    VARIANT_BOOL* pBool);
void __RPC_STUB IShellUIHelper_IsSubscribed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_NavigateAndFind_Proxy(
    IShellUIHelper* This,
    BSTR URL,
    BSTR strQuery,
    VARIANT* varTargetFrame);
void __RPC_STUB IShellUIHelper_NavigateAndFind_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_ImportExportFavorites_Proxy(
    IShellUIHelper* This,
    VARIANT_BOOL fImport,
    BSTR strImpExpPath);
void __RPC_STUB IShellUIHelper_ImportExportFavorites_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AutoCompleteSaveForm_Proxy(
    IShellUIHelper* This,
    VARIANT* Form);
void __RPC_STUB IShellUIHelper_AutoCompleteSaveForm_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AutoScan_Proxy(
    IShellUIHelper* This,
    BSTR strSearch,
    BSTR strFailureUrl,
    VARIANT* pvarTargetFrame);
void __RPC_STUB IShellUIHelper_AutoScan_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_AutoCompleteAttach_Proxy(
    IShellUIHelper* This,
    VARIANT* Reserved);
void __RPC_STUB IShellUIHelper_AutoCompleteAttach_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellUIHelper_ShowBrowserUI_Proxy(
    IShellUIHelper* This,
    BSTR bstrName,
    VARIANT* pvarIn,
    VARIANT* pvarOut);
void __RPC_STUB IShellUIHelper_ShowBrowserUI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellUIHelper_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ShellUIHelper coclass
 */

DEFINE_GUID(CLSID_ShellUIHelper, 0x64ab4bb7, 0x111e, 0x11d1, 0x8f,0x79, 0x00,0xc0,0x4f,0xc2,0xfb,0xe1);

#ifndef __ShellUIHelper_FWD_DEFINED__
#define __ShellUIHelper_FWD_DEFINED__
typedef struct ShellUIHelper ShellUIHelper;
#endif /* defined __ShellUIHelper_FWD_DEFINED__ */

#ifndef __DShellNameSpaceEvents_FWD_DEFINED__
#define __DShellNameSpaceEvents_FWD_DEFINED__
typedef interface DShellNameSpaceEvents DShellNameSpaceEvents;
#endif

/*****************************************************************************
 * DShellNameSpaceEvents dispinterface
 */
#ifndef __DShellNameSpaceEvents_DISPINTERFACE_DEFINED__
#define __DShellNameSpaceEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_DShellNameSpaceEvents, 0x55136806, 0xb2de, 0x11d1, 0xb9,0xf2, 0x00,0xa0,0xc9,0x8b,0xc5,0x47);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DShellNameSpaceEvents : public IDispatch
{
};
#else
typedef struct DShellNameSpaceEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        DShellNameSpaceEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        DShellNameSpaceEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        DShellNameSpaceEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        DShellNameSpaceEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        DShellNameSpaceEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        DShellNameSpaceEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        DShellNameSpaceEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} DShellNameSpaceEventsVtbl;
interface DShellNameSpaceEvents {
    const DShellNameSpaceEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DShellNameSpaceEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define DShellNameSpaceEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define DShellNameSpaceEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define DShellNameSpaceEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define DShellNameSpaceEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define DShellNameSpaceEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define DShellNameSpaceEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __DShellNameSpaceEvents_DISPINTERFACE_DEFINED__ */

#ifndef __IShellFavoritesNameSpace_FWD_DEFINED__
#define __IShellFavoritesNameSpace_FWD_DEFINED__
typedef interface IShellFavoritesNameSpace IShellFavoritesNameSpace;
#endif

/*****************************************************************************
 * IShellFavoritesNameSpace interface
 */
#ifndef __IShellFavoritesNameSpace_INTERFACE_DEFINED__
#define __IShellFavoritesNameSpace_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellFavoritesNameSpace, 0x55136804, 0xb2de, 0x11d1, 0xb9,0xf2, 0x00,0xa0,0xc9,0x8b,0xc5,0x47);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IShellFavoritesNameSpace : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE MoveSelectionUp(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveSelectionDown(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResetSort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE NewFolder(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Synchronize(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Import(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE Export(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE InvokeContextMenuCommand(
        BSTR strCommand) = 0;

    virtual HRESULT STDMETHODCALLTYPE MoveSelectionTo(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SubscriptionsEnabled(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE CreateSubscriptionForSelection(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE DeleteSubscriptionForSelection(
        VARIANT_BOOL* pBool) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetRoot(
        BSTR bstrFullPath) = 0;

};
#else
typedef struct IShellFavoritesNameSpaceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IShellFavoritesNameSpace* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IShellFavoritesNameSpace* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IShellFavoritesNameSpace* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IShellFavoritesNameSpace* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IShellFavoritesNameSpace* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IShellFavoritesNameSpace* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IShellFavoritesNameSpace* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IShellFavoritesNameSpace methods ***/
    HRESULT (STDMETHODCALLTYPE *MoveSelectionUp)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *MoveSelectionDown)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *ResetSort)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *NewFolder)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Synchronize)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Import)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Export)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *InvokeContextMenuCommand)(
        IShellFavoritesNameSpace* This,
        BSTR strCommand);

    HRESULT (STDMETHODCALLTYPE *MoveSelectionTo)(
        IShellFavoritesNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *get_SubscriptionsEnabled)(
        IShellFavoritesNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *CreateSubscriptionForSelection)(
        IShellFavoritesNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *DeleteSubscriptionForSelection)(
        IShellFavoritesNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *SetRoot)(
        IShellFavoritesNameSpace* This,
        BSTR bstrFullPath);

    END_INTERFACE
} IShellFavoritesNameSpaceVtbl;
interface IShellFavoritesNameSpace {
    const IShellFavoritesNameSpaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellFavoritesNameSpace_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IShellFavoritesNameSpace_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IShellFavoritesNameSpace_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IShellFavoritesNameSpace_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IShellFavoritesNameSpace_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IShellFavoritesNameSpace_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IShellFavoritesNameSpace_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IShellFavoritesNameSpace methods ***/
#define IShellFavoritesNameSpace_MoveSelectionUp(p) (p)->lpVtbl->MoveSelectionUp(p)
#define IShellFavoritesNameSpace_MoveSelectionDown(p) (p)->lpVtbl->MoveSelectionDown(p)
#define IShellFavoritesNameSpace_ResetSort(p) (p)->lpVtbl->ResetSort(p)
#define IShellFavoritesNameSpace_NewFolder(p) (p)->lpVtbl->NewFolder(p)
#define IShellFavoritesNameSpace_Synchronize(p) (p)->lpVtbl->Synchronize(p)
#define IShellFavoritesNameSpace_Import(p) (p)->lpVtbl->Import(p)
#define IShellFavoritesNameSpace_Export(p) (p)->lpVtbl->Export(p)
#define IShellFavoritesNameSpace_InvokeContextMenuCommand(p,a) (p)->lpVtbl->InvokeContextMenuCommand(p,a)
#define IShellFavoritesNameSpace_MoveSelectionTo(p) (p)->lpVtbl->MoveSelectionTo(p)
#define IShellFavoritesNameSpace_get_SubscriptionsEnabled(p,a) (p)->lpVtbl->get_SubscriptionsEnabled(p,a)
#define IShellFavoritesNameSpace_CreateSubscriptionForSelection(p,a) (p)->lpVtbl->CreateSubscriptionForSelection(p,a)
#define IShellFavoritesNameSpace_DeleteSubscriptionForSelection(p,a) (p)->lpVtbl->DeleteSubscriptionForSelection(p,a)
#define IShellFavoritesNameSpace_SetRoot(p,a) (p)->lpVtbl->SetRoot(p,a)
#endif

#endif

HRESULT CALLBACK IShellFavoritesNameSpace_MoveSelectionUp_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionUp_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_MoveSelectionDown_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionDown_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_ResetSort_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_ResetSort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_NewFolder_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_NewFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_Synchronize_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Synchronize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_Import_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Import_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_Export_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Export_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_InvokeContextMenuCommand_Proxy(
    IShellFavoritesNameSpace* This,
    BSTR strCommand);
void __RPC_STUB IShellFavoritesNameSpace_InvokeContextMenuCommand_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_MoveSelectionTo_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionTo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_get_SubscriptionsEnabled_Proxy(
    IShellFavoritesNameSpace* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IShellFavoritesNameSpace_get_SubscriptionsEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_CreateSubscriptionForSelection_Proxy(
    IShellFavoritesNameSpace* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IShellFavoritesNameSpace_CreateSubscriptionForSelection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_DeleteSubscriptionForSelection_Proxy(
    IShellFavoritesNameSpace* This,
    VARIANT_BOOL* pBool);
void __RPC_STUB IShellFavoritesNameSpace_DeleteSubscriptionForSelection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellFavoritesNameSpace_SetRoot_Proxy(
    IShellFavoritesNameSpace* This,
    BSTR bstrFullPath);
void __RPC_STUB IShellFavoritesNameSpace_SetRoot_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellFavoritesNameSpace_INTERFACE_DEFINED__ */

#ifndef __IShellNameSpace_FWD_DEFINED__
#define __IShellNameSpace_FWD_DEFINED__
typedef interface IShellNameSpace IShellNameSpace;
#endif

/*****************************************************************************
 * IShellNameSpace interface
 */
#ifndef __IShellNameSpace_INTERFACE_DEFINED__
#define __IShellNameSpace_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellNameSpace, 0xe572d3c9, 0x37be, 0x4ae2, 0x82,0x5d, 0xd5,0x21,0x76,0x3e,0x31,0x08);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IShellNameSpace : public IShellFavoritesNameSpace
{
    virtual HRESULT STDMETHODCALLTYPE get_EnumOptions(
        long* pgrfEnumFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_EnumOptions(
        long pgrfEnumFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SelectedItem(
        IDispatch** pItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_SelectedItem(
        IDispatch* pItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Root(
        VARIANT* pvar) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Root(
        VARIANT pvar) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Depth(
        int* piDepth) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Depth(
        int piDepth) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Mode(
        unsigned int* puMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Mode(
        unsigned int puMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Flags(
        unsigned long* pdwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Flags(
        unsigned long pdwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_TVFlags(
        unsigned long dwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TVFlags(
        unsigned long* dwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Columns(
        BSTR* bstrColumns) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Columns(
        BSTR bstrColumns) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_CountViewTypes(
        int* piTypes) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetViewType(
        int iType) = 0;

    virtual HRESULT STDMETHODCALLTYPE SelectedItems(
        IDispatch** ppid) = 0;

    virtual HRESULT STDMETHODCALLTYPE Expand(
        VARIANT var,
        int iDepth) = 0;

    virtual HRESULT STDMETHODCALLTYPE UnselectAll(
        ) = 0;

};
#else
typedef struct IShellNameSpaceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IShellNameSpace* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IShellNameSpace* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IShellNameSpace* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IShellNameSpace* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IShellNameSpace* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IShellNameSpace* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IShellNameSpace* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IShellFavoritesNameSpace methods ***/
    HRESULT (STDMETHODCALLTYPE *MoveSelectionUp)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *MoveSelectionDown)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *ResetSort)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *NewFolder)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Synchronize)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Import)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *Export)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *InvokeContextMenuCommand)(
        IShellNameSpace* This,
        BSTR strCommand);

    HRESULT (STDMETHODCALLTYPE *MoveSelectionTo)(
        IShellNameSpace* This);

    HRESULT (STDMETHODCALLTYPE *get_SubscriptionsEnabled)(
        IShellNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *CreateSubscriptionForSelection)(
        IShellNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *DeleteSubscriptionForSelection)(
        IShellNameSpace* This,
        VARIANT_BOOL* pBool);

    HRESULT (STDMETHODCALLTYPE *SetRoot)(
        IShellNameSpace* This,
        BSTR bstrFullPath);

    /*** IShellNameSpace methods ***/
    HRESULT (STDMETHODCALLTYPE *get_EnumOptions)(
        IShellNameSpace* This,
        long* pgrfEnumFlags);

    HRESULT (STDMETHODCALLTYPE *put_EnumOptions)(
        IShellNameSpace* This,
        long pgrfEnumFlags);

    HRESULT (STDMETHODCALLTYPE *get_SelectedItem)(
        IShellNameSpace* This,
        IDispatch** pItem);

    HRESULT (STDMETHODCALLTYPE *put_SelectedItem)(
        IShellNameSpace* This,
        IDispatch* pItem);

    HRESULT (STDMETHODCALLTYPE *get_Root)(
        IShellNameSpace* This,
        VARIANT* pvar);

    HRESULT (STDMETHODCALLTYPE *put_Root)(
        IShellNameSpace* This,
        VARIANT pvar);

    HRESULT (STDMETHODCALLTYPE *get_Depth)(
        IShellNameSpace* This,
        int* piDepth);

    HRESULT (STDMETHODCALLTYPE *put_Depth)(
        IShellNameSpace* This,
        int piDepth);

    HRESULT (STDMETHODCALLTYPE *get_Mode)(
        IShellNameSpace* This,
        unsigned int* puMode);

    HRESULT (STDMETHODCALLTYPE *put_Mode)(
        IShellNameSpace* This,
        unsigned int puMode);

    HRESULT (STDMETHODCALLTYPE *get_Flags)(
        IShellNameSpace* This,
        unsigned long* pdwFlags);

    HRESULT (STDMETHODCALLTYPE *put_Flags)(
        IShellNameSpace* This,
        unsigned long pdwFlags);

    HRESULT (STDMETHODCALLTYPE *put_TVFlags)(
        IShellNameSpace* This,
        unsigned long dwFlags);

    HRESULT (STDMETHODCALLTYPE *get_TVFlags)(
        IShellNameSpace* This,
        unsigned long* dwFlags);

    HRESULT (STDMETHODCALLTYPE *get_Columns)(
        IShellNameSpace* This,
        BSTR* bstrColumns);

    HRESULT (STDMETHODCALLTYPE *put_Columns)(
        IShellNameSpace* This,
        BSTR bstrColumns);

    HRESULT (STDMETHODCALLTYPE *get_CountViewTypes)(
        IShellNameSpace* This,
        int* piTypes);

    HRESULT (STDMETHODCALLTYPE *SetViewType)(
        IShellNameSpace* This,
        int iType);

    HRESULT (STDMETHODCALLTYPE *SelectedItems)(
        IShellNameSpace* This,
        IDispatch** ppid);

    HRESULT (STDMETHODCALLTYPE *Expand)(
        IShellNameSpace* This,
        VARIANT var,
        int iDepth);

    HRESULT (STDMETHODCALLTYPE *UnselectAll)(
        IShellNameSpace* This);

    END_INTERFACE
} IShellNameSpaceVtbl;
interface IShellNameSpace {
    const IShellNameSpaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellNameSpace_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IShellNameSpace_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IShellNameSpace_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IShellNameSpace_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IShellNameSpace_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IShellNameSpace_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IShellNameSpace_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IShellFavoritesNameSpace methods ***/
#define IShellNameSpace_MoveSelectionUp(p) (p)->lpVtbl->MoveSelectionUp(p)
#define IShellNameSpace_MoveSelectionDown(p) (p)->lpVtbl->MoveSelectionDown(p)
#define IShellNameSpace_ResetSort(p) (p)->lpVtbl->ResetSort(p)
#define IShellNameSpace_NewFolder(p) (p)->lpVtbl->NewFolder(p)
#define IShellNameSpace_Synchronize(p) (p)->lpVtbl->Synchronize(p)
#define IShellNameSpace_Import(p) (p)->lpVtbl->Import(p)
#define IShellNameSpace_Export(p) (p)->lpVtbl->Export(p)
#define IShellNameSpace_InvokeContextMenuCommand(p,a) (p)->lpVtbl->InvokeContextMenuCommand(p,a)
#define IShellNameSpace_MoveSelectionTo(p) (p)->lpVtbl->MoveSelectionTo(p)
#define IShellNameSpace_get_SubscriptionsEnabled(p,a) (p)->lpVtbl->get_SubscriptionsEnabled(p,a)
#define IShellNameSpace_CreateSubscriptionForSelection(p,a) (p)->lpVtbl->CreateSubscriptionForSelection(p,a)
#define IShellNameSpace_DeleteSubscriptionForSelection(p,a) (p)->lpVtbl->DeleteSubscriptionForSelection(p,a)
#define IShellNameSpace_SetRoot(p,a) (p)->lpVtbl->SetRoot(p,a)
/*** IShellNameSpace methods ***/
#define IShellNameSpace_get_EnumOptions(p,a) (p)->lpVtbl->get_EnumOptions(p,a)
#define IShellNameSpace_put_EnumOptions(p,a) (p)->lpVtbl->put_EnumOptions(p,a)
#define IShellNameSpace_get_SelectedItem(p,a) (p)->lpVtbl->get_SelectedItem(p,a)
#define IShellNameSpace_put_SelectedItem(p,a) (p)->lpVtbl->put_SelectedItem(p,a)
#define IShellNameSpace_get_Root(p,a) (p)->lpVtbl->get_Root(p,a)
#define IShellNameSpace_put_Root(p,a) (p)->lpVtbl->put_Root(p,a)
#define IShellNameSpace_get_Depth(p,a) (p)->lpVtbl->get_Depth(p,a)
#define IShellNameSpace_put_Depth(p,a) (p)->lpVtbl->put_Depth(p,a)
#define IShellNameSpace_get_Mode(p,a) (p)->lpVtbl->get_Mode(p,a)
#define IShellNameSpace_put_Mode(p,a) (p)->lpVtbl->put_Mode(p,a)
#define IShellNameSpace_get_Flags(p,a) (p)->lpVtbl->get_Flags(p,a)
#define IShellNameSpace_put_Flags(p,a) (p)->lpVtbl->put_Flags(p,a)
#define IShellNameSpace_put_TVFlags(p,a) (p)->lpVtbl->put_TVFlags(p,a)
#define IShellNameSpace_get_TVFlags(p,a) (p)->lpVtbl->get_TVFlags(p,a)
#define IShellNameSpace_get_Columns(p,a) (p)->lpVtbl->get_Columns(p,a)
#define IShellNameSpace_put_Columns(p,a) (p)->lpVtbl->put_Columns(p,a)
#define IShellNameSpace_get_CountViewTypes(p,a) (p)->lpVtbl->get_CountViewTypes(p,a)
#define IShellNameSpace_SetViewType(p,a) (p)->lpVtbl->SetViewType(p,a)
#define IShellNameSpace_SelectedItems(p,a) (p)->lpVtbl->SelectedItems(p,a)
#define IShellNameSpace_Expand(p,a,b) (p)->lpVtbl->Expand(p,a,b)
#define IShellNameSpace_UnselectAll(p) (p)->lpVtbl->UnselectAll(p)
#endif

#endif

HRESULT CALLBACK IShellNameSpace_get_EnumOptions_Proxy(
    IShellNameSpace* This,
    long* pgrfEnumFlags);
void __RPC_STUB IShellNameSpace_get_EnumOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_EnumOptions_Proxy(
    IShellNameSpace* This,
    long pgrfEnumFlags);
void __RPC_STUB IShellNameSpace_put_EnumOptions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_SelectedItem_Proxy(
    IShellNameSpace* This,
    IDispatch** pItem);
void __RPC_STUB IShellNameSpace_get_SelectedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_SelectedItem_Proxy(
    IShellNameSpace* This,
    IDispatch* pItem);
void __RPC_STUB IShellNameSpace_put_SelectedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_Root_Proxy(
    IShellNameSpace* This,
    VARIANT* pvar);
void __RPC_STUB IShellNameSpace_get_Root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_Root_Proxy(
    IShellNameSpace* This,
    VARIANT pvar);
void __RPC_STUB IShellNameSpace_put_Root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_Depth_Proxy(
    IShellNameSpace* This,
    int* piDepth);
void __RPC_STUB IShellNameSpace_get_Depth_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_Depth_Proxy(
    IShellNameSpace* This,
    int piDepth);
void __RPC_STUB IShellNameSpace_put_Depth_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_Mode_Proxy(
    IShellNameSpace* This,
    unsigned int* puMode);
void __RPC_STUB IShellNameSpace_get_Mode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_Mode_Proxy(
    IShellNameSpace* This,
    unsigned int puMode);
void __RPC_STUB IShellNameSpace_put_Mode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_Flags_Proxy(
    IShellNameSpace* This,
    unsigned long* pdwFlags);
void __RPC_STUB IShellNameSpace_get_Flags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_Flags_Proxy(
    IShellNameSpace* This,
    unsigned long pdwFlags);
void __RPC_STUB IShellNameSpace_put_Flags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_TVFlags_Proxy(
    IShellNameSpace* This,
    unsigned long dwFlags);
void __RPC_STUB IShellNameSpace_put_TVFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_TVFlags_Proxy(
    IShellNameSpace* This,
    unsigned long* dwFlags);
void __RPC_STUB IShellNameSpace_get_TVFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_Columns_Proxy(
    IShellNameSpace* This,
    BSTR* bstrColumns);
void __RPC_STUB IShellNameSpace_get_Columns_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_put_Columns_Proxy(
    IShellNameSpace* This,
    BSTR bstrColumns);
void __RPC_STUB IShellNameSpace_put_Columns_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_get_CountViewTypes_Proxy(
    IShellNameSpace* This,
    int* piTypes);
void __RPC_STUB IShellNameSpace_get_CountViewTypes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_SetViewType_Proxy(
    IShellNameSpace* This,
    int iType);
void __RPC_STUB IShellNameSpace_SetViewType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_SelectedItems_Proxy(
    IShellNameSpace* This,
    IDispatch** ppid);
void __RPC_STUB IShellNameSpace_SelectedItems_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_Expand_Proxy(
    IShellNameSpace* This,
    VARIANT var,
    int iDepth);
void __RPC_STUB IShellNameSpace_Expand_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IShellNameSpace_UnselectAll_Proxy(
    IShellNameSpace* This);
void __RPC_STUB IShellNameSpace_UnselectAll_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellNameSpace_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ShellNameSpace coclass
 */

DEFINE_GUID(CLSID_ShellNameSpace, 0x55136805, 0xb2de, 0x11d1, 0xb9,0xf2, 0x00,0xa0,0xc9,0x8b,0xc5,0x47);

#ifndef __ShellNameSpace_FWD_DEFINED__
#define __ShellNameSpace_FWD_DEFINED__
typedef struct ShellNameSpace ShellNameSpace;
#endif /* defined __ShellNameSpace_FWD_DEFINED__ */

/*****************************************************************************
 * ShellShellNameSpace coclass
 */

DEFINE_GUID(CLSID_ShellShellNameSpace, 0x2f2f1f96, 0x2bc1, 0x4b1c, 0xbe,0x28, 0xea,0x37,0x74,0xf4,0x67,0x6a);

#ifndef __ShellShellNameSpace_FWD_DEFINED__
#define __ShellShellNameSpace_FWD_DEFINED__
typedef struct ShellShellNameSpace ShellShellNameSpace;
#endif /* defined __ShellShellNameSpace_FWD_DEFINED__ */

#ifndef __IScriptErrorList_FWD_DEFINED__
#define __IScriptErrorList_FWD_DEFINED__
typedef interface IScriptErrorList IScriptErrorList;
#endif

/*****************************************************************************
 * IScriptErrorList interface
 */
#ifndef __IScriptErrorList_INTERFACE_DEFINED__
#define __IScriptErrorList_INTERFACE_DEFINED__

DEFINE_GUID(IID_IScriptErrorList, 0xf3470f24, 0x15fd, 0x11d2, 0xbb,0x2e, 0x00,0x80,0x5f,0xf7,0xef,0xca);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IScriptErrorList : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE advanceError(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE retreatError(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE canAdvanceError(
        long* pfCanAdvance) = 0;

    virtual HRESULT STDMETHODCALLTYPE canRetreatError(
        long* pfCanRetreat) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorLine(
        long* plLine) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorChar(
        long* plChar) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorCode(
        long* plCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorMsg(
        BSTR* pstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorUrl(
        BSTR* pstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAlwaysShowLockState(
        long* pfAlwaysShowLocked) = 0;

    virtual HRESULT STDMETHODCALLTYPE getDetailsPaneOpen(
        long* pfDetailsPaneOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE setDetailsPaneOpen(
        long fDetailsPaneOpen) = 0;

    virtual HRESULT STDMETHODCALLTYPE getPerErrorDisplay(
        long* pfPerErrorDisplay) = 0;

    virtual HRESULT STDMETHODCALLTYPE setPerErrorDisplay(
        long fPerErrorDisplay) = 0;

};
#else
typedef struct IScriptErrorListVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IScriptErrorList* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IScriptErrorList* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IScriptErrorList* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IScriptErrorList* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IScriptErrorList* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IScriptErrorList* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IScriptErrorList* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IScriptErrorList methods ***/
    HRESULT (STDMETHODCALLTYPE *advanceError)(
        IScriptErrorList* This);

    HRESULT (STDMETHODCALLTYPE *retreatError)(
        IScriptErrorList* This);

    HRESULT (STDMETHODCALLTYPE *canAdvanceError)(
        IScriptErrorList* This,
        long* pfCanAdvance);

    HRESULT (STDMETHODCALLTYPE *canRetreatError)(
        IScriptErrorList* This,
        long* pfCanRetreat);

    HRESULT (STDMETHODCALLTYPE *getErrorLine)(
        IScriptErrorList* This,
        long* plLine);

    HRESULT (STDMETHODCALLTYPE *getErrorChar)(
        IScriptErrorList* This,
        long* plChar);

    HRESULT (STDMETHODCALLTYPE *getErrorCode)(
        IScriptErrorList* This,
        long* plCode);

    HRESULT (STDMETHODCALLTYPE *getErrorMsg)(
        IScriptErrorList* This,
        BSTR* pstr);

    HRESULT (STDMETHODCALLTYPE *getErrorUrl)(
        IScriptErrorList* This,
        BSTR* pstr);

    HRESULT (STDMETHODCALLTYPE *getAlwaysShowLockState)(
        IScriptErrorList* This,
        long* pfAlwaysShowLocked);

    HRESULT (STDMETHODCALLTYPE *getDetailsPaneOpen)(
        IScriptErrorList* This,
        long* pfDetailsPaneOpen);

    HRESULT (STDMETHODCALLTYPE *setDetailsPaneOpen)(
        IScriptErrorList* This,
        long fDetailsPaneOpen);

    HRESULT (STDMETHODCALLTYPE *getPerErrorDisplay)(
        IScriptErrorList* This,
        long* pfPerErrorDisplay);

    HRESULT (STDMETHODCALLTYPE *setPerErrorDisplay)(
        IScriptErrorList* This,
        long fPerErrorDisplay);

    END_INTERFACE
} IScriptErrorListVtbl;
interface IScriptErrorList {
    const IScriptErrorListVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IScriptErrorList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IScriptErrorList_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IScriptErrorList_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IScriptErrorList_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IScriptErrorList_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IScriptErrorList_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IScriptErrorList_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IScriptErrorList methods ***/
#define IScriptErrorList_advanceError(p) (p)->lpVtbl->advanceError(p)
#define IScriptErrorList_retreatError(p) (p)->lpVtbl->retreatError(p)
#define IScriptErrorList_canAdvanceError(p,a) (p)->lpVtbl->canAdvanceError(p,a)
#define IScriptErrorList_canRetreatError(p,a) (p)->lpVtbl->canRetreatError(p,a)
#define IScriptErrorList_getErrorLine(p,a) (p)->lpVtbl->getErrorLine(p,a)
#define IScriptErrorList_getErrorChar(p,a) (p)->lpVtbl->getErrorChar(p,a)
#define IScriptErrorList_getErrorCode(p,a) (p)->lpVtbl->getErrorCode(p,a)
#define IScriptErrorList_getErrorMsg(p,a) (p)->lpVtbl->getErrorMsg(p,a)
#define IScriptErrorList_getErrorUrl(p,a) (p)->lpVtbl->getErrorUrl(p,a)
#define IScriptErrorList_getAlwaysShowLockState(p,a) (p)->lpVtbl->getAlwaysShowLockState(p,a)
#define IScriptErrorList_getDetailsPaneOpen(p,a) (p)->lpVtbl->getDetailsPaneOpen(p,a)
#define IScriptErrorList_setDetailsPaneOpen(p,a) (p)->lpVtbl->setDetailsPaneOpen(p,a)
#define IScriptErrorList_getPerErrorDisplay(p,a) (p)->lpVtbl->getPerErrorDisplay(p,a)
#define IScriptErrorList_setPerErrorDisplay(p,a) (p)->lpVtbl->setPerErrorDisplay(p,a)
#endif

#endif

HRESULT CALLBACK IScriptErrorList_advanceError_Proxy(
    IScriptErrorList* This);
void __RPC_STUB IScriptErrorList_advanceError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_retreatError_Proxy(
    IScriptErrorList* This);
void __RPC_STUB IScriptErrorList_retreatError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_canAdvanceError_Proxy(
    IScriptErrorList* This,
    long* pfCanAdvance);
void __RPC_STUB IScriptErrorList_canAdvanceError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_canRetreatError_Proxy(
    IScriptErrorList* This,
    long* pfCanRetreat);
void __RPC_STUB IScriptErrorList_canRetreatError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getErrorLine_Proxy(
    IScriptErrorList* This,
    long* plLine);
void __RPC_STUB IScriptErrorList_getErrorLine_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getErrorChar_Proxy(
    IScriptErrorList* This,
    long* plChar);
void __RPC_STUB IScriptErrorList_getErrorChar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getErrorCode_Proxy(
    IScriptErrorList* This,
    long* plCode);
void __RPC_STUB IScriptErrorList_getErrorCode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getErrorMsg_Proxy(
    IScriptErrorList* This,
    BSTR* pstr);
void __RPC_STUB IScriptErrorList_getErrorMsg_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getErrorUrl_Proxy(
    IScriptErrorList* This,
    BSTR* pstr);
void __RPC_STUB IScriptErrorList_getErrorUrl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getAlwaysShowLockState_Proxy(
    IScriptErrorList* This,
    long* pfAlwaysShowLocked);
void __RPC_STUB IScriptErrorList_getAlwaysShowLockState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getDetailsPaneOpen_Proxy(
    IScriptErrorList* This,
    long* pfDetailsPaneOpen);
void __RPC_STUB IScriptErrorList_getDetailsPaneOpen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_setDetailsPaneOpen_Proxy(
    IScriptErrorList* This,
    long fDetailsPaneOpen);
void __RPC_STUB IScriptErrorList_setDetailsPaneOpen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_getPerErrorDisplay_Proxy(
    IScriptErrorList* This,
    long* pfPerErrorDisplay);
void __RPC_STUB IScriptErrorList_getPerErrorDisplay_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IScriptErrorList_setPerErrorDisplay_Proxy(
    IScriptErrorList* This,
    long fPerErrorDisplay);
void __RPC_STUB IScriptErrorList_setPerErrorDisplay_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IScriptErrorList_INTERFACE_DEFINED__ */

/*****************************************************************************
 * CScriptErrorList coclass
 */

DEFINE_GUID(CLSID_CScriptErrorList, 0xefd01300, 0x160f, 0x11d2, 0xbb,0x2e, 0x00,0x80,0x5f,0xf7,0xef,0xca);

#ifndef __CScriptErrorList_FWD_DEFINED__
#define __CScriptErrorList_FWD_DEFINED__
typedef struct CScriptErrorList CScriptErrorList;
#endif /* defined __CScriptErrorList_FWD_DEFINED__ */

#ifndef __ISearch_FWD_DEFINED__
#define __ISearch_FWD_DEFINED__
typedef interface ISearch ISearch;
#endif

/*****************************************************************************
 * ISearch interface
 */
#ifndef __ISearch_INTERFACE_DEFINED__
#define __ISearch_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISearch, 0xba9239a4, 0x3dd5, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISearch : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Title(
        BSTR* pbstrTitle) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Id(
        BSTR* pbstrId) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_URL(
        BSTR* pbstrUrl) = 0;

};
#else
typedef struct ISearchVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISearch* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISearch* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISearch* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISearch* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISearch* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISearch* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISearch* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** ISearch methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Title)(
        ISearch* This,
        BSTR* pbstrTitle);

    HRESULT (STDMETHODCALLTYPE *get_Id)(
        ISearch* This,
        BSTR* pbstrId);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        ISearch* This,
        BSTR* pbstrUrl);

    END_INTERFACE
} ISearchVtbl;
interface ISearch {
    const ISearchVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISearch_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISearch_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISearch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISearch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISearch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISearch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISearch methods ***/
#define ISearch_get_Title(p,a) (p)->lpVtbl->get_Title(p,a)
#define ISearch_get_Id(p,a) (p)->lpVtbl->get_Id(p,a)
#define ISearch_get_URL(p,a) (p)->lpVtbl->get_URL(p,a)
#endif

#endif

HRESULT CALLBACK ISearch_get_Title_Proxy(
    ISearch* This,
    BSTR* pbstrTitle);
void __RPC_STUB ISearch_get_Title_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearch_get_Id_Proxy(
    ISearch* This,
    BSTR* pbstrId);
void __RPC_STUB ISearch_get_Id_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearch_get_URL_Proxy(
    ISearch* This,
    BSTR* pbstrUrl);
void __RPC_STUB ISearch_get_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISearch_INTERFACE_DEFINED__ */

#ifndef __ISearches_FWD_DEFINED__
#define __ISearches_FWD_DEFINED__
typedef interface ISearches ISearches;
#endif

/*****************************************************************************
 * ISearches interface
 */
#ifndef __ISearches_INTERFACE_DEFINED__
#define __ISearches_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISearches, 0x47c922a2, 0x3dd5, 0x11d2, 0xbf,0x8b, 0x00,0xc0,0x4f,0xb9,0x36,0x61);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISearches : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_Count(
        long* plCount) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Default(
        BSTR* pbstrDefault) = 0;

    virtual HRESULT STDMETHODCALLTYPE Item(
        VARIANT index,
        ISearch** ppid) = 0;

    virtual HRESULT STDMETHODCALLTYPE _NewEnum(
        IUnknown** ppunk) = 0;

};
#else
typedef struct ISearchesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISearches* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISearches* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISearches* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISearches* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISearches* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISearches* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISearches* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** ISearches methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Count)(
        ISearches* This,
        long* plCount);

    HRESULT (STDMETHODCALLTYPE *get_Default)(
        ISearches* This,
        BSTR* pbstrDefault);

    HRESULT (STDMETHODCALLTYPE *Item)(
        ISearches* This,
        VARIANT index,
        ISearch** ppid);

    HRESULT (STDMETHODCALLTYPE *_NewEnum)(
        ISearches* This,
        IUnknown** ppunk);

    END_INTERFACE
} ISearchesVtbl;
interface ISearches {
    const ISearchesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearches_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISearches_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISearches_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISearches_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISearches_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISearches_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISearches_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISearches methods ***/
#define ISearches_get_Count(p,a) (p)->lpVtbl->get_Count(p,a)
#define ISearches_get_Default(p,a) (p)->lpVtbl->get_Default(p,a)
#define ISearches_Item(p,a,b) (p)->lpVtbl->Item(p,a,b)
#define ISearches__NewEnum(p,a) (p)->lpVtbl->_NewEnum(p,a)
#endif

#endif

HRESULT CALLBACK ISearches_get_Count_Proxy(
    ISearches* This,
    long* plCount);
void __RPC_STUB ISearches_get_Count_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearches_get_Default_Proxy(
    ISearches* This,
    BSTR* pbstrDefault);
void __RPC_STUB ISearches_get_Default_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearches_Item_Proxy(
    ISearches* This,
    VARIANT index,
    ISearch** ppid);
void __RPC_STUB ISearches_Item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearches__NewEnum_Proxy(
    ISearches* This,
    IUnknown** ppunk);
void __RPC_STUB ISearches__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISearches_INTERFACE_DEFINED__ */

#ifndef __ISearchAssistantOC_FWD_DEFINED__
#define __ISearchAssistantOC_FWD_DEFINED__
typedef interface ISearchAssistantOC ISearchAssistantOC;
#endif

/*****************************************************************************
 * ISearchAssistantOC interface
 */
#ifndef __ISearchAssistantOC_INTERFACE_DEFINED__
#define __ISearchAssistantOC_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISearchAssistantOC, 0x72423e8f, 0x8011, 0x11d2, 0xbe,0x79, 0x00,0xa0,0xc9,0xa8,0x3d,0xa1);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISearchAssistantOC : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE AddNextMenuItem(
        BSTR bstrText,
        long idItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetDefaultSearchUrl(
        BSTR bstrUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE NavigateToDefaultSearch(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsRestricted(
        BSTR bstrGuid,
        VARIANT_BOOL* pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ShellFeaturesEnabled(
        VARIANT_BOOL* pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_SearchAssistantDefault(
        VARIANT_BOOL* pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Searches(
        ISearches** ppid) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_InWebFolder(
        VARIANT_BOOL* pVal) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutProperty(
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR bstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetProperty(
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR* pbstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_EventHandled(
        VARIANT_BOOL rhs) = 0;

    virtual HRESULT STDMETHODCALLTYPE ResetNextMenu(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindOnWeb(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindFilesOrFolders(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindComputer(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindPrinter(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE FindPeople(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetSearchAssistantURL(
        VARIANT_BOOL bSubstitute,
        VARIANT_BOOL bCustomize,
        BSTR* pbstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE NotifySearchSettingsChanged(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ASProvider(
        BSTR pProvider) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ASProvider(
        BSTR* pProvider) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ASSetting(
        int pSetting) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ASSetting(
        int* pSetting) = 0;

    virtual HRESULT STDMETHODCALLTYPE NETDetectNextNavigate(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE PutFindText(
        BSTR FindText) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_Version(
        int* pVersion) = 0;

    virtual HRESULT STDMETHODCALLTYPE EncodeString(
        BSTR bstrValue,
        BSTR bstrCharSet,
        VARIANT_BOOL bUseUTF8,
        BSTR* pbstrResult) = 0;

};
#else
typedef struct ISearchAssistantOCVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISearchAssistantOC* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISearchAssistantOC* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISearchAssistantOC* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISearchAssistantOC* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISearchAssistantOC* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISearchAssistantOC* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISearchAssistantOC* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** ISearchAssistantOC methods ***/
    HRESULT (STDMETHODCALLTYPE *AddNextMenuItem)(
        ISearchAssistantOC* This,
        BSTR bstrText,
        long idItem);

    HRESULT (STDMETHODCALLTYPE *SetDefaultSearchUrl)(
        ISearchAssistantOC* This,
        BSTR bstrUrl);

    HRESULT (STDMETHODCALLTYPE *NavigateToDefaultSearch)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
        ISearchAssistantOC* This,
        BSTR bstrGuid,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_ShellFeaturesEnabled)(
        ISearchAssistantOC* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_SearchAssistantDefault)(
        ISearchAssistantOC* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_Searches)(
        ISearchAssistantOC* This,
        ISearches** ppid);

    HRESULT (STDMETHODCALLTYPE *get_InWebFolder)(
        ISearchAssistantOC* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *PutProperty)(
        ISearchAssistantOC* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        ISearchAssistantOC* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *put_EventHandled)(
        ISearchAssistantOC* This,
        VARIANT_BOOL rhs);

    HRESULT (STDMETHODCALLTYPE *ResetNextMenu)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *FindOnWeb)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *FindFilesOrFolders)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *FindComputer)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *FindPeople)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *GetSearchAssistantURL)(
        ISearchAssistantOC* This,
        VARIANT_BOOL bSubstitute,
        VARIANT_BOOL bCustomize,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *NotifySearchSettingsChanged)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *put_ASProvider)(
        ISearchAssistantOC* This,
        BSTR pProvider);

    HRESULT (STDMETHODCALLTYPE *get_ASProvider)(
        ISearchAssistantOC* This,
        BSTR* pProvider);

    HRESULT (STDMETHODCALLTYPE *put_ASSetting)(
        ISearchAssistantOC* This,
        int pSetting);

    HRESULT (STDMETHODCALLTYPE *get_ASSetting)(
        ISearchAssistantOC* This,
        int* pSetting);

    HRESULT (STDMETHODCALLTYPE *NETDetectNextNavigate)(
        ISearchAssistantOC* This);

    HRESULT (STDMETHODCALLTYPE *PutFindText)(
        ISearchAssistantOC* This,
        BSTR FindText);

    HRESULT (STDMETHODCALLTYPE *get_Version)(
        ISearchAssistantOC* This,
        int* pVersion);

    HRESULT (STDMETHODCALLTYPE *EncodeString)(
        ISearchAssistantOC* This,
        BSTR bstrValue,
        BSTR bstrCharSet,
        VARIANT_BOOL bUseUTF8,
        BSTR* pbstrResult);

    END_INTERFACE
} ISearchAssistantOCVtbl;
interface ISearchAssistantOC {
    const ISearchAssistantOCVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISearchAssistantOC_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISearchAssistantOC_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISearchAssistantOC_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISearchAssistantOC_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISearchAssistantOC_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISearchAssistantOC_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC_AddNextMenuItem(p,a,b) (p)->lpVtbl->AddNextMenuItem(p,a,b)
#define ISearchAssistantOC_SetDefaultSearchUrl(p,a) (p)->lpVtbl->SetDefaultSearchUrl(p,a)
#define ISearchAssistantOC_NavigateToDefaultSearch(p) (p)->lpVtbl->NavigateToDefaultSearch(p)
#define ISearchAssistantOC_IsRestricted(p,a,b) (p)->lpVtbl->IsRestricted(p,a,b)
#define ISearchAssistantOC_get_ShellFeaturesEnabled(p,a) (p)->lpVtbl->get_ShellFeaturesEnabled(p,a)
#define ISearchAssistantOC_get_SearchAssistantDefault(p,a) (p)->lpVtbl->get_SearchAssistantDefault(p,a)
#define ISearchAssistantOC_get_Searches(p,a) (p)->lpVtbl->get_Searches(p,a)
#define ISearchAssistantOC_get_InWebFolder(p,a) (p)->lpVtbl->get_InWebFolder(p,a)
#define ISearchAssistantOC_PutProperty(p,a,b,c) (p)->lpVtbl->PutProperty(p,a,b,c)
#define ISearchAssistantOC_GetProperty(p,a,b,c) (p)->lpVtbl->GetProperty(p,a,b,c)
#define ISearchAssistantOC_put_EventHandled(p,a) (p)->lpVtbl->put_EventHandled(p,a)
#define ISearchAssistantOC_ResetNextMenu(p) (p)->lpVtbl->ResetNextMenu(p)
#define ISearchAssistantOC_FindOnWeb(p) (p)->lpVtbl->FindOnWeb(p)
#define ISearchAssistantOC_FindFilesOrFolders(p) (p)->lpVtbl->FindFilesOrFolders(p)
#define ISearchAssistantOC_FindComputer(p) (p)->lpVtbl->FindComputer(p)
#define ISearchAssistantOC_FindPrinter(p) (p)->lpVtbl->FindPrinter(p)
#define ISearchAssistantOC_FindPeople(p) (p)->lpVtbl->FindPeople(p)
#define ISearchAssistantOC_GetSearchAssistantURL(p,a,b,c) (p)->lpVtbl->GetSearchAssistantURL(p,a,b,c)
#define ISearchAssistantOC_NotifySearchSettingsChanged(p) (p)->lpVtbl->NotifySearchSettingsChanged(p)
#define ISearchAssistantOC_put_ASProvider(p,a) (p)->lpVtbl->put_ASProvider(p,a)
#define ISearchAssistantOC_get_ASProvider(p,a) (p)->lpVtbl->get_ASProvider(p,a)
#define ISearchAssistantOC_put_ASSetting(p,a) (p)->lpVtbl->put_ASSetting(p,a)
#define ISearchAssistantOC_get_ASSetting(p,a) (p)->lpVtbl->get_ASSetting(p,a)
#define ISearchAssistantOC_NETDetectNextNavigate(p) (p)->lpVtbl->NETDetectNextNavigate(p)
#define ISearchAssistantOC_PutFindText(p,a) (p)->lpVtbl->PutFindText(p,a)
#define ISearchAssistantOC_get_Version(p,a) (p)->lpVtbl->get_Version(p,a)
#define ISearchAssistantOC_EncodeString(p,a,b,c,d) (p)->lpVtbl->EncodeString(p,a,b,c,d)
#endif

#endif

HRESULT CALLBACK ISearchAssistantOC_AddNextMenuItem_Proxy(
    ISearchAssistantOC* This,
    BSTR bstrText,
    long idItem);
void __RPC_STUB ISearchAssistantOC_AddNextMenuItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_SetDefaultSearchUrl_Proxy(
    ISearchAssistantOC* This,
    BSTR bstrUrl);
void __RPC_STUB ISearchAssistantOC_SetDefaultSearchUrl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_NavigateToDefaultSearch_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NavigateToDefaultSearch_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_IsRestricted_Proxy(
    ISearchAssistantOC* This,
    BSTR bstrGuid,
    VARIANT_BOOL* pVal);
void __RPC_STUB ISearchAssistantOC_IsRestricted_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_ShellFeaturesEnabled_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL* pVal);
void __RPC_STUB ISearchAssistantOC_get_ShellFeaturesEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_SearchAssistantDefault_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL* pVal);
void __RPC_STUB ISearchAssistantOC_get_SearchAssistantDefault_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_Searches_Proxy(
    ISearchAssistantOC* This,
    ISearches** ppid);
void __RPC_STUB ISearchAssistantOC_get_Searches_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_InWebFolder_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL* pVal);
void __RPC_STUB ISearchAssistantOC_get_InWebFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_PutProperty_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL bPerLocale,
    BSTR bstrName,
    BSTR bstrValue);
void __RPC_STUB ISearchAssistantOC_PutProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_GetProperty_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL bPerLocale,
    BSTR bstrName,
    BSTR* pbstrValue);
void __RPC_STUB ISearchAssistantOC_GetProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_put_EventHandled_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL rhs);
void __RPC_STUB ISearchAssistantOC_put_EventHandled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_ResetNextMenu_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_ResetNextMenu_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_FindOnWeb_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindOnWeb_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_FindFilesOrFolders_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindFilesOrFolders_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_FindComputer_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindComputer_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_FindPrinter_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindPrinter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_FindPeople_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindPeople_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_GetSearchAssistantURL_Proxy(
    ISearchAssistantOC* This,
    VARIANT_BOOL bSubstitute,
    VARIANT_BOOL bCustomize,
    BSTR* pbstrValue);
void __RPC_STUB ISearchAssistantOC_GetSearchAssistantURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_NotifySearchSettingsChanged_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NotifySearchSettingsChanged_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_put_ASProvider_Proxy(
    ISearchAssistantOC* This,
    BSTR pProvider);
void __RPC_STUB ISearchAssistantOC_put_ASProvider_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_ASProvider_Proxy(
    ISearchAssistantOC* This,
    BSTR* pProvider);
void __RPC_STUB ISearchAssistantOC_get_ASProvider_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_put_ASSetting_Proxy(
    ISearchAssistantOC* This,
    int pSetting);
void __RPC_STUB ISearchAssistantOC_put_ASSetting_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_ASSetting_Proxy(
    ISearchAssistantOC* This,
    int* pSetting);
void __RPC_STUB ISearchAssistantOC_get_ASSetting_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_NETDetectNextNavigate_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NETDetectNextNavigate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_PutFindText_Proxy(
    ISearchAssistantOC* This,
    BSTR FindText);
void __RPC_STUB ISearchAssistantOC_PutFindText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_get_Version_Proxy(
    ISearchAssistantOC* This,
    int* pVersion);
void __RPC_STUB ISearchAssistantOC_get_Version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC_EncodeString_Proxy(
    ISearchAssistantOC* This,
    BSTR bstrValue,
    BSTR bstrCharSet,
    VARIANT_BOOL bUseUTF8,
    BSTR* pbstrResult);
void __RPC_STUB ISearchAssistantOC_EncodeString_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISearchAssistantOC_INTERFACE_DEFINED__ */

#ifndef __ISearchAssistantOC2_FWD_DEFINED__
#define __ISearchAssistantOC2_FWD_DEFINED__
typedef interface ISearchAssistantOC2 ISearchAssistantOC2;
#endif

/*****************************************************************************
 * ISearchAssistantOC2 interface
 */
#ifndef __ISearchAssistantOC2_INTERFACE_DEFINED__
#define __ISearchAssistantOC2_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISearchAssistantOC2, 0x72423e8f, 0x8011, 0x11d2, 0xbe,0x79, 0x00,0xa0,0xc9,0xa8,0x3d,0xa2);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISearchAssistantOC2 : public ISearchAssistantOC
{
    virtual HRESULT STDMETHODCALLTYPE get_ShowFindPrinter(
        VARIANT_BOOL* pbShowFindPrinter) = 0;

};
#else
typedef struct ISearchAssistantOC2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISearchAssistantOC2* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISearchAssistantOC2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISearchAssistantOC2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISearchAssistantOC2* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISearchAssistantOC2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISearchAssistantOC2* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISearchAssistantOC2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** ISearchAssistantOC methods ***/
    HRESULT (STDMETHODCALLTYPE *AddNextMenuItem)(
        ISearchAssistantOC2* This,
        BSTR bstrText,
        long idItem);

    HRESULT (STDMETHODCALLTYPE *SetDefaultSearchUrl)(
        ISearchAssistantOC2* This,
        BSTR bstrUrl);

    HRESULT (STDMETHODCALLTYPE *NavigateToDefaultSearch)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
        ISearchAssistantOC2* This,
        BSTR bstrGuid,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_ShellFeaturesEnabled)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_SearchAssistantDefault)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_Searches)(
        ISearchAssistantOC2* This,
        ISearches** ppid);

    HRESULT (STDMETHODCALLTYPE *get_InWebFolder)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *PutProperty)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *put_EventHandled)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL rhs);

    HRESULT (STDMETHODCALLTYPE *ResetNextMenu)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *FindOnWeb)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *FindFilesOrFolders)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *FindComputer)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *FindPeople)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *GetSearchAssistantURL)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL bSubstitute,
        VARIANT_BOOL bCustomize,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *NotifySearchSettingsChanged)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *put_ASProvider)(
        ISearchAssistantOC2* This,
        BSTR pProvider);

    HRESULT (STDMETHODCALLTYPE *get_ASProvider)(
        ISearchAssistantOC2* This,
        BSTR* pProvider);

    HRESULT (STDMETHODCALLTYPE *put_ASSetting)(
        ISearchAssistantOC2* This,
        int pSetting);

    HRESULT (STDMETHODCALLTYPE *get_ASSetting)(
        ISearchAssistantOC2* This,
        int* pSetting);

    HRESULT (STDMETHODCALLTYPE *NETDetectNextNavigate)(
        ISearchAssistantOC2* This);

    HRESULT (STDMETHODCALLTYPE *PutFindText)(
        ISearchAssistantOC2* This,
        BSTR FindText);

    HRESULT (STDMETHODCALLTYPE *get_Version)(
        ISearchAssistantOC2* This,
        int* pVersion);

    HRESULT (STDMETHODCALLTYPE *EncodeString)(
        ISearchAssistantOC2* This,
        BSTR bstrValue,
        BSTR bstrCharSet,
        VARIANT_BOOL bUseUTF8,
        BSTR* pbstrResult);

    /*** ISearchAssistantOC2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_ShowFindPrinter)(
        ISearchAssistantOC2* This,
        VARIANT_BOOL* pbShowFindPrinter);

    END_INTERFACE
} ISearchAssistantOC2Vtbl;
interface ISearchAssistantOC2 {
    const ISearchAssistantOC2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISearchAssistantOC2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISearchAssistantOC2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISearchAssistantOC2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISearchAssistantOC2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISearchAssistantOC2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISearchAssistantOC2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC2_AddNextMenuItem(p,a,b) (p)->lpVtbl->AddNextMenuItem(p,a,b)
#define ISearchAssistantOC2_SetDefaultSearchUrl(p,a) (p)->lpVtbl->SetDefaultSearchUrl(p,a)
#define ISearchAssistantOC2_NavigateToDefaultSearch(p) (p)->lpVtbl->NavigateToDefaultSearch(p)
#define ISearchAssistantOC2_IsRestricted(p,a,b) (p)->lpVtbl->IsRestricted(p,a,b)
#define ISearchAssistantOC2_get_ShellFeaturesEnabled(p,a) (p)->lpVtbl->get_ShellFeaturesEnabled(p,a)
#define ISearchAssistantOC2_get_SearchAssistantDefault(p,a) (p)->lpVtbl->get_SearchAssistantDefault(p,a)
#define ISearchAssistantOC2_get_Searches(p,a) (p)->lpVtbl->get_Searches(p,a)
#define ISearchAssistantOC2_get_InWebFolder(p,a) (p)->lpVtbl->get_InWebFolder(p,a)
#define ISearchAssistantOC2_PutProperty(p,a,b,c) (p)->lpVtbl->PutProperty(p,a,b,c)
#define ISearchAssistantOC2_GetProperty(p,a,b,c) (p)->lpVtbl->GetProperty(p,a,b,c)
#define ISearchAssistantOC2_put_EventHandled(p,a) (p)->lpVtbl->put_EventHandled(p,a)
#define ISearchAssistantOC2_ResetNextMenu(p) (p)->lpVtbl->ResetNextMenu(p)
#define ISearchAssistantOC2_FindOnWeb(p) (p)->lpVtbl->FindOnWeb(p)
#define ISearchAssistantOC2_FindFilesOrFolders(p) (p)->lpVtbl->FindFilesOrFolders(p)
#define ISearchAssistantOC2_FindComputer(p) (p)->lpVtbl->FindComputer(p)
#define ISearchAssistantOC2_FindPrinter(p) (p)->lpVtbl->FindPrinter(p)
#define ISearchAssistantOC2_FindPeople(p) (p)->lpVtbl->FindPeople(p)
#define ISearchAssistantOC2_GetSearchAssistantURL(p,a,b,c) (p)->lpVtbl->GetSearchAssistantURL(p,a,b,c)
#define ISearchAssistantOC2_NotifySearchSettingsChanged(p) (p)->lpVtbl->NotifySearchSettingsChanged(p)
#define ISearchAssistantOC2_put_ASProvider(p,a) (p)->lpVtbl->put_ASProvider(p,a)
#define ISearchAssistantOC2_get_ASProvider(p,a) (p)->lpVtbl->get_ASProvider(p,a)
#define ISearchAssistantOC2_put_ASSetting(p,a) (p)->lpVtbl->put_ASSetting(p,a)
#define ISearchAssistantOC2_get_ASSetting(p,a) (p)->lpVtbl->get_ASSetting(p,a)
#define ISearchAssistantOC2_NETDetectNextNavigate(p) (p)->lpVtbl->NETDetectNextNavigate(p)
#define ISearchAssistantOC2_PutFindText(p,a) (p)->lpVtbl->PutFindText(p,a)
#define ISearchAssistantOC2_get_Version(p,a) (p)->lpVtbl->get_Version(p,a)
#define ISearchAssistantOC2_EncodeString(p,a,b,c,d) (p)->lpVtbl->EncodeString(p,a,b,c,d)
/*** ISearchAssistantOC2 methods ***/
#define ISearchAssistantOC2_get_ShowFindPrinter(p,a) (p)->lpVtbl->get_ShowFindPrinter(p,a)
#endif

#endif

HRESULT CALLBACK ISearchAssistantOC2_get_ShowFindPrinter_Proxy(
    ISearchAssistantOC2* This,
    VARIANT_BOOL* pbShowFindPrinter);
void __RPC_STUB ISearchAssistantOC2_get_ShowFindPrinter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISearchAssistantOC2_INTERFACE_DEFINED__ */

#ifndef __ISearchAssistantOC3_FWD_DEFINED__
#define __ISearchAssistantOC3_FWD_DEFINED__
typedef interface ISearchAssistantOC3 ISearchAssistantOC3;
#endif

/*****************************************************************************
 * ISearchAssistantOC3 interface
 */
#ifndef __ISearchAssistantOC3_INTERFACE_DEFINED__
#define __ISearchAssistantOC3_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISearchAssistantOC3, 0x72423e8f, 0x8011, 0x11d2, 0xbe,0x79, 0x00,0xa0,0xc9,0xa8,0x3d,0xa3);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISearchAssistantOC3 : public ISearchAssistantOC2
{
    virtual HRESULT STDMETHODCALLTYPE get_SearchCompanionAvailable(
        VARIANT_BOOL* pbAvailable) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_UseSearchCompanion(
        VARIANT_BOOL pbUseSC) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_UseSearchCompanion(
        VARIANT_BOOL* pbUseSC) = 0;

};
#else
typedef struct ISearchAssistantOC3Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISearchAssistantOC3* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISearchAssistantOC3* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISearchAssistantOC3* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISearchAssistantOC3* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISearchAssistantOC3* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISearchAssistantOC3* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISearchAssistantOC3* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** ISearchAssistantOC methods ***/
    HRESULT (STDMETHODCALLTYPE *AddNextMenuItem)(
        ISearchAssistantOC3* This,
        BSTR bstrText,
        long idItem);

    HRESULT (STDMETHODCALLTYPE *SetDefaultSearchUrl)(
        ISearchAssistantOC3* This,
        BSTR bstrUrl);

    HRESULT (STDMETHODCALLTYPE *NavigateToDefaultSearch)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *IsRestricted)(
        ISearchAssistantOC3* This,
        BSTR bstrGuid,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_ShellFeaturesEnabled)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_SearchAssistantDefault)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *get_Searches)(
        ISearchAssistantOC3* This,
        ISearches** ppid);

    HRESULT (STDMETHODCALLTYPE *get_InWebFolder)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pVal);

    HRESULT (STDMETHODCALLTYPE *PutProperty)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *GetProperty)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL bPerLocale,
        BSTR bstrName,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *put_EventHandled)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL rhs);

    HRESULT (STDMETHODCALLTYPE *ResetNextMenu)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *FindOnWeb)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *FindFilesOrFolders)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *FindComputer)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *FindPrinter)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *FindPeople)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *GetSearchAssistantURL)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL bSubstitute,
        VARIANT_BOOL bCustomize,
        BSTR* pbstrValue);

    HRESULT (STDMETHODCALLTYPE *NotifySearchSettingsChanged)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *put_ASProvider)(
        ISearchAssistantOC3* This,
        BSTR pProvider);

    HRESULT (STDMETHODCALLTYPE *get_ASProvider)(
        ISearchAssistantOC3* This,
        BSTR* pProvider);

    HRESULT (STDMETHODCALLTYPE *put_ASSetting)(
        ISearchAssistantOC3* This,
        int pSetting);

    HRESULT (STDMETHODCALLTYPE *get_ASSetting)(
        ISearchAssistantOC3* This,
        int* pSetting);

    HRESULT (STDMETHODCALLTYPE *NETDetectNextNavigate)(
        ISearchAssistantOC3* This);

    HRESULT (STDMETHODCALLTYPE *PutFindText)(
        ISearchAssistantOC3* This,
        BSTR FindText);

    HRESULT (STDMETHODCALLTYPE *get_Version)(
        ISearchAssistantOC3* This,
        int* pVersion);

    HRESULT (STDMETHODCALLTYPE *EncodeString)(
        ISearchAssistantOC3* This,
        BSTR bstrValue,
        BSTR bstrCharSet,
        VARIANT_BOOL bUseUTF8,
        BSTR* pbstrResult);

    /*** ISearchAssistantOC2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_ShowFindPrinter)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pbShowFindPrinter);

    /*** ISearchAssistantOC3 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_SearchCompanionAvailable)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pbAvailable);

    HRESULT (STDMETHODCALLTYPE *put_UseSearchCompanion)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL pbUseSC);

    HRESULT (STDMETHODCALLTYPE *get_UseSearchCompanion)(
        ISearchAssistantOC3* This,
        VARIANT_BOOL* pbUseSC);

    END_INTERFACE
} ISearchAssistantOC3Vtbl;
interface ISearchAssistantOC3 {
    const ISearchAssistantOC3Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISearchAssistantOC3_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISearchAssistantOC3_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISearchAssistantOC3_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISearchAssistantOC3_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISearchAssistantOC3_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISearchAssistantOC3_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC3_AddNextMenuItem(p,a,b) (p)->lpVtbl->AddNextMenuItem(p,a,b)
#define ISearchAssistantOC3_SetDefaultSearchUrl(p,a) (p)->lpVtbl->SetDefaultSearchUrl(p,a)
#define ISearchAssistantOC3_NavigateToDefaultSearch(p) (p)->lpVtbl->NavigateToDefaultSearch(p)
#define ISearchAssistantOC3_IsRestricted(p,a,b) (p)->lpVtbl->IsRestricted(p,a,b)
#define ISearchAssistantOC3_get_ShellFeaturesEnabled(p,a) (p)->lpVtbl->get_ShellFeaturesEnabled(p,a)
#define ISearchAssistantOC3_get_SearchAssistantDefault(p,a) (p)->lpVtbl->get_SearchAssistantDefault(p,a)
#define ISearchAssistantOC3_get_Searches(p,a) (p)->lpVtbl->get_Searches(p,a)
#define ISearchAssistantOC3_get_InWebFolder(p,a) (p)->lpVtbl->get_InWebFolder(p,a)
#define ISearchAssistantOC3_PutProperty(p,a,b,c) (p)->lpVtbl->PutProperty(p,a,b,c)
#define ISearchAssistantOC3_GetProperty(p,a,b,c) (p)->lpVtbl->GetProperty(p,a,b,c)
#define ISearchAssistantOC3_put_EventHandled(p,a) (p)->lpVtbl->put_EventHandled(p,a)
#define ISearchAssistantOC3_ResetNextMenu(p) (p)->lpVtbl->ResetNextMenu(p)
#define ISearchAssistantOC3_FindOnWeb(p) (p)->lpVtbl->FindOnWeb(p)
#define ISearchAssistantOC3_FindFilesOrFolders(p) (p)->lpVtbl->FindFilesOrFolders(p)
#define ISearchAssistantOC3_FindComputer(p) (p)->lpVtbl->FindComputer(p)
#define ISearchAssistantOC3_FindPrinter(p) (p)->lpVtbl->FindPrinter(p)
#define ISearchAssistantOC3_FindPeople(p) (p)->lpVtbl->FindPeople(p)
#define ISearchAssistantOC3_GetSearchAssistantURL(p,a,b,c) (p)->lpVtbl->GetSearchAssistantURL(p,a,b,c)
#define ISearchAssistantOC3_NotifySearchSettingsChanged(p) (p)->lpVtbl->NotifySearchSettingsChanged(p)
#define ISearchAssistantOC3_put_ASProvider(p,a) (p)->lpVtbl->put_ASProvider(p,a)
#define ISearchAssistantOC3_get_ASProvider(p,a) (p)->lpVtbl->get_ASProvider(p,a)
#define ISearchAssistantOC3_put_ASSetting(p,a) (p)->lpVtbl->put_ASSetting(p,a)
#define ISearchAssistantOC3_get_ASSetting(p,a) (p)->lpVtbl->get_ASSetting(p,a)
#define ISearchAssistantOC3_NETDetectNextNavigate(p) (p)->lpVtbl->NETDetectNextNavigate(p)
#define ISearchAssistantOC3_PutFindText(p,a) (p)->lpVtbl->PutFindText(p,a)
#define ISearchAssistantOC3_get_Version(p,a) (p)->lpVtbl->get_Version(p,a)
#define ISearchAssistantOC3_EncodeString(p,a,b,c,d) (p)->lpVtbl->EncodeString(p,a,b,c,d)
/*** ISearchAssistantOC2 methods ***/
#define ISearchAssistantOC3_get_ShowFindPrinter(p,a) (p)->lpVtbl->get_ShowFindPrinter(p,a)
/*** ISearchAssistantOC3 methods ***/
#define ISearchAssistantOC3_get_SearchCompanionAvailable(p,a) (p)->lpVtbl->get_SearchCompanionAvailable(p,a)
#define ISearchAssistantOC3_put_UseSearchCompanion(p,a) (p)->lpVtbl->put_UseSearchCompanion(p,a)
#define ISearchAssistantOC3_get_UseSearchCompanion(p,a) (p)->lpVtbl->get_UseSearchCompanion(p,a)
#endif

#endif

HRESULT CALLBACK ISearchAssistantOC3_get_SearchCompanionAvailable_Proxy(
    ISearchAssistantOC3* This,
    VARIANT_BOOL* pbAvailable);
void __RPC_STUB ISearchAssistantOC3_get_SearchCompanionAvailable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC3_put_UseSearchCompanion_Proxy(
    ISearchAssistantOC3* This,
    VARIANT_BOOL pbUseSC);
void __RPC_STUB ISearchAssistantOC3_put_UseSearchCompanion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISearchAssistantOC3_get_UseSearchCompanion_Proxy(
    ISearchAssistantOC3* This,
    VARIANT_BOOL* pbUseSC);
void __RPC_STUB ISearchAssistantOC3_get_UseSearchCompanion_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISearchAssistantOC3_INTERFACE_DEFINED__ */

#ifndef ___SearchAssistantEvents_FWD_DEFINED__
#define ___SearchAssistantEvents_FWD_DEFINED__
typedef interface _SearchAssistantEvents _SearchAssistantEvents;
#endif

/*****************************************************************************
 * _SearchAssistantEvents dispinterface
 */
#ifndef ___SearchAssistantEvents_DISPINTERFACE_DEFINED__
#define ___SearchAssistantEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID__SearchAssistantEvents, 0x1611fdda, 0x445b, 0x11d2, 0x85,0xde, 0x00,0xc0,0x4f,0xa3,0x5c,0x89);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface _SearchAssistantEvents : public IDispatch
{
};
#else
typedef struct _SearchAssistantEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        _SearchAssistantEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        _SearchAssistantEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        _SearchAssistantEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        _SearchAssistantEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        _SearchAssistantEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        _SearchAssistantEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        _SearchAssistantEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} _SearchAssistantEventsVtbl;
interface _SearchAssistantEvents {
    const _SearchAssistantEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define _SearchAssistantEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define _SearchAssistantEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define _SearchAssistantEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define _SearchAssistantEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define _SearchAssistantEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define _SearchAssistantEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define _SearchAssistantEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* ___SearchAssistantEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * SearchAssistantOC coclass
 */

DEFINE_GUID(CLSID_SearchAssistantOC, 0xb45ff030, 0x4447, 0x11d2, 0x85,0xde, 0x00,0xc0,0x4f,0xa3,0x5c,0x89);

#ifndef __SearchAssistantOC_FWD_DEFINED__
#define __SearchAssistantOC_FWD_DEFINED__
typedef struct SearchAssistantOC SearchAssistantOC;
#endif /* defined __SearchAssistantOC_FWD_DEFINED__ */

/*****************************************************************************
 * ShellSearchAssistantOC coclass
 */

DEFINE_GUID(CLSID_ShellSearchAssistantOC, 0x2e71fd0f, 0xaab1, 0x42c0, 0x91,0x46, 0x6d,0x2c,0x4e,0xdc,0xf0,0x7d);

#ifndef __ShellSearchAssistantOC_FWD_DEFINED__
#define __ShellSearchAssistantOC_FWD_DEFINED__
typedef struct ShellSearchAssistantOC ShellSearchAssistantOC;
#endif /* defined __ShellSearchAssistantOC_FWD_DEFINED__ */

/* Begin additional prototypes for all interfaces */

unsigned long   __RPC_USER VARIANT_UserSize     (unsigned long *, unsigned long,   VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (unsigned long *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (unsigned long *, VARIANT *);
unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_EXDISP_H */
