/*** Autogenerated by WIDL 1.3.12 from exdisp.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_EXDISP_H
#define __WIDL_EXDISP_H

/* Forward declarations */

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

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

#ifndef __IWebBrowserApp_FWD_DEFINED__
#define __IWebBrowserApp_FWD_DEFINED__
typedef interface IWebBrowserApp IWebBrowserApp;
#endif

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

#ifndef __DWebBrowserEvents2_FWD_DEFINED__
#define __DWebBrowserEvents2_FWD_DEFINED__
typedef interface DWebBrowserEvents2 DWebBrowserEvents2;
#endif

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

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

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

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

#ifndef __DShellWindowsEvents_FWD_DEFINED__
#define __DShellWindowsEvents_FWD_DEFINED__
typedef interface DShellWindowsEvents DShellWindowsEvents;
#endif

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

#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

#ifndef __IShellUIHelper2_FWD_DEFINED__
#define __IShellUIHelper2_FWD_DEFINED__
typedef interface IShellUIHelper2 IShellUIHelper2;
#endif

#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

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

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

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

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

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

#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

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

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

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

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

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

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

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

/* Headers for imported files */

#include <ocidl.h>
#include <docobj.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifdef WINE_NO_UNICODE_MACROS
#undef FindText
#endif

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

/*****************************************************************************
 * IWebBrowser interface
 */
#ifndef __IWebBrowser_INTERFACE_DEFINED__
#define __IWebBrowser_INTERFACE_DEFINED__

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;
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_VTBL IWebBrowserVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWebBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWebBrowser_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWebBrowser_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWebBrowser_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWebBrowser_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWebBrowser_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWebBrowser methods ***/
#define IWebBrowser_GoBack(This) (This)->lpVtbl->GoBack(This)
#define IWebBrowser_GoForward(This) (This)->lpVtbl->GoForward(This)
#define IWebBrowser_GoHome(This) (This)->lpVtbl->GoHome(This)
#define IWebBrowser_GoSearch(This) (This)->lpVtbl->GoSearch(This)
#define IWebBrowser_Navigate(This,URL,Flags,TargetFrameName,PostData,Headers) (This)->lpVtbl->Navigate(This,URL,Flags,TargetFrameName,PostData,Headers)
#define IWebBrowser_Refresh(This) (This)->lpVtbl->Refresh(This)
#define IWebBrowser_Refresh2(This,Level) (This)->lpVtbl->Refresh2(This,Level)
#define IWebBrowser_Stop(This) (This)->lpVtbl->Stop(This)
#define IWebBrowser_get_Application(This,ppDisp) (This)->lpVtbl->get_Application(This,ppDisp)
#define IWebBrowser_get_Parent(This,ppDisp) (This)->lpVtbl->get_Parent(This,ppDisp)
#define IWebBrowser_get_Container(This,ppDisp) (This)->lpVtbl->get_Container(This,ppDisp)
#define IWebBrowser_get_Document(This,ppDisp) (This)->lpVtbl->get_Document(This,ppDisp)
#define IWebBrowser_get_TopLevelContainer(This,pBool) (This)->lpVtbl->get_TopLevelContainer(This,pBool)
#define IWebBrowser_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
#define IWebBrowser_get_Left(This,pl) (This)->lpVtbl->get_Left(This,pl)
#define IWebBrowser_put_Left(This,Left) (This)->lpVtbl->put_Left(This,Left)
#define IWebBrowser_get_Top(This,pl) (This)->lpVtbl->get_Top(This,pl)
#define IWebBrowser_put_Top(This,Top) (This)->lpVtbl->put_Top(This,Top)
#define IWebBrowser_get_Width(This,pl) (This)->lpVtbl->get_Width(This,pl)
#define IWebBrowser_put_Width(This,Width) (This)->lpVtbl->put_Width(This,Width)
#define IWebBrowser_get_Height(This,pl) (This)->lpVtbl->get_Height(This,pl)
#define IWebBrowser_put_Height(This,Height) (This)->lpVtbl->put_Height(This,Height)
#define IWebBrowser_get_LocationName(This,LocationName) (This)->lpVtbl->get_LocationName(This,LocationName)
#define IWebBrowser_get_LocationURL(This,LocationURL) (This)->lpVtbl->get_LocationURL(This,LocationURL)
#define IWebBrowser_get_Busy(This,pBool) (This)->lpVtbl->get_Busy(This,pBool)
#endif

#endif

HRESULT STDMETHODCALLTYPE IWebBrowser_GoBack_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoBack_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IWebBrowser_GoForward_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoForward_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IWebBrowser_GoHome_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoHome_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IWebBrowser_GoSearch_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_GoSearch_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IWebBrowser_Refresh_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_Refresh_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IWebBrowser_Refresh2_Proxy(
    IWebBrowser* This,
    VARIANT *Level);
void __RPC_STUB IWebBrowser_Refresh2_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IWebBrowser_Stop_Proxy(
    IWebBrowser* This);
void __RPC_STUB IWebBrowser_Stop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL DWebBrowserEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DWebBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define DWebBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define DWebBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define DWebBrowserEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define DWebBrowserEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define DWebBrowserEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define DWebBrowserEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#endif

#endif

#endif  /* __DWebBrowserEvents_DISPINTERFACE_DEFINED__ */

typedef enum CommandStateChangeConstants {
    CSC_UPDATECOMMANDS = -1,
    CSC_NAVIGATEFORWARD = 1,
    CSC_NAVIGATEBACK = 2
} CommandStateChangeConstants;
/*****************************************************************************
 * 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_VTBL IWebBrowserAppVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowserApp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWebBrowserApp_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWebBrowserApp_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWebBrowserApp_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWebBrowserApp_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWebBrowserApp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWebBrowserApp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWebBrowser methods ***/
#define IWebBrowserApp_GoBack(This) (This)->lpVtbl->GoBack(This)
#define IWebBrowserApp_GoForward(This) (This)->lpVtbl->GoForward(This)
#define IWebBrowserApp_GoHome(This) (This)->lpVtbl->GoHome(This)
#define IWebBrowserApp_GoSearch(This) (This)->lpVtbl->GoSearch(This)
#define IWebBrowserApp_Navigate(This,URL,Flags,TargetFrameName,PostData,Headers) (This)->lpVtbl->Navigate(This,URL,Flags,TargetFrameName,PostData,Headers)
#define IWebBrowserApp_Refresh(This) (This)->lpVtbl->Refresh(This)
#define IWebBrowserApp_Refresh2(This,Level) (This)->lpVtbl->Refresh2(This,Level)
#define IWebBrowserApp_Stop(This) (This)->lpVtbl->Stop(This)
#define IWebBrowserApp_get_Application(This,ppDisp) (This)->lpVtbl->get_Application(This,ppDisp)
#define IWebBrowserApp_get_Parent(This,ppDisp) (This)->lpVtbl->get_Parent(This,ppDisp)
#define IWebBrowserApp_get_Container(This,ppDisp) (This)->lpVtbl->get_Container(This,ppDisp)
#define IWebBrowserApp_get_Document(This,ppDisp) (This)->lpVtbl->get_Document(This,ppDisp)
#define IWebBrowserApp_get_TopLevelContainer(This,pBool) (This)->lpVtbl->get_TopLevelContainer(This,pBool)
#define IWebBrowserApp_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
#define IWebBrowserApp_get_Left(This,pl) (This)->lpVtbl->get_Left(This,pl)
#define IWebBrowserApp_put_Left(This,Left) (This)->lpVtbl->put_Left(This,Left)
#define IWebBrowserApp_get_Top(This,pl) (This)->lpVtbl->get_Top(This,pl)
#define IWebBrowserApp_put_Top(This,Top) (This)->lpVtbl->put_Top(This,Top)
#define IWebBrowserApp_get_Width(This,pl) (This)->lpVtbl->get_Width(This,pl)
#define IWebBrowserApp_put_Width(This,Width) (This)->lpVtbl->put_Width(This,Width)
#define IWebBrowserApp_get_Height(This,pl) (This)->lpVtbl->get_Height(This,pl)
#define IWebBrowserApp_put_Height(This,Height) (This)->lpVtbl->put_Height(This,Height)
#define IWebBrowserApp_get_LocationName(This,LocationName) (This)->lpVtbl->get_LocationName(This,LocationName)
#define IWebBrowserApp_get_LocationURL(This,LocationURL) (This)->lpVtbl->get_LocationURL(This,LocationURL)
#define IWebBrowserApp_get_Busy(This,pBool) (This)->lpVtbl->get_Busy(This,pBool)
/*** IWebBrowserApp methods ***/
#define IWebBrowserApp_Quit(This) (This)->lpVtbl->Quit(This)
#define IWebBrowserApp_ClientToWindow(This,pcx,pcy) (This)->lpVtbl->ClientToWindow(This,pcx,pcy)
#define IWebBrowserApp_PutProperty(This,Property,vtValue) (This)->lpVtbl->PutProperty(This,Property,vtValue)
#define IWebBrowserApp_GetProperty(This,Property,pvtValue) (This)->lpVtbl->GetProperty(This,Property,pvtValue)
#define IWebBrowserApp_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
#define IWebBrowserApp_get_HWND(This,pHWND) (This)->lpVtbl->get_HWND(This,pHWND)
#define IWebBrowserApp_get_FullName(This,FullName) (This)->lpVtbl->get_FullName(This,FullName)
#define IWebBrowserApp_get_Path(This,Path) (This)->lpVtbl->get_Path(This,Path)
#define IWebBrowserApp_get_Visible(This,pBool) (This)->lpVtbl->get_Visible(This,pBool)
#define IWebBrowserApp_put_Visible(This,Value) (This)->lpVtbl->put_Visible(This,Value)
#define IWebBrowserApp_get_StatusBar(This,pBool) (This)->lpVtbl->get_StatusBar(This,pBool)
#define IWebBrowserApp_put_StatusBar(This,Value) (This)->lpVtbl->put_StatusBar(This,Value)
#define IWebBrowserApp_get_StatusText(This,StatusText) (This)->lpVtbl->get_StatusText(This,StatusText)
#define IWebBrowserApp_put_StatusText(This,StatusText) (This)->lpVtbl->put_StatusText(This,StatusText)
#define IWebBrowserApp_get_ToolBar(This,Value) (This)->lpVtbl->get_ToolBar(This,Value)
#define IWebBrowserApp_put_ToolBar(This,Value) (This)->lpVtbl->put_ToolBar(This,Value)
#define IWebBrowserApp_get_MenuBar(This,Value) (This)->lpVtbl->get_MenuBar(This,Value)
#define IWebBrowserApp_put_MenuBar(This,Value) (This)->lpVtbl->put_MenuBar(This,Value)
#define IWebBrowserApp_get_FullScreen(This,pbFullScreen) (This)->lpVtbl->get_FullScreen(This,pbFullScreen)
#define IWebBrowserApp_put_FullScreen(This,bFullScreen) (This)->lpVtbl->put_FullScreen(This,bFullScreen)
#endif

