#include #include "exdispid.h" // // BUGBUG: headerfiles are screwy!!! // // Any changes (renames/additions/deletions) of IIDs, DIID, // or CLSIDs to this file needs to be reflected in nashsdk\inc\shlguid.w // //+------------------------------------------------------------------------- // // Microsoft Windows // Copyright 1995 - 1996 Microsoft Corporation. All Rights Reserved. // //-------------------------------------------------------------------------- //=--------------------------------------------------------------------------= // the libid for this type libray // [ uuid(EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B), helpstring("Microsoft Internet Controls"), // VB has a maximum limit for this helpstring! lcid(0x0000), version(1.0) ] library SHDocVw { // standard imports // importlib(STDOLE_TLB); // // IWebBrowser // [ uuid(EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B), helpstring("Web Browser interface"), helpcontext(0x0000), hidden, dual, odl ] interface IWebBrowser : IDispatch { // // Methods // [id(100), helpstring("Navigates to the previous item in the history list."), helpcontext(0x0000)] HRESULT GoBack(); [id(101), helpstring("Navigates to the next item in the history list."), helpcontext(0x0000)] HRESULT GoForward(); [id(102), helpstring("Go home/start page."), helpcontext(0x0000)] HRESULT GoHome(); [id(103), helpstring("Go Search Page."), helpcontext(0x0000)] HRESULT GoSearch(); [id(104), helpstring("Navigates to a URL or file."), helpcontext(0x0000)] HRESULT Navigate([in] BSTR URL, [in, optional] VARIANT * Flags, [in, optional] VARIANT * TargetFrameName, [in, optional] VARIANT * PostData, [in, optional] VARIANT * Headers); // Flags typedef [ uuid(14EE5380-A378-11cf-A731-00A0C9082637), helpstring("Constants for WebBrowser navigation flags") ] enum BrowserNavConstants { [helpstring("Open in new window")] navOpenInNewWindow = 0x0001, [helpstring("Exclude from history list")] navNoHistory = 0x0002, [helpstring("Don't read from cache")] navNoReadFromCache = 0x0004, [helpstring("Don't write from cache")] navNoWriteToCache = 0x0008, } BrowserNavConstants; [id(DISPID_REFRESH), helpstring("Refresh the currently viewed page."), helpcontext(0x0000)] HRESULT Refresh(); // The standard Refresh takes no parameters and we need some... use a new name [id(105), helpstring("Refresh the currently viewed page."), helpcontext(0x0000)] HRESULT Refresh2([in,optional] VARIANT * Level); // Level typedef [ uuid(C317C261-A991-11cf-A731-00A0C9082637), helpstring("Constants for Refresh") ] enum RefreshConstants { // must map to these in sdk\inc\docobj.h [helpstring("Refresh normal")] REFRESH_NORMAL = 0, //== OLECMDIDF_REFRESH_NORMAL [helpstring("Refresh if expired")] REFRESH_IFEXPIRED = 1, //== OLECMDIDF_REFRESH_IFEXPIRED [helpstring("Refresh completely")] REFRESH_COMPLETELY = 3 //== OLECMDIDF_REFRESH_COMPLETELY } RefreshConstants; [id(106), helpstring("Stops opening a file."), helpcontext(0x0000)] HRESULT Stop(); // // Properties // // Automation heirarchy... [id(200), propget, helpstring("Returns the application automation object if accessible, this automation object otherwise.."), helpcontext(0x0000)] HRESULT Application([out,retval] IDispatch** ppDisp); [id(201), propget, helpstring("Returns the automation object of the container/parent if one exists or this automation object."), helpcontext(0x0000)] HRESULT Parent([out,retval] IDispatch** ppDisp); [id(202), propget, helpstring("Returns the container/parent automation object, if any."), helpcontext(0x0000)] HRESULT Container([out,retval] IDispatch** ppDisp); [id(203), propget, helpstring("Returns the active Document automation object, if any."), helpcontext(0x0000)] HRESULT Document([out,retval] IDispatch** ppDisp); [id(204), propget, helpstring("Returns True if this is the top level object."), helpcontext(0x0000)] HRESULT TopLevelContainer([out, retval] boolean* pBool); [id(205), propget, helpstring("Returns the type of the contained document object."), helpcontext(0x0000)] HRESULT Type([out,retval] BSTR* pbstrType); // Window stuff... [id(206), propget, helpstring("The horizontal position (pixels) of the frame window relative to the screen/container."), helpcontext(0x0000)] HRESULT Left([out, retval] long *pl); [id(206), propput] HRESULT Left([in] long Left); [id(207), propget, helpstring("The vertical position (pixels) of the frame window relative to the screen/container."), helpcontext(0x0000)] HRESULT Top([out, retval] long *pl); [id(207), propput] HRESULT Top([in] long Top); [id(208), propget, helpstring("The horizontal dimension (pixels) of the frame window/object."), helpcontext(0x0000)] HRESULT Width([out, retval] long *pl); [id(208), propput] HRESULT Width([in] long Width); [id(209), propget, helpstring("The vertical dimension (pixels) of the frame window/object."), helpcontext(0x0000)] HRESULT Height([out, retval] long *pl); [id(209), propput] HRESULT Height([in] long Height); // WebBrowser stuff... [id(210), propget, helpstring("Gets the short (UI-friendly) name of the URL/file currently viewed."), helpcontext(0x0000)] HRESULT LocationName([out,retval] BSTR * pbstrLocationName); [id(211), propget, helpstring("Gets the full URL/path currently viewed."), helpcontext(0x0000)] HRESULT LocationURL([out,retval] BSTR * pbstrLocationURL); // Added a property to see if the viewer is currenly busy or not... [id(212), propget, helpstring("Query to see if something is still in progress."), helpcontext(0x0000)] HRESULT Busy([out,retval] boolean *pBool); }; // event interface for IWebBrowser controls ... // [ uuid(EAB22AC2-30C1-11CF-A7EB-0000C05BAE0B), helpstring("Event interface for Web Browser Control"), hidden ] dispinterface DWebBrowserEvents { properties: methods: [id(DISPID_BEFORENAVIGATE), helpstring("Fired when a new hyperlink is being navigated to."), helpcontext(0x0000)] void BeforeNavigate([in] BSTR URL, long Flags, BSTR TargetFrameName, VARIANT * PostData, BSTR Headers, [in, out]boolean * Cancel); [id(DISPID_NAVIGATECOMPLETE), helpstring("Fired when a new hyperlink is being navigated to."), helpcontext(0x0000)] void NavigateComplete([in] BSTR URL ); [id(DISPID_STATUSTEXTCHANGE), helpstring("Statusbar text changed."), helpcontext(0x0000)] void StatusTextChange([in]BSTR Text); [id(DISPID_PROGRESSCHANGE), helpstring("Fired when download progress is updated."), helpcontext(0x0000)] void ProgressChange([in] long Progress, [in] long ProgressMax); [id(DISPID_DOWNLOADCOMPLETE), helpstring("Download of page complete."), helpcontext(0x0000)] void DownloadComplete(); [id(DISPID_COMMANDSTATECHANGE), helpstring("The enabled state of a command changed"), helpcontext(0x0000)] void CommandStateChange([in] long Command, [in] boolean Enable); [id(DISPID_DOWNLOADBEGIN), helpstring("Download of a page started."), helpcontext(0x000)] void DownloadBegin(); [id(DISPID_NEWWINDOW), helpstring("Fired when a new window should be created."), helpcontext(0x0000)] void NewWindow([in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT * PostData, [in] BSTR Headers, [in,out] BOOLEAN * Processed); [id(DISPID_TITLECHANGE), helpstring("Document title changed."), helpcontext(0x0000)] void TitleChange([in]BSTR Text); [id(DISPID_FRAMEBEFORENAVIGATE), helpstring("Fired when a new hyperlink is being navigated to in a frame."), helpcontext(0x0000)] void FrameBeforeNavigate([in] BSTR URL, long Flags, BSTR TargetFrameName, VARIANT * PostData, BSTR Headers, [in, out]boolean * Cancel); [id(DISPID_FRAMENAVIGATECOMPLETE), helpstring("Fired when a new hyperlink is being navigated to in a frame."), helpcontext(0x0000)] void FrameNavigateComplete([in] BSTR URL ); [id(DISPID_FRAMENEWWINDOW), helpstring("Fired when a new window should be created."), helpcontext(0x0000)] void FrameNewWindow([in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT * PostData, [in] BSTR Headers, [in,out] BOOLEAN * Processed); // The following are IWebBrowserApp specific: // [id(DISPID_QUIT), helpstring("Fired when application is quiting."), helpcontext(0x0000)] void Quit([in, out] boolean * Cancel); [id(DISPID_WINDOWMOVE), helpstring("Fired when window has been moved."), helpcontext(0x0000)] void WindowMove(); [id(DISPID_WINDOWRESIZE), helpstring("Fired when window has been sized."), helpcontext(0x0000)] void WindowResize(); [id(DISPID_WINDOWACTIVATE), helpstring("Fired when window has been activated."), helpcontext(0x0000)] void WindowActivate(); [id(DISPID_PROPERTYCHANGE), helpstring("Fired when the PutProperty method has been called."), helpcontext(0x0000)] void PropertyChange([in] BSTR szProperty); }; // Flags for DWebBrowserEvents::CommandStateChange typedef [ uuid(34A226E0-DF30-11CF-89A9-00A0C9054129), helpstring("Constants for WebBrowser CommandStateChange") ] enum CommandStateChangeConstants { [helpstring("Command Change")] CSC_UPDATECOMMANDS = 0xFFFFFFFF, [helpstring("Navigate Forward")] CSC_NAVIGATEFORWARD = 0x00000001, [helpstring("Navigate Back")] CSC_NAVIGATEBACK = 0x00000002, } CommandStateChangeConstants; // CLSID_WebBrowser [ uuid(EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B), helpstring("WebBrowser Control") ] coclass WebBrowser { [default] interface IWebBrowser; [default, source] dispinterface DWebBrowserEvents; }; // // IWebBrowserApp // [ uuid(0002DF05-0000-0000-C000-000000000046), helpstring("Web Browser Application Interface."), helpcontext(0x0000), hidden, oleautomation, dual ] interface IWebBrowserApp: IWebBrowser { // // Methods // [id(300), helpstring("Exits application and closes the open document."), helpcontext(0x0000)] HRESULT Quit(); [id(301), helpstring("Converts client sizes into window sizes."), helpcontext(0x0000)] HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy); [id(302), helpstring("Associates vtValue with the name szProperty in the context of the object."), helpcontext(0x0000)] HRESULT PutProperty([in] BSTR szProperty, [in] VARIANT vtValue); [id(303), helpstring("Retrieve the Associated value for the property vtValue in the context of the object."), helpcontext(0x0000)] HRESULT GetProperty([in] BSTR szProperty, [out, retval] VARIANT *pvtValue); // // Properties // [id(0), propget, helpstring("Returns name of the application."), helpcontext(0x0000)] HRESULT Name([out,retval] BSTR* pbstrName); [id(DISPID_HWND), propget, helpstring("Returns the HWND of the current IE window."), helpcontext(0x0000)] HRESULT HWND([out,retval] long *pHWND); [id(400), propget, helpstring("Returns file specification of the application, including path."), helpcontext(0x0000)] HRESULT FullName([out,retval] BSTR* pbstrFullName); [id(401), propget, helpstring("Returns the path to the application."), helpcontext(0x0000)] HRESULT Path([out,retval] BSTR* pbstrPath); [id(402), propget, helpstring("Determines whether the application is visible or hidden."), helpcontext(0x0000)] HRESULT Visible([out, retval] boolean* pBool); [id(402), propput, helpstring("Determines whether the application is visible or hidden."), helpcontext(0x0000)] HRESULT Visible([in] boolean Value); [id(403), propget, helpstring("Turn on or off the statusbar."), helpcontext(0x0000)] HRESULT StatusBar([out, retval] boolean* pBool); [id(403), propput, helpstring("Turn on or off the statusbar."), helpcontext(0x0000)] HRESULT StatusBar([in] boolean Value); [id(404), propget, helpstring("Text of Status window."), helpcontext(0x0000)] HRESULT StatusText([out, retval] BSTR *pbstr); [id(404), propput, helpstring("Text of Status window."), helpcontext(0x0000)] HRESULT StatusText([in] BSTR bstr); [id(405), propget, helpstring("Controls which toolbar is shown."), helpcontext(0x0000)] HRESULT ToolBar([out, retval] int * pValue); [id(405), propput, helpstring("Controls which toolbar is shown."), helpcontext(0x0000)] HRESULT ToolBar([in] int Value); [id(406), propget, helpstring("Controls whether menubar is shown."), helpcontext(0x0000)] HRESULT MenuBar([out, retval] boolean * Value); [id(406), propput, helpstring("Controls whether menubar is shown."), helpcontext(0x0000)] HRESULT MenuBar([in] boolean Value); [id(407), propget, helpstring("Maximizes window and turns off statusbar, toolbar, menubar, and titlebar."), helpcontext(0x0000)] HRESULT FullScreen([out, retval] boolean * pbFullScreen); [id(407), propput, helpstring("Maximizes window and turns off statusbar, toolbar, menubar, and titlebar."), helpcontext(0x0000)] HRESULT FullScreen([in] boolean bFullScreen); }; // event interface for IWebBrowserApp is the same as DWebBrowserEvents // the old uuid for DInternetExplorerEvents was // uuid(0002DF06-0000-0000-C000-0000000000000046), // CLSID_InternetExplorer [ uuid(0002DF01-0000-0000-C000-000000000046), helpstring("Internet Explorer Application."), ] coclass InternetExplorer { [default] interface IWebBrowserApp; [default, source] dispinterface DWebBrowserEvents; } };