/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: SHDocVw */

#ifndef _SHDocVw_H_
#define _SHDocVw_H_

DEFINE_GUID(LIBID_SHDocVw,0xEAB22AC0,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);

typedef enum BrowserNavConstants {
    navOpenInNewWindow = 1,
    navNoHistory = 2,
    navNoReadFromCache = 4,
    navNoWriteToCache = 8
} 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);

/* Definition of interface: IWebBrowser */
#undef INTERFACE
#define INTERFACE IWebBrowser

DECLARE_INTERFACE_(IWebBrowser, IDispatch)
{
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IWebBrowser methods */
    STDMETHOD(GoBack)(THIS) PURE;
    STDMETHOD(GoForward)(THIS) PURE;
    STDMETHOD(GoHome)(THIS) PURE;
    STDMETHOD(GoSearch)(THIS) PURE;
    STDMETHOD(Navigate)(THIS_ BSTR URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers) PURE;
    STDMETHOD(Refresh)(THIS) PURE;
    STDMETHOD(Refresh2)(THIS_ VARIANT FAR* Level) PURE;
    STDMETHOD(Stop)(THIS) PURE;
    STDMETHOD(get_Application)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Container)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Document)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
    STDMETHOD(get_Type)(THIS_ BSTR FAR* pbstrType) PURE;
    STDMETHOD(get_Left)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Left)(THIS_ long Left) PURE;
    STDMETHOD(get_Top)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Top)(THIS_ long Top) PURE;
    STDMETHOD(get_Width)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Width)(THIS_ long Width) PURE;
    STDMETHOD(get_Height)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Height)(THIS_ long Height) PURE;
    STDMETHOD(get_LocationName)(THIS_ BSTR FAR* pbstrLocationName) PURE;
    STDMETHOD(get_LocationURL)(THIS_ BSTR FAR* pbstrLocationURL) PURE;
    STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
};

DEFINE_GUID(DIID_DWebBrowserEvents,0xEAB22AC2,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);

/* Definition of dispatch interface: DWebBrowserEvents */
#undef INTERFACE
#define INTERFACE DWebBrowserEvents

DECLARE_INTERFACE_(DWebBrowserEvents, IDispatch)
{
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* DWebBrowserEvents methods:
    void BeforeNavigate(BSTR URL, long Flags, BSTR TargetFrameName, VARIANT FAR* PostData, BSTR Headers, VARIANT_BOOL FAR* Cancel);
    void NavigateComplete(BSTR URL);
    void StatusTextChange(BSTR Text);
    void ProgressChange(long Progress, long ProgressMax);
    void DownloadComplete(void);
    void CommandStateChange(long Command, VARIANT_BOOL Enable);
    void DownloadBegin(void);
    void NewWindow(BSTR URL, long Flags, BSTR TargetFrameName, VARIANT FAR* PostData, BSTR Headers, VARIANT_BOOL FAR* Processed);
    void TitleChange(BSTR Text);
    void FrameBeforeNavigate(BSTR URL, long Flags, BSTR TargetFrameName, VARIANT FAR* PostData, BSTR Headers, VARIANT_BOOL FAR* Cancel);
    void FrameNavigateComplete(BSTR URL);
    void FrameNewWindow(BSTR URL, long Flags, BSTR TargetFrameName, VARIANT FAR* PostData, BSTR Headers, VARIANT_BOOL FAR* Processed);
    void Quit(VARIANT_BOOL FAR* Cancel);
    void WindowMove(void);
    void WindowResize(void);
    void WindowActivate(void);
    void PropertyChange(BSTR szProperty);
    */
};

typedef enum CommandStateChangeConstants {
    CSC_UPDATECOMMANDS = -1,
    CSC_NAVIGATEFORWARD = 1,
    CSC_NAVIGATEBACK = 2
} CommandStateChangeConstants;

DEFINE_GUID(CLSID_WebBrowser,0xEAB22AC3,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);

#ifdef __cplusplus
class WebBrowser;
#endif

DEFINE_GUID(IID_IWebBrowserApp,0x0002DF05,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);

/* Definition of interface: IWebBrowserApp */
#undef INTERFACE
#define INTERFACE IWebBrowserApp

DECLARE_INTERFACE_(IWebBrowserApp, IWebBrowser)
{
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;

    /* IWebBrowser methods */
    STDMETHOD(GoBack)(THIS) PURE;
    STDMETHOD(GoForward)(THIS) PURE;
    STDMETHOD(GoHome)(THIS) PURE;
    STDMETHOD(GoSearch)(THIS) PURE;
    STDMETHOD(Navigate)(THIS_ BSTR URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers) PURE;
    STDMETHOD(Refresh)(THIS) PURE;
    STDMETHOD(Refresh2)(THIS_ VARIANT FAR* Level) PURE;
    STDMETHOD(Stop)(THIS) PURE;
    STDMETHOD(get_Application)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Container)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_Document)(THIS_ IDispatch * FAR* ppDisp) PURE;
    STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
    STDMETHOD(get_Type)(THIS_ BSTR FAR* pbstrType) PURE;
    STDMETHOD(get_Left)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Left)(THIS_ long Left) PURE;
    STDMETHOD(get_Top)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Top)(THIS_ long Top) PURE;
    STDMETHOD(get_Width)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Width)(THIS_ long Width) PURE;
    STDMETHOD(get_Height)(THIS_ long FAR* pl) PURE;
    STDMETHOD(put_Height)(THIS_ long Height) PURE;
    STDMETHOD(get_LocationName)(THIS_ BSTR FAR* pbstrLocationName) PURE;
    STDMETHOD(get_LocationURL)(THIS_ BSTR FAR* pbstrLocationURL) PURE;
    STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
#endif

    /* IWebBrowserApp methods */
    STDMETHOD(Quit)(THIS) PURE;
    STDMETHOD(ClientToWindow)(THIS_ int FAR* pcx, int FAR* pcy) PURE;
    STDMETHOD(PutProperty)(THIS_ BSTR szProperty, VARIANT vtValue) PURE;
    STDMETHOD(GetProperty)(THIS_ BSTR szProperty, VARIANT FAR* pvtValue) PURE;
    STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrName) PURE;
    STDMETHOD(get_HWND)(THIS_ long FAR* pHWND) PURE;
    STDMETHOD(get_FullName)(THIS_ BSTR FAR* pbstrFullName) PURE;
    STDMETHOD(get_Path)(THIS_ BSTR FAR* pbstrPath) PURE;
    STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
    STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL Value) PURE;
    STDMETHOD(get_StatusBar)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
    STDMETHOD(put_StatusBar)(THIS_ VARIANT_BOOL Value) PURE;
    STDMETHOD(get_StatusText)(THIS_ BSTR FAR* pbstr) PURE;
    STDMETHOD(put_StatusText)(THIS_ BSTR bstr) PURE;
    STDMETHOD(get_ToolBar)(THIS_ int FAR* pValue) PURE;
    STDMETHOD(put_ToolBar)(THIS_ int Value) PURE;
    STDMETHOD(get_MenuBar)(THIS_ VARIANT_BOOL FAR* Value) PURE;
    STDMETHOD(put_MenuBar)(THIS_ VARIANT_BOOL Value) PURE;
    STDMETHOD(get_FullScreen)(THIS_ VARIANT_BOOL FAR* pbFullScreen) PURE;
    STDMETHOD(put_FullScreen)(THIS_ VARIANT_BOOL bFullScreen) PURE;
};

DEFINE_GUID(CLSID_InternetExplorer,0x0002DF01,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);

#ifdef __cplusplus
class InternetExplorer;
#endif

#endif