#endif

HRESULT STDMETHODCALLTYPE IWebBrowserApp_Quit_Proxy(
    IWebBrowserApp* This);
void __RPC_STUB IWebBrowserApp_Quit_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL IWebBrowser2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IWebBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IWebBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IWebBrowser2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IWebBrowser2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IWebBrowser2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IWebBrowser2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IWebBrowser2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IWebBrowser methods ***/
#define IWebBrowser2_GoBack(This) (This)->lpVtbl->GoBack(This)
#define IWebBrowser2_GoForward(This) (This)->lpVtbl->GoForward(This)
#define IWebBrowser2_GoHome(This) (This)->lpVtbl->GoHome(This)
#define IWebBrowser2_GoSearch(This) (This)->lpVtbl->GoSearch(This)
#define IWebBrowser2_Navigate(This,URL,Flags,TargetFrameName,PostData,Headers) (This)->lpVtbl->Navigate(This,URL,Flags,TargetFrameName,PostData,Headers)
#define IWebBrowser2_Refresh(This) (This)->lpVtbl->Refresh(This)
#define IWebBrowser2_Refresh2(This,Level) (This)->lpVtbl->Refresh2(This,Level)
#define IWebBrowser2_Stop(This) (This)->lpVtbl->Stop(This)
#define IWebBrowser2_get_Application(This,ppDisp) (This)->lpVtbl->get_Application(This,ppDisp)
#define IWebBrowser2_get_Parent(This,ppDisp) (This)->lpVtbl->get_Parent(This,ppDisp)
#define IWebBrowser2_get_Container(This,ppDisp) (This)->lpVtbl->get_Container(This,ppDisp)
#define IWebBrowser2_get_Document(This,ppDisp) (This)->lpVtbl->get_Document(This,ppDisp)
#define IWebBrowser2_get_TopLevelContainer(This,pBool) (This)->lpVtbl->get_TopLevelContainer(This,pBool)
#define IWebBrowser2_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
#define IWebBrowser2_get_Left(This,pl) (This)->lpVtbl->get_Left(This,pl)
#define IWebBrowser2_put_Left(This,Left) (This)->lpVtbl->put_Left(This,Left)
#define IWebBrowser2_get_Top(This,pl) (This)->lpVtbl->get_Top(This,pl)
#define IWebBrowser2_put_Top(This,Top) (This)->lpVtbl->put_Top(This,Top)
#define IWebBrowser2_get_Width(This,pl) (This)->lpVtbl->get_Width(This,pl)
#define IWebBrowser2_put_Width(This,Width) (This)->lpVtbl->put_Width(This,Width)
#define IWebBrowser2_get_Height(This,pl) (This)->lpVtbl->get_Height(This,pl)
#define IWebBrowser2_put_Height(This,Height) (This)->lpVtbl->put_Height(This,Height)
#define IWebBrowser2_get_LocationName(This,LocationName) (This)->lpVtbl->get_LocationName(This,LocationName)
#define IWebBrowser2_get_LocationURL(This,LocationURL) (This)->lpVtbl->get_LocationURL(This,LocationURL)
#define IWebBrowser2_get_Busy(This,pBool) (This)->lpVtbl->get_Busy(This,pBool)
/*** IWebBrowserApp methods ***/
#define IWebBrowser2_Quit(This) (This)->lpVtbl->Quit(This)
#define IWebBrowser2_ClientToWindow(This,pcx,pcy) (This)->lpVtbl->ClientToWindow(This,pcx,pcy)
#define IWebBrowser2_PutProperty(This,Property,vtValue) (This)->lpVtbl->PutProperty(This,Property,vtValue)
#define IWebBrowser2_GetProperty(This,Property,pvtValue) (This)->lpVtbl->GetProperty(This,Property,pvtValue)
#define IWebBrowser2_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
#define IWebBrowser2_get_HWND(This,pHWND) (This)->lpVtbl->get_HWND(This,pHWND)
#define IWebBrowser2_get_FullName(This,FullName) (This)->lpVtbl->get_FullName(This,FullName)
#define IWebBrowser2_get_Path(This,Path) (This)->lpVtbl->get_Path(This,Path)
#define IWebBrowser2_get_Visible(This,pBool) (This)->lpVtbl->get_Visible(This,pBool)
#define IWebBrowser2_put_Visible(This,Value) (This)->lpVtbl->put_Visible(This,Value)
#define IWebBrowser2_get_StatusBar(This,pBool) (This)->lpVtbl->get_StatusBar(This,pBool)
#define IWebBrowser2_put_StatusBar(This,Value) (This)->lpVtbl->put_StatusBar(This,Value)
#define IWebBrowser2_get_StatusText(This,StatusText) (This)->lpVtbl->get_StatusText(This,StatusText)
#define IWebBrowser2_put_StatusText(This,StatusText) (This)->lpVtbl->put_StatusText(This,StatusText)
#define IWebBrowser2_get_ToolBar(This,Value) (This)->lpVtbl->get_ToolBar(This,Value)
#define IWebBrowser2_put_ToolBar(This,Value) (This)->lpVtbl->put_ToolBar(This,Value)
#define IWebBrowser2_get_MenuBar(This,Value) (This)->lpVtbl->get_MenuBar(This,Value)
#define IWebBrowser2_put_MenuBar(This,Value) (This)->lpVtbl->put_MenuBar(This,Value)
#define IWebBrowser2_get_FullScreen(This,pbFullScreen) (This)->lpVtbl->get_FullScreen(This,pbFullScreen)
#define IWebBrowser2_put_FullScreen(This,bFullScreen) (This)->lpVtbl->put_FullScreen(This,bFullScreen)
/*** IWebBrowser2 methods ***/
#define IWebBrowser2_Navigate2(This,URL,Flags,TargetFrameName,PostData,Headers) (This)->lpVtbl->Navigate2(This,URL,Flags,TargetFrameName,PostData,Headers)
#define IWebBrowser2_QueryStatusWB(This,cmdID,pcmdf) (This)->lpVtbl->QueryStatusWB(This,cmdID,pcmdf)
#define IWebBrowser2_ExecWB(This,cmdID,cmdexecopt,pvaIn,pvaOut) (This)->lpVtbl->ExecWB(This,cmdID,cmdexecopt,pvaIn,pvaOut)
#define IWebBrowser2_ShowBrowserBar(This,pvaClsid,pvarShow,pvarSize) (This)->lpVtbl->ShowBrowserBar(This,pvaClsid,pvarShow,pvarSize)
#define IWebBrowser2_get_ReadyState(This,plReadyState) (This)->lpVtbl->get_ReadyState(This,plReadyState)
#define IWebBrowser2_get_Offline(This,pbOffline) (This)->lpVtbl->get_Offline(This,pbOffline)
#define IWebBrowser2_put_Offline(This,bOffline) (This)->lpVtbl->put_Offline(This,bOffline)
#define IWebBrowser2_get_Silent(This,pbSilent) (This)->lpVtbl->get_Silent(This,pbSilent)
#define IWebBrowser2_put_Silent(This,bSilent) (This)->lpVtbl->put_Silent(This,bSilent)
#define IWebBrowser2_get_RegisterAsBrowser(This,pbRegister) (This)->lpVtbl->get_RegisterAsBrowser(This,pbRegister)
#define IWebBrowser2_put_RegisterAsBrowser(This,bRegister) (This)->lpVtbl->put_RegisterAsBrowser(This,bRegister)
#define IWebBrowser2_get_RegisterAsDropTarget(This,pbRegister) (This)->lpVtbl->get_RegisterAsDropTarget(This,pbRegister)
#define IWebBrowser2_put_RegisterAsDropTarget(This,bRegister) (This)->lpVtbl->put_RegisterAsDropTarget(This,bRegister)
#define IWebBrowser2_get_TheaterMode(This,pbRegister) (This)->lpVtbl->get_TheaterMode(This,pbRegister)
#define IWebBrowser2_put_TheaterMode(This,bRegister) (This)->lpVtbl->put_TheaterMode(This,bRegister)
#define IWebBrowser2_get_AddressBar(This,Value) (This)->lpVtbl->get_AddressBar(This,Value)
#define IWebBrowser2_put_AddressBar(This,Value) (This)->lpVtbl->put_AddressBar(This,Value)
#define IWebBrowser2_get_Resizable(This,Value) (This)->lpVtbl->get_Resizable(This,Value)
#define IWebBrowser2_put_Resizable(This,Value) (This)->lpVtbl->put_Resizable(This,Value)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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;
/*****************************************************************************
 * 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_VTBL DWebBrowserEvents2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DWebBrowserEvents2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define DWebBrowserEvents2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define DWebBrowserEvents2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define DWebBrowserEvents2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define DWebBrowserEvents2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define DWebBrowserEvents2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define DWebBrowserEvents2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#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);

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

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

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

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

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

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

typedef enum ShellWindowTypeConstants {
    SWC_EXPLORER = 0,
    SWC_BROWSER = 1,
    SWC_3RDPARTY = 2,
    SWC_CALLBACK = 4,
    SWC_DESKTOP = 8
} ShellWindowTypeConstants;
typedef enum ShellWindowFindWindowOptions {
    SWFO_NEEDDISPATCH = 1,
    SWFO_INCLUDEPENDING = 2,
    SWFO_COOKIEPASSED = 4
} ShellWindowFindWindowOptions;
/*****************************************************************************
 * 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_VTBL DShellWindowsEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DShellWindowsEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define DShellWindowsEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define DShellWindowsEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define DShellWindowsEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define DShellWindowsEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define DShellWindowsEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define DShellWindowsEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#endif

#endif

#endif  /* __DShellWindowsEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * 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_VTBL IShellWindowsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellWindows_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IShellWindows_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IShellWindows_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IShellWindows_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IShellWindows_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IShellWindows_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IShellWindows_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IShellWindows methods ***/
#define IShellWindows_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
#define IShellWindows_Item(This,index,Folder) (This)->lpVtbl->Item(This,index,Folder)
#define IShellWindows__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
#define IShellWindows_Register(This,pid,hWnd,swClass,plCookie) (This)->lpVtbl->Register(This,pid,hWnd,swClass,plCookie)
#define IShellWindows_RegisterPending(This,lThreadId,pvarloc,pvarlocRoot,swClass,plCookie) (This)->lpVtbl->RegisterPending(This,lThreadId,pvarloc,pvarlocRoot,swClass,plCookie)
#define IShellWindows_Revoke(This,lCookie) (This)->lpVtbl->Revoke(This,lCookie)
#define IShellWindows_OnNavigate(This,lCookie,pvarLoc) (This)->lpVtbl->OnNavigate(This,lCookie,pvarLoc)
#define IShellWindows_OnActivated(This,lCookie,fActive) (This)->lpVtbl->OnActivated(This,lCookie,fActive)
#define IShellWindows_FindWindowSW(This,pvarLoc,pvarLocRoot,swClass,phwnd,swfwOptions,ppdispOut) (This)->lpVtbl->FindWindowSW(This,pvarLoc,pvarLocRoot,swClass,phwnd,swfwOptions,ppdispOut)
#define IShellWindows_OnCreated(This,lCookie,punk) (This)->lpVtbl->OnCreated(This,lCookie,punk)
#define IShellWindows_ProcessAttachDetach(This,fAttach) (This)->lpVtbl->ProcessAttachDetach(This,fAttach)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellWindows__NewEnum_Proxy(
    IShellWindows* This,
    IUnknown **ppunk);
void __RPC_STUB IShellWindows__NewEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellWindows_Revoke_Proxy(
    IShellWindows* This,
    LONG lCookie);
void __RPC_STUB IShellWindows_Revoke_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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);

/*****************************************************************************
 * 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_VTBL IShellUIHelperVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellUIHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IShellUIHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IShellUIHelper_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IShellUIHelper_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IShellUIHelper_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IShellUIHelper_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IShellUIHelper_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IShellUIHelper methods ***/
#define IShellUIHelper_ResetFirstBootMode(This) (This)->lpVtbl->ResetFirstBootMode(This)
#define IShellUIHelper_ResetSafeMode(This) (This)->lpVtbl->ResetSafeMode(This)
#define IShellUIHelper_RefreshOfflineDesktop(This) (This)->lpVtbl->RefreshOfflineDesktop(This)
#define IShellUIHelper_AddFavorite(This,URL,Title) (This)->lpVtbl->AddFavorite(This,URL,Title)
#define IShellUIHelper_AddChannel(This,URL) (This)->lpVtbl->AddChannel(This,URL)
#define IShellUIHelper_AddDesktopComponent(This,URL,Type,Left,Top,Width,Height) (This)->lpVtbl->AddDesktopComponent(This,URL,Type,Left,Top,Width,Height)
#define IShellUIHelper_IsSubscribed(This,URL,pBool) (This)->lpVtbl->IsSubscribed(This,URL,pBool)
#define IShellUIHelper_NavigateAndFind(This,URL,strQuery,varTargetFrame) (This)->lpVtbl->NavigateAndFind(This,URL,strQuery,varTargetFrame)
#define IShellUIHelper_ImportExportFavorites(This,fImport,strImpExpPath) (This)->lpVtbl->ImportExportFavorites(This,fImport,strImpExpPath)
#define IShellUIHelper_AutoCompleteSaveForm(This,Form) (This)->lpVtbl->AutoCompleteSaveForm(This,Form)
#define IShellUIHelper_AutoScan(This,strSearch,strFailureUrl,pvarTargetFrame) (This)->lpVtbl->AutoScan(This,strSearch,strFailureUrl,pvarTargetFrame)
#define IShellUIHelper_AutoCompleteAttach(This,Reserved) (This)->lpVtbl->AutoCompleteAttach(This,Reserved)
#define IShellUIHelper_ShowBrowserUI(This,bstrName,pvarIn,pvarOut) (This)->lpVtbl->ShowBrowserUI(This,bstrName,pvarIn,pvarOut)
#endif

#endif

HRESULT STDMETHODCALLTYPE IShellUIHelper_ResetFirstBootMode_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_ResetFirstBootMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper_ResetSafeMode_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_ResetSafeMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper_RefreshOfflineDesktop_Proxy(
    IShellUIHelper* This);
void __RPC_STUB IShellUIHelper_RefreshOfflineDesktop_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellUIHelper_AddChannel_Proxy(
    IShellUIHelper* This,
    BSTR URL);
void __RPC_STUB IShellUIHelper_AddChannel_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellUIHelper_AutoCompleteSaveForm_Proxy(
    IShellUIHelper* This,
    VARIANT *Form);
void __RPC_STUB IShellUIHelper_AutoCompleteSaveForm_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellUIHelper_AutoCompleteAttach_Proxy(
    IShellUIHelper* This,
    VARIANT *Reserved);
void __RPC_STUB IShellUIHelper_AutoCompleteAttach_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * IShellUIHelper2 interface
 */
#ifndef __IShellUIHelper2_INTERFACE_DEFINED__
#define __IShellUIHelper2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IShellUIHelper2, 0xa7fe6eda, 0x1932, 0x4281, 0xb8,0x81, 0x87,0xb3,0x1b,0x8b,0xc5,0x2c);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IShellUIHelper2 : public IShellUIHelper
{
    virtual HRESULT STDMETHODCALLTYPE AddSearchProvider(
        BSTR URL) = 0;

    virtual HRESULT STDMETHODCALLTYPE RunOnceShown(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE SkipRunOnce(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE CustomizeSettings(
        VARIANT_BOOL fSQM,
        VARIANT_BOOL fPhishing,
        BSTR bstrLocale) = 0;

    virtual HRESULT STDMETHODCALLTYPE SqmEnabled(
        VARIANT_BOOL *pfEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE PhishingEnabled(
        VARIANT_BOOL *pfEnabled) = 0;

    virtual HRESULT STDMETHODCALLTYPE BrandImageUri(
        BSTR *pbstrUri) = 0;

    virtual HRESULT STDMETHODCALLTYPE SkipTabsWelcome(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE DiagnoseConnection(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE CustomizeClearType(
        VARIANT_BOOL fSet) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsSearchProviderInstalled(
        BSTR URL,
        DWORD *pdwResult) = 0;

    virtual HRESULT STDMETHODCALLTYPE IsSearchMigrated(
        VARIANT_BOOL *pfMigrated) = 0;

    virtual HRESULT STDMETHODCALLTYPE DefaultSearchProvider(
        BSTR *pbstrName) = 0;

    virtual HRESULT STDMETHODCALLTYPE RunOnceRequiredSettingsComplete(
        VARIANT_BOOL fComplete) = 0;

    virtual HRESULT STDMETHODCALLTYPE RunOnceHasShown(
        VARIANT_BOOL *pfShown) = 0;

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

};
#else
typedef struct IShellUIHelper2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /*** IShellUIHelper2 methods ***/
    HRESULT (STDMETHODCALLTYPE *AddSearchProvider)(
        IShellUIHelper2* This,
        BSTR URL);

    HRESULT (STDMETHODCALLTYPE *RunOnceShown)(
        IShellUIHelper2* This);

    HRESULT (STDMETHODCALLTYPE *SkipRunOnce)(
        IShellUIHelper2* This);

    HRESULT (STDMETHODCALLTYPE *CustomizeSettings)(
        IShellUIHelper2* This,
        VARIANT_BOOL fSQM,
        VARIANT_BOOL fPhishing,
        BSTR bstrLocale);

    HRESULT (STDMETHODCALLTYPE *SqmEnabled)(
        IShellUIHelper2* This,
        VARIANT_BOOL *pfEnabled);

    HRESULT (STDMETHODCALLTYPE *PhishingEnabled)(
        IShellUIHelper2* This,
        VARIANT_BOOL *pfEnabled);

    HRESULT (STDMETHODCALLTYPE *BrandImageUri)(
        IShellUIHelper2* This,
        BSTR *pbstrUri);

    HRESULT (STDMETHODCALLTYPE *SkipTabsWelcome)(
        IShellUIHelper2* This);

    HRESULT (STDMETHODCALLTYPE *DiagnoseConnection)(
        IShellUIHelper2* This);

    HRESULT (STDMETHODCALLTYPE *CustomizeClearType)(
        IShellUIHelper2* This,
        VARIANT_BOOL fSet);

    HRESULT (STDMETHODCALLTYPE *IsSearchProviderInstalled)(
        IShellUIHelper2* This,
        BSTR URL,
        DWORD *pdwResult);

    HRESULT (STDMETHODCALLTYPE *IsSearchMigrated)(
        IShellUIHelper2* This,
        VARIANT_BOOL *pfMigrated);

    HRESULT (STDMETHODCALLTYPE *DefaultSearchProvider)(
        IShellUIHelper2* This,
        BSTR *pbstrName);

    HRESULT (STDMETHODCALLTYPE *RunOnceRequiredSettingsComplete)(
        IShellUIHelper2* This,
        VARIANT_BOOL fComplete);

    HRESULT (STDMETHODCALLTYPE *RunOnceHasShown)(
        IShellUIHelper2* This,
        VARIANT_BOOL *pfShown);

    HRESULT (STDMETHODCALLTYPE *SearchGuideUrl)(
        IShellUIHelper2* This,
        BSTR *pbstrUrl);

    END_INTERFACE
} IShellUIHelper2Vtbl;
interface IShellUIHelper2 {
    CONST_VTBL IShellUIHelper2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellUIHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IShellUIHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IShellUIHelper2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IShellUIHelper2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IShellUIHelper2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IShellUIHelper2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IShellUIHelper2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IShellUIHelper methods ***/
#define IShellUIHelper2_ResetFirstBootMode(This) (This)->lpVtbl->ResetFirstBootMode(This)
#define IShellUIHelper2_ResetSafeMode(This) (This)->lpVtbl->ResetSafeMode(This)
#define IShellUIHelper2_RefreshOfflineDesktop(This) (This)->lpVtbl->RefreshOfflineDesktop(This)
#define IShellUIHelper2_AddFavorite(This,URL,Title) (This)->lpVtbl->AddFavorite(This,URL,Title)
#define IShellUIHelper2_AddChannel(This,URL) (This)->lpVtbl->AddChannel(This,URL)
#define IShellUIHelper2_AddDesktopComponent(This,URL,Type,Left,Top,Width,Height) (This)->lpVtbl->AddDesktopComponent(This,URL,Type,Left,Top,Width,Height)
#define IShellUIHelper2_IsSubscribed(This,URL,pBool) (This)->lpVtbl->IsSubscribed(This,URL,pBool)
#define IShellUIHelper2_NavigateAndFind(This,URL,strQuery,varTargetFrame) (This)->lpVtbl->NavigateAndFind(This,URL,strQuery,varTargetFrame)
#define IShellUIHelper2_ImportExportFavorites(This,fImport,strImpExpPath) (This)->lpVtbl->ImportExportFavorites(This,fImport,strImpExpPath)
#define IShellUIHelper2_AutoCompleteSaveForm(This,Form) (This)->lpVtbl->AutoCompleteSaveForm(This,Form)
#define IShellUIHelper2_AutoScan(This,strSearch,strFailureUrl,pvarTargetFrame) (This)->lpVtbl->AutoScan(This,strSearch,strFailureUrl,pvarTargetFrame)
#define IShellUIHelper2_AutoCompleteAttach(This,Reserved) (This)->lpVtbl->AutoCompleteAttach(This,Reserved)
#define IShellUIHelper2_ShowBrowserUI(This,bstrName,pvarIn,pvarOut) (This)->lpVtbl->ShowBrowserUI(This,bstrName,pvarIn,pvarOut)
/*** IShellUIHelper2 methods ***/
#define IShellUIHelper2_AddSearchProvider(This,URL) (This)->lpVtbl->AddSearchProvider(This,URL)
#define IShellUIHelper2_RunOnceShown(This) (This)->lpVtbl->RunOnceShown(This)
#define IShellUIHelper2_SkipRunOnce(This) (This)->lpVtbl->SkipRunOnce(This)
#define IShellUIHelper2_CustomizeSettings(This,fSQM,fPhishing,bstrLocale) (This)->lpVtbl->CustomizeSettings(This,fSQM,fPhishing,bstrLocale)
#define IShellUIHelper2_SqmEnabled(This,pfEnabled) (This)->lpVtbl->SqmEnabled(This,pfEnabled)
#define IShellUIHelper2_PhishingEnabled(This,pfEnabled) (This)->lpVtbl->PhishingEnabled(This,pfEnabled)
#define IShellUIHelper2_BrandImageUri(This,pbstrUri) (This)->lpVtbl->BrandImageUri(This,pbstrUri)
#define IShellUIHelper2_SkipTabsWelcome(This) (This)->lpVtbl->SkipTabsWelcome(This)
#define IShellUIHelper2_DiagnoseConnection(This) (This)->lpVtbl->DiagnoseConnection(This)
#define IShellUIHelper2_CustomizeClearType(This,fSet) (This)->lpVtbl->CustomizeClearType(This,fSet)
#define IShellUIHelper2_IsSearchProviderInstalled(This,URL,pdwResult) (This)->lpVtbl->IsSearchProviderInstalled(This,URL,pdwResult)
#define IShellUIHelper2_IsSearchMigrated(This,pfMigrated) (This)->lpVtbl->IsSearchMigrated(This,pfMigrated)
#define IShellUIHelper2_DefaultSearchProvider(This,pbstrName) (This)->lpVtbl->DefaultSearchProvider(This,pbstrName)
#define IShellUIHelper2_RunOnceRequiredSettingsComplete(This,fComplete) (This)->lpVtbl->RunOnceRequiredSettingsComplete(This,fComplete)
#define IShellUIHelper2_RunOnceHasShown(This,pfShown) (This)->lpVtbl->RunOnceHasShown(This,pfShown)
#define IShellUIHelper2_SearchGuideUrl(This,pbstrUrl) (This)->lpVtbl->SearchGuideUrl(This,pbstrUrl)
#endif

#endif

HRESULT STDMETHODCALLTYPE IShellUIHelper2_AddSearchProvider_Proxy(
    IShellUIHelper2* This,
    BSTR URL);
void __RPC_STUB IShellUIHelper2_AddSearchProvider_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_RunOnceShown_Proxy(
    IShellUIHelper2* This);
void __RPC_STUB IShellUIHelper2_RunOnceShown_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_SkipRunOnce_Proxy(
    IShellUIHelper2* This);
void __RPC_STUB IShellUIHelper2_SkipRunOnce_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_CustomizeSettings_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL fSQM,
    VARIANT_BOOL fPhishing,
    BSTR bstrLocale);
void __RPC_STUB IShellUIHelper2_CustomizeSettings_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_SqmEnabled_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL *pfEnabled);
void __RPC_STUB IShellUIHelper2_SqmEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_PhishingEnabled_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL *pfEnabled);
void __RPC_STUB IShellUIHelper2_PhishingEnabled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_BrandImageUri_Proxy(
    IShellUIHelper2* This,
    BSTR *pbstrUri);
void __RPC_STUB IShellUIHelper2_BrandImageUri_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_SkipTabsWelcome_Proxy(
    IShellUIHelper2* This);
void __RPC_STUB IShellUIHelper2_SkipTabsWelcome_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_DiagnoseConnection_Proxy(
    IShellUIHelper2* This);
void __RPC_STUB IShellUIHelper2_DiagnoseConnection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_CustomizeClearType_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL fSet);
void __RPC_STUB IShellUIHelper2_CustomizeClearType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_IsSearchProviderInstalled_Proxy(
    IShellUIHelper2* This,
    BSTR URL,
    DWORD *pdwResult);
void __RPC_STUB IShellUIHelper2_IsSearchProviderInstalled_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_IsSearchMigrated_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL *pfMigrated);
void __RPC_STUB IShellUIHelper2_IsSearchMigrated_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_DefaultSearchProvider_Proxy(
    IShellUIHelper2* This,
    BSTR *pbstrName);
void __RPC_STUB IShellUIHelper2_DefaultSearchProvider_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_RunOnceRequiredSettingsComplete_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL fComplete);
void __RPC_STUB IShellUIHelper2_RunOnceRequiredSettingsComplete_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_RunOnceHasShown_Proxy(
    IShellUIHelper2* This,
    VARIANT_BOOL *pfShown);
void __RPC_STUB IShellUIHelper2_RunOnceHasShown_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellUIHelper2_SearchGuideUrl_Proxy(
    IShellUIHelper2* This,
    BSTR *pbstrUrl);
void __RPC_STUB IShellUIHelper2_SearchGuideUrl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellUIHelper2_INTERFACE_DEFINED__ */

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

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

/*****************************************************************************
 * 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_VTBL DShellNameSpaceEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define DShellNameSpaceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define DShellNameSpaceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define DShellNameSpaceEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define DShellNameSpaceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define DShellNameSpaceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define DShellNameSpaceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define DShellNameSpaceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#endif

#endif

#endif  /* __DShellNameSpaceEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * 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_VTBL IShellFavoritesNameSpaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellFavoritesNameSpace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IShellFavoritesNameSpace_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IShellFavoritesNameSpace_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IShellFavoritesNameSpace_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IShellFavoritesNameSpace_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IShellFavoritesNameSpace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IShellFavoritesNameSpace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IShellFavoritesNameSpace methods ***/
#define IShellFavoritesNameSpace_MoveSelectionUp(This) (This)->lpVtbl->MoveSelectionUp(This)
#define IShellFavoritesNameSpace_MoveSelectionDown(This) (This)->lpVtbl->MoveSelectionDown(This)
#define IShellFavoritesNameSpace_ResetSort(This) (This)->lpVtbl->ResetSort(This)
#define IShellFavoritesNameSpace_NewFolder(This) (This)->lpVtbl->NewFolder(This)
#define IShellFavoritesNameSpace_Synchronize(This) (This)->lpVtbl->Synchronize(This)
#define IShellFavoritesNameSpace_Import(This) (This)->lpVtbl->Import(This)
#define IShellFavoritesNameSpace_Export(This) (This)->lpVtbl->Export(This)
#define IShellFavoritesNameSpace_InvokeContextMenuCommand(This,strCommand) (This)->lpVtbl->InvokeContextMenuCommand(This,strCommand)
#define IShellFavoritesNameSpace_MoveSelectionTo(This) (This)->lpVtbl->MoveSelectionTo(This)
#define IShellFavoritesNameSpace_get_SubscriptionsEnabled(This,pBool) (This)->lpVtbl->get_SubscriptionsEnabled(This,pBool)
#define IShellFavoritesNameSpace_CreateSubscriptionForSelection(This,pBool) (This)->lpVtbl->CreateSubscriptionForSelection(This,pBool)
#define IShellFavoritesNameSpace_DeleteSubscriptionForSelection(This,pBool) (This)->lpVtbl->DeleteSubscriptionForSelection(This,pBool)
#define IShellFavoritesNameSpace_SetRoot(This,bstrFullPath) (This)->lpVtbl->SetRoot(This,bstrFullPath)
#endif

#endif

HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_MoveSelectionUp_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionUp_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_MoveSelectionDown_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionDown_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_ResetSort_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_ResetSort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_NewFolder_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_NewFolder_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_Synchronize_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Synchronize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_Import_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Import_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_Export_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_Export_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_InvokeContextMenuCommand_Proxy(
    IShellFavoritesNameSpace* This,
    BSTR strCommand);
void __RPC_STUB IShellFavoritesNameSpace_InvokeContextMenuCommand_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_MoveSelectionTo_Proxy(
    IShellFavoritesNameSpace* This);
void __RPC_STUB IShellFavoritesNameSpace_MoveSelectionTo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellFavoritesNameSpace_CreateSubscriptionForSelection_Proxy(
    IShellFavoritesNameSpace* This,
    VARIANT_BOOL *pBool);
void __RPC_STUB IShellFavoritesNameSpace_CreateSubscriptionForSelection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellFavoritesNameSpace_DeleteSubscriptionForSelection_Proxy(
    IShellFavoritesNameSpace* This,
    VARIANT_BOOL *pBool);
void __RPC_STUB IShellFavoritesNameSpace_DeleteSubscriptionForSelection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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(
        ULONG *pdwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_Flags(
        ULONG pdwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_TVFlags(
        ULONG dwFlags) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_TVFlags(
        ULONG *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,
        ULONG *pdwFlags);

    HRESULT (STDMETHODCALLTYPE *put_Flags)(
        IShellNameSpace* This,
        ULONG pdwFlags);

    HRESULT (STDMETHODCALLTYPE *put_TVFlags)(
        IShellNameSpace* This,
        ULONG dwFlags);

    HRESULT (STDMETHODCALLTYPE *get_TVFlags)(
        IShellNameSpace* This,
        ULONG *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_VTBL IShellNameSpaceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IShellNameSpace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IShellNameSpace_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IShellNameSpace_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IShellNameSpace_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IShellNameSpace_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IShellNameSpace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IShellNameSpace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IShellFavoritesNameSpace methods ***/
#define IShellNameSpace_MoveSelectionUp(This) (This)->lpVtbl->MoveSelectionUp(This)
#define IShellNameSpace_MoveSelectionDown(This) (This)->lpVtbl->MoveSelectionDown(This)
#define IShellNameSpace_ResetSort(This) (This)->lpVtbl->ResetSort(This)
#define IShellNameSpace_NewFolder(This) (This)->lpVtbl->NewFolder(This)
#define IShellNameSpace_Synchronize(This) (This)->lpVtbl->Synchronize(This)
#define IShellNameSpace_Import(This) (This)->lpVtbl->Import(This)
#define IShellNameSpace_Export(This) (This)->lpVtbl->Export(This)
#define IShellNameSpace_InvokeContextMenuCommand(This,strCommand) (This)->lpVtbl->InvokeContextMenuCommand(This,strCommand)
#define IShellNameSpace_MoveSelectionTo(This) (This)->lpVtbl->MoveSelectionTo(This)
#define IShellNameSpace_get_SubscriptionsEnabled(This,pBool) (This)->lpVtbl->get_SubscriptionsEnabled(This,pBool)
#define IShellNameSpace_CreateSubscriptionForSelection(This,pBool) (This)->lpVtbl->CreateSubscriptionForSelection(This,pBool)
#define IShellNameSpace_DeleteSubscriptionForSelection(This,pBool) (This)->lpVtbl->DeleteSubscriptionForSelection(This,pBool)
#define IShellNameSpace_SetRoot(This,bstrFullPath) (This)->lpVtbl->SetRoot(This,bstrFullPath)
/*** IShellNameSpace methods ***/
#define IShellNameSpace_get_EnumOptions(This,pgrfEnumFlags) (This)->lpVtbl->get_EnumOptions(This,pgrfEnumFlags)
#define IShellNameSpace_put_EnumOptions(This,pgrfEnumFlags) (This)->lpVtbl->put_EnumOptions(This,pgrfEnumFlags)
#define IShellNameSpace_get_SelectedItem(This,pItem) (This)->lpVtbl->get_SelectedItem(This,pItem)
#define IShellNameSpace_put_SelectedItem(This,pItem) (This)->lpVtbl->put_SelectedItem(This,pItem)
#define IShellNameSpace_get_Root(This,pvar) (This)->lpVtbl->get_Root(This,pvar)
#define IShellNameSpace_put_Root(This,pvar) (This)->lpVtbl->put_Root(This,pvar)
#define IShellNameSpace_get_Depth(This,piDepth) (This)->lpVtbl->get_Depth(This,piDepth)
#define IShellNameSpace_put_Depth(This,piDepth) (This)->lpVtbl->put_Depth(This,piDepth)
#define IShellNameSpace_get_Mode(This,puMode) (This)->lpVtbl->get_Mode(This,puMode)
#define IShellNameSpace_put_Mode(This,puMode) (This)->lpVtbl->put_Mode(This,puMode)
#define IShellNameSpace_get_Flags(This,pdwFlags) (This)->lpVtbl->get_Flags(This,pdwFlags)
#define IShellNameSpace_put_Flags(This,pdwFlags) (This)->lpVtbl->put_Flags(This,pdwFlags)
#define IShellNameSpace_put_TVFlags(This,dwFlags) (This)->lpVtbl->put_TVFlags(This,dwFlags)
#define IShellNameSpace_get_TVFlags(This,dwFlags) (This)->lpVtbl->get_TVFlags(This,dwFlags)
#define IShellNameSpace_get_Columns(This,bstrColumns) (This)->lpVtbl->get_Columns(This,bstrColumns)
#define IShellNameSpace_put_Columns(This,bstrColumns) (This)->lpVtbl->put_Columns(This,bstrColumns)
#define IShellNameSpace_get_CountViewTypes(This,piTypes) (This)->lpVtbl->get_CountViewTypes(This,piTypes)
#define IShellNameSpace_SetViewType(This,iType) (This)->lpVtbl->SetViewType(This,iType)
#define IShellNameSpace_SelectedItems(This,ppid) (This)->lpVtbl->SelectedItems(This,ppid)
#define IShellNameSpace_Expand(This,var,iDepth) (This)->lpVtbl->Expand(This,var,iDepth)
#define IShellNameSpace_UnselectAll(This) (This)->lpVtbl->UnselectAll(This)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellNameSpace_get_Flags_Proxy(
    IShellNameSpace* This,
    ULONG *pdwFlags);
void __RPC_STUB IShellNameSpace_get_Flags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellNameSpace_put_Flags_Proxy(
    IShellNameSpace* This,
    ULONG pdwFlags);
void __RPC_STUB IShellNameSpace_put_Flags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellNameSpace_put_TVFlags_Proxy(
    IShellNameSpace* This,
    ULONG dwFlags);
void __RPC_STUB IShellNameSpace_put_TVFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellNameSpace_get_TVFlags_Proxy(
    IShellNameSpace* This,
    ULONG *dwFlags);
void __RPC_STUB IShellNameSpace_get_TVFlags_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellNameSpace_SetViewType_Proxy(
    IShellNameSpace* This,
    int iType);
void __RPC_STUB IShellNameSpace_SetViewType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IShellNameSpace_SelectedItems_Proxy(
    IShellNameSpace* This,
    IDispatch **ppid);
void __RPC_STUB IShellNameSpace_SelectedItems_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IShellNameSpace_UnselectAll_Proxy(
    IShellNameSpace* This);
void __RPC_STUB IShellNameSpace_UnselectAll_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IShellNameSpace_INTERFACE_DEFINED__ */

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

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

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

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

/*****************************************************************************
 * 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_VTBL IScriptErrorListVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IScriptErrorList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IScriptErrorList_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IScriptErrorList_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IScriptErrorList_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IScriptErrorList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IScriptErrorList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IScriptErrorList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IScriptErrorList methods ***/
#define IScriptErrorList_advanceError(This) (This)->lpVtbl->advanceError(This)
#define IScriptErrorList_retreatError(This) (This)->lpVtbl->retreatError(This)
#define IScriptErrorList_canAdvanceError(This,pfCanAdvance) (This)->lpVtbl->canAdvanceError(This,pfCanAdvance)
#define IScriptErrorList_canRetreatError(This,pfCanRetreat) (This)->lpVtbl->canRetreatError(This,pfCanRetreat)
#define IScriptErrorList_getErrorLine(This,plLine) (This)->lpVtbl->getErrorLine(This,plLine)
#define IScriptErrorList_getErrorChar(This,plChar) (This)->lpVtbl->getErrorChar(This,plChar)
#define IScriptErrorList_getErrorCode(This,plCode) (This)->lpVtbl->getErrorCode(This,plCode)
#define IScriptErrorList_getErrorMsg(This,pstr) (This)->lpVtbl->getErrorMsg(This,pstr)
#define IScriptErrorList_getErrorUrl(This,pstr) (This)->lpVtbl->getErrorUrl(This,pstr)
#define IScriptErrorList_getAlwaysShowLockState(This,pfAlwaysShowLocked) (This)->lpVtbl->getAlwaysShowLockState(This,pfAlwaysShowLocked)
#define IScriptErrorList_getDetailsPaneOpen(This,pfDetailsPaneOpen) (This)->lpVtbl->getDetailsPaneOpen(This,pfDetailsPaneOpen)
#define IScriptErrorList_setDetailsPaneOpen(This,fDetailsPaneOpen) (This)->lpVtbl->setDetailsPaneOpen(This,fDetailsPaneOpen)
#define IScriptErrorList_getPerErrorDisplay(This,pfPerErrorDisplay) (This)->lpVtbl->getPerErrorDisplay(This,pfPerErrorDisplay)
#define IScriptErrorList_setPerErrorDisplay(This,fPerErrorDisplay) (This)->lpVtbl->setPerErrorDisplay(This,fPerErrorDisplay)
#endif

#endif

HRESULT STDMETHODCALLTYPE IScriptErrorList_advanceError_Proxy(
    IScriptErrorList* This);
void __RPC_STUB IScriptErrorList_advanceError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_retreatError_Proxy(
    IScriptErrorList* This);
void __RPC_STUB IScriptErrorList_retreatError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_canAdvanceError_Proxy(
    IScriptErrorList* This,
    LONG *pfCanAdvance);
void __RPC_STUB IScriptErrorList_canAdvanceError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_canRetreatError_Proxy(
    IScriptErrorList* This,
    LONG *pfCanRetreat);
void __RPC_STUB IScriptErrorList_canRetreatError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getErrorLine_Proxy(
    IScriptErrorList* This,
    LONG *plLine);
void __RPC_STUB IScriptErrorList_getErrorLine_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getErrorChar_Proxy(
    IScriptErrorList* This,
    LONG *plChar);
void __RPC_STUB IScriptErrorList_getErrorChar_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getErrorCode_Proxy(
    IScriptErrorList* This,
    LONG *plCode);
void __RPC_STUB IScriptErrorList_getErrorCode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getErrorMsg_Proxy(
    IScriptErrorList* This,
    BSTR *pstr);
void __RPC_STUB IScriptErrorList_getErrorMsg_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getErrorUrl_Proxy(
    IScriptErrorList* This,
    BSTR *pstr);
void __RPC_STUB IScriptErrorList_getErrorUrl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getAlwaysShowLockState_Proxy(
    IScriptErrorList* This,
    LONG *pfAlwaysShowLocked);
void __RPC_STUB IScriptErrorList_getAlwaysShowLockState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getDetailsPaneOpen_Proxy(
    IScriptErrorList* This,
    LONG *pfDetailsPaneOpen);
void __RPC_STUB IScriptErrorList_getDetailsPaneOpen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_setDetailsPaneOpen_Proxy(
    IScriptErrorList* This,
    LONG fDetailsPaneOpen);
void __RPC_STUB IScriptErrorList_setDetailsPaneOpen_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IScriptErrorList_getPerErrorDisplay_Proxy(
    IScriptErrorList* This,
    LONG *pfPerErrorDisplay);
void __RPC_STUB IScriptErrorList_getPerErrorDisplay_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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);

/*****************************************************************************
 * 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_VTBL ISearchVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISearch_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISearch_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISearch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISearch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISearch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISearch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISearch methods ***/
#define ISearch_get_Title(This,pbstrTitle) (This)->lpVtbl->get_Title(This,pbstrTitle)
#define ISearch_get_Id(This,pbstrId) (This)->lpVtbl->get_Id(This,pbstrId)
#define ISearch_get_URL(This,pbstrUrl) (This)->lpVtbl->get_URL(This,pbstrUrl)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL ISearchesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearches_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISearches_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISearches_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISearches_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISearches_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISearches_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISearches_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISearches methods ***/
#define ISearches_get_Count(This,plCount) (This)->lpVtbl->get_Count(This,plCount)
#define ISearches_get_Default(This,pbstrDefault) (This)->lpVtbl->get_Default(This,pbstrDefault)
#define ISearches_Item(This,index,ppid) (This)->lpVtbl->Item(This,index,ppid)
#define ISearches__NewEnum(This,ppunk) (This)->lpVtbl->_NewEnum(This,ppunk)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL ISearchAssistantOCVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISearchAssistantOC_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISearchAssistantOC_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISearchAssistantOC_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISearchAssistantOC_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISearchAssistantOC_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISearchAssistantOC_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC_AddNextMenuItem(This,bstrText,idItem) (This)->lpVtbl->AddNextMenuItem(This,bstrText,idItem)
#define ISearchAssistantOC_SetDefaultSearchUrl(This,bstrUrl) (This)->lpVtbl->SetDefaultSearchUrl(This,bstrUrl)
#define ISearchAssistantOC_NavigateToDefaultSearch(This) (This)->lpVtbl->NavigateToDefaultSearch(This)
#define ISearchAssistantOC_IsRestricted(This,bstrGuid,pVal) (This)->lpVtbl->IsRestricted(This,bstrGuid,pVal)
#define ISearchAssistantOC_get_ShellFeaturesEnabled(This,pVal) (This)->lpVtbl->get_ShellFeaturesEnabled(This,pVal)
#define ISearchAssistantOC_get_SearchAssistantDefault(This,pVal) (This)->lpVtbl->get_SearchAssistantDefault(This,pVal)
#define ISearchAssistantOC_get_Searches(This,ppid) (This)->lpVtbl->get_Searches(This,ppid)
#define ISearchAssistantOC_get_InWebFolder(This,pVal) (This)->lpVtbl->get_InWebFolder(This,pVal)
#define ISearchAssistantOC_PutProperty(This,bPerLocale,bstrName,bstrValue) (This)->lpVtbl->PutProperty(This,bPerLocale,bstrName,bstrValue)
#define ISearchAssistantOC_GetProperty(This,bPerLocale,bstrName,pbstrValue) (This)->lpVtbl->GetProperty(This,bPerLocale,bstrName,pbstrValue)
#define ISearchAssistantOC_put_EventHandled(This,rhs) (This)->lpVtbl->put_EventHandled(This,rhs)
#define ISearchAssistantOC_ResetNextMenu(This) (This)->lpVtbl->ResetNextMenu(This)
#define ISearchAssistantOC_FindOnWeb(This) (This)->lpVtbl->FindOnWeb(This)
#define ISearchAssistantOC_FindFilesOrFolders(This) (This)->lpVtbl->FindFilesOrFolders(This)
#define ISearchAssistantOC_FindComputer(This) (This)->lpVtbl->FindComputer(This)
#define ISearchAssistantOC_FindPrinter(This) (This)->lpVtbl->FindPrinter(This)
#define ISearchAssistantOC_FindPeople(This) (This)->lpVtbl->FindPeople(This)
#define ISearchAssistantOC_GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue) (This)->lpVtbl->GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue)
#define ISearchAssistantOC_NotifySearchSettingsChanged(This) (This)->lpVtbl->NotifySearchSettingsChanged(This)
#define ISearchAssistantOC_put_ASProvider(This,pProvider) (This)->lpVtbl->put_ASProvider(This,pProvider)
#define ISearchAssistantOC_get_ASProvider(This,pProvider) (This)->lpVtbl->get_ASProvider(This,pProvider)
#define ISearchAssistantOC_put_ASSetting(This,pSetting) (This)->lpVtbl->put_ASSetting(This,pSetting)
#define ISearchAssistantOC_get_ASSetting(This,pSetting) (This)->lpVtbl->get_ASSetting(This,pSetting)
#define ISearchAssistantOC_NETDetectNextNavigate(This) (This)->lpVtbl->NETDetectNextNavigate(This)
#define ISearchAssistantOC_PutFindText(This,FindText) (This)->lpVtbl->PutFindText(This,FindText)
#define ISearchAssistantOC_get_Version(This,pVersion) (This)->lpVtbl->get_Version(This,pVersion)
#define ISearchAssistantOC_EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult) (This)->lpVtbl->EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE ISearchAssistantOC_SetDefaultSearchUrl_Proxy(
    ISearchAssistantOC* This,
    BSTR bstrUrl);
void __RPC_STUB ISearchAssistantOC_SetDefaultSearchUrl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_NavigateToDefaultSearch_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NavigateToDefaultSearch_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE ISearchAssistantOC_ResetNextMenu_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_ResetNextMenu_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_FindOnWeb_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindOnWeb_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_FindFilesOrFolders_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindFilesOrFolders_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_FindComputer_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindComputer_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_FindPrinter_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindPrinter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_FindPeople_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_FindPeople_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE ISearchAssistantOC_NotifySearchSettingsChanged_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NotifySearchSettingsChanged_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE ISearchAssistantOC_NETDetectNextNavigate_Proxy(
    ISearchAssistantOC* This);
void __RPC_STUB ISearchAssistantOC_NETDetectNextNavigate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISearchAssistantOC_PutFindText_Proxy(
    ISearchAssistantOC* This,
    BSTR FindText);
void __RPC_STUB ISearchAssistantOC_PutFindText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL ISearchAssistantOC2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISearchAssistantOC2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISearchAssistantOC2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISearchAssistantOC2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISearchAssistantOC2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISearchAssistantOC2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISearchAssistantOC2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC2_AddNextMenuItem(This,bstrText,idItem) (This)->lpVtbl->AddNextMenuItem(This,bstrText,idItem)
#define ISearchAssistantOC2_SetDefaultSearchUrl(This,bstrUrl) (This)->lpVtbl->SetDefaultSearchUrl(This,bstrUrl)
#define ISearchAssistantOC2_NavigateToDefaultSearch(This) (This)->lpVtbl->NavigateToDefaultSearch(This)
#define ISearchAssistantOC2_IsRestricted(This,bstrGuid,pVal) (This)->lpVtbl->IsRestricted(This,bstrGuid,pVal)
#define ISearchAssistantOC2_get_ShellFeaturesEnabled(This,pVal) (This)->lpVtbl->get_ShellFeaturesEnabled(This,pVal)
#define ISearchAssistantOC2_get_SearchAssistantDefault(This,pVal) (This)->lpVtbl->get_SearchAssistantDefault(This,pVal)
#define ISearchAssistantOC2_get_Searches(This,ppid) (This)->lpVtbl->get_Searches(This,ppid)
#define ISearchAssistantOC2_get_InWebFolder(This,pVal) (This)->lpVtbl->get_InWebFolder(This,pVal)
#define ISearchAssistantOC2_PutProperty(This,bPerLocale,bstrName,bstrValue) (This)->lpVtbl->PutProperty(This,bPerLocale,bstrName,bstrValue)
#define ISearchAssistantOC2_GetProperty(This,bPerLocale,bstrName,pbstrValue) (This)->lpVtbl->GetProperty(This,bPerLocale,bstrName,pbstrValue)
#define ISearchAssistantOC2_put_EventHandled(This,rhs) (This)->lpVtbl->put_EventHandled(This,rhs)
#define ISearchAssistantOC2_ResetNextMenu(This) (This)->lpVtbl->ResetNextMenu(This)
#define ISearchAssistantOC2_FindOnWeb(This) (This)->lpVtbl->FindOnWeb(This)
#define ISearchAssistantOC2_FindFilesOrFolders(This) (This)->lpVtbl->FindFilesOrFolders(This)
#define ISearchAssistantOC2_FindComputer(This) (This)->lpVtbl->FindComputer(This)
#define ISearchAssistantOC2_FindPrinter(This) (This)->lpVtbl->FindPrinter(This)
#define ISearchAssistantOC2_FindPeople(This) (This)->lpVtbl->FindPeople(This)
#define ISearchAssistantOC2_GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue) (This)->lpVtbl->GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue)
#define ISearchAssistantOC2_NotifySearchSettingsChanged(This) (This)->lpVtbl->NotifySearchSettingsChanged(This)
#define ISearchAssistantOC2_put_ASProvider(This,pProvider) (This)->lpVtbl->put_ASProvider(This,pProvider)
#define ISearchAssistantOC2_get_ASProvider(This,pProvider) (This)->lpVtbl->get_ASProvider(This,pProvider)
#define ISearchAssistantOC2_put_ASSetting(This,pSetting) (This)->lpVtbl->put_ASSetting(This,pSetting)
#define ISearchAssistantOC2_get_ASSetting(This,pSetting) (This)->lpVtbl->get_ASSetting(This,pSetting)
#define ISearchAssistantOC2_NETDetectNextNavigate(This) (This)->lpVtbl->NETDetectNextNavigate(This)
#define ISearchAssistantOC2_PutFindText(This,FindText) (This)->lpVtbl->PutFindText(This,FindText)
#define ISearchAssistantOC2_get_Version(This,pVersion) (This)->lpVtbl->get_Version(This,pVersion)
#define ISearchAssistantOC2_EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult) (This)->lpVtbl->EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult)
/*** ISearchAssistantOC2 methods ***/
#define ISearchAssistantOC2_get_ShowFindPrinter(This,pbShowFindPrinter) (This)->lpVtbl->get_ShowFindPrinter(This,pbShowFindPrinter)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * 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_VTBL ISearchAssistantOC3Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISearchAssistantOC3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISearchAssistantOC3_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISearchAssistantOC3_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISearchAssistantOC3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISearchAssistantOC3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISearchAssistantOC3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISearchAssistantOC3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISearchAssistantOC methods ***/
#define ISearchAssistantOC3_AddNextMenuItem(This,bstrText,idItem) (This)->lpVtbl->AddNextMenuItem(This,bstrText,idItem)
#define ISearchAssistantOC3_SetDefaultSearchUrl(This,bstrUrl) (This)->lpVtbl->SetDefaultSearchUrl(This,bstrUrl)
#define ISearchAssistantOC3_NavigateToDefaultSearch(This) (This)->lpVtbl->NavigateToDefaultSearch(This)
#define ISearchAssistantOC3_IsRestricted(This,bstrGuid,pVal) (This)->lpVtbl->IsRestricted(This,bstrGuid,pVal)
#define ISearchAssistantOC3_get_ShellFeaturesEnabled(This,pVal) (This)->lpVtbl->get_ShellFeaturesEnabled(This,pVal)
#define ISearchAssistantOC3_get_SearchAssistantDefault(This,pVal) (This)->lpVtbl->get_SearchAssistantDefault(This,pVal)
#define ISearchAssistantOC3_get_Searches(This,ppid) (This)->lpVtbl->get_Searches(This,ppid)
#define ISearchAssistantOC3_get_InWebFolder(This,pVal) (This)->lpVtbl->get_InWebFolder(This,pVal)
#define ISearchAssistantOC3_PutProperty(This,bPerLocale,bstrName,bstrValue) (This)->lpVtbl->PutProperty(This,bPerLocale,bstrName,bstrValue)
#define ISearchAssistantOC3_GetProperty(This,bPerLocale,bstrName,pbstrValue) (This)->lpVtbl->GetProperty(This,bPerLocale,bstrName,pbstrValue)
#define ISearchAssistantOC3_put_EventHandled(This,rhs) (This)->lpVtbl->put_EventHandled(This,rhs)
#define ISearchAssistantOC3_ResetNextMenu(This) (This)->lpVtbl->ResetNextMenu(This)
#define ISearchAssistantOC3_FindOnWeb(This) (This)->lpVtbl->FindOnWeb(This)
#define ISearchAssistantOC3_FindFilesOrFolders(This) (This)->lpVtbl->FindFilesOrFolders(This)
#define ISearchAssistantOC3_FindComputer(This) (This)->lpVtbl->FindComputer(This)
#define ISearchAssistantOC3_FindPrinter(This) (This)->lpVtbl->FindPrinter(This)
#define ISearchAssistantOC3_FindPeople(This) (This)->lpVtbl->FindPeople(This)
#define ISearchAssistantOC3_GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue) (This)->lpVtbl->GetSearchAssistantURL(This,bSubstitute,bCustomize,pbstrValue)
#define ISearchAssistantOC3_NotifySearchSettingsChanged(This) (This)->lpVtbl->NotifySearchSettingsChanged(This)
#define ISearchAssistantOC3_put_ASProvider(This,pProvider) (This)->lpVtbl->put_ASProvider(This,pProvider)
#define ISearchAssistantOC3_get_ASProvider(This,pProvider) (This)->lpVtbl->get_ASProvider(This,pProvider)
#define ISearchAssistantOC3_put_ASSetting(This,pSetting) (This)->lpVtbl->put_ASSetting(This,pSetting)
#define ISearchAssistantOC3_get_ASSetting(This,pSetting) (This)->lpVtbl->get_ASSetting(This,pSetting)
#define ISearchAssistantOC3_NETDetectNextNavigate(This) (This)->lpVtbl->NETDetectNextNavigate(This)
#define ISearchAssistantOC3_PutFindText(This,FindText) (This)->lpVtbl->PutFindText(This,FindText)
#define ISearchAssistantOC3_get_Version(This,pVersion) (This)->lpVtbl->get_Version(This,pVersion)
#define ISearchAssistantOC3_EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult) (This)->lpVtbl->EncodeString(This,bstrValue,bstrCharSet,bUseUTF8,pbstrResult)
/*** ISearchAssistantOC2 methods ***/
#define ISearchAssistantOC3_get_ShowFindPrinter(This,pbShowFindPrinter) (This)->lpVtbl->get_ShowFindPrinter(This,pbShowFindPrinter)
/*** ISearchAssistantOC3 methods ***/
#define ISearchAssistantOC3_get_SearchCompanionAvailable(This,pbAvailable) (This)->lpVtbl->get_SearchCompanionAvailable(This,pbAvailable)
#define ISearchAssistantOC3_put_UseSearchCompanion(This,pbUseSC) (This)->lpVtbl->put_UseSearchCompanion(This,pbUseSC)
#define ISearchAssistantOC3_get_UseSearchCompanion(This,pbUseSC) (This)->lpVtbl->get_UseSearchCompanion(This,pbUseSC)
#endif

#endif

HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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 STDMETHODCALLTYPE 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__ */

/*****************************************************************************
 * _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_VTBL _SearchAssistantEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define _SearchAssistantEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define _SearchAssistantEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define _SearchAssistantEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define _SearchAssistantEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define _SearchAssistantEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define _SearchAssistantEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define _SearchAssistantEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#endif

#endif

#endif  /* ___SearchAssistantEvents_DISPINTERFACE_DEFINED__ */

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

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

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

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

/* Begin additional prototypes for all interfaces */

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

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __WIDL_EXDISP_H */
