diff org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/EXDISP.d @ 0:6dd524f61e62

add dwt win and basic java stuff
author Frank Benoit <benoit@tionex.de>
date Mon, 02 Mar 2009 14:44:16 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/EXDISP.d	Mon Mar 02 14:44:16 2009 +0100
@@ -0,0 +1,911 @@
+module org.eclipse.swt.internal.ole.win32.EXDISP;
+//+-------------------------------------------------------------------------
+//
+//  Microsoft Windows
+//  Copyright 1995 - 1998 Microsoft Corporation. All Rights Reserved.
+//
+//--------------------------------------------------------------------------
+//private import std.c.windows.windows;
+//private import std.c.windows.com;
+private import org.eclipse.swt.internal.ole.win32.OAIDL;
+private import org.eclipse.swt.internal.ole.win32.OLEIDL;
+private import org.eclipse.swt.internal.ole.win32.DOCOBJ;
+private import org.eclipse.swt.internal.ole.win32.extras;
+import org.eclipse.swt.internal.win32.WINTYPES;
+
+extern (Windows) {
+
+        enum BrowserNavConstants {
+            navOpenInNewWindow = 0x0001,
+            navNoHistory = 0x0002,
+            navNoReadFromCache = 0x0004,
+            navNoWriteToCache = 0x0008,
+            navAllowAutosearch = 0x0010,
+            navBrowserBar = 0x0020,
+        };
+        enum RefreshConstants {                                         // must map to these in sdk\inc\docobj.h
+            REFRESH_NORMAL     = 0,  //== OLECMDIDF_REFRESH_NORMAL
+            REFRESH_IFEXPIRED  = 1,  //== OLECMDIDF_REFRESH_IFEXPIRED
+            REFRESH_COMPLETELY = 3   //== OLECMDIDF_REFRESH_COMPLETELY
+        };
+
+interface IWebBrowser : IDispatch
+{
+        HRESULT GoBack();
+        HRESULT GoForward();
+        HRESULT GoHome();
+        HRESULT GoSearch();
+
+        HRESULT Navigate( BSTR URL,
+                         VARIANT * Flags,
+                         VARIANT * TargetFrameName,
+                         VARIANT * PostData,
+                         VARIANT * Headers);
+
+        HRESULT Refresh();
+
+        HRESULT Refresh2(VARIANT * Level);
+
+        HRESULT Stop();
+
+        HRESULT Application( IDispatch* ppDisp);
+
+        HRESULT Parent( IDispatch* ppDisp);
+
+        HRESULT Container( IDispatch* ppDisp);
+
+        HRESULT Document( IDispatch* ppDisp);
+
+        HRESULT TopLevelContainer( VARIANT_BOOL* pBool);
+
+        HRESULT Type( BSTR* Type);
+
+        // Window stuff...
+        HRESULT Left( LONG *pl);
+        HRESULT Put_Left( LONG Left);
+        HRESULT Top( LONG *pl);
+        HRESULT Put_Top( LONG Top);
+        HRESULT Width(LONG *pl);
+        HRESULT Put_Width(LONG Width);
+        HRESULT Height(LONG *pl);
+        HRESULT Put_Height(LONG Height);
+
+        // WebBrowser stuff...
+        HRESULT LocationName( BSTR *LocationName);
+
+        HRESULT LocationURL( BSTR * LocationURL);
+
+        HRESULT Busy( VARIANT_BOOL *pBool);
+    }
+
+/* //not sure how to process this
+    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]VARIANT_BOOL * Cancel);
+
+        [id(DISPID_NAVIGATECOMPLETE), helpstring("Fired when the document being navigated to becomes visible and enters the navigation stack."), 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] VARIANT_BOOL 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] VARIANT_BOOL * 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]VARIANT_BOOL * 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] VARIANT_BOOL * Processed);
+
+        // The following are IWebBrowserApp specific:
+        //
+        [id(DISPID_QUIT), helpstring("Fired when application is quiting."), helpcontext(0x0000)]
+        void Quit([in, out] VARIANT_BOOL * 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 Property);
+    }
+   */
+
+    enum CommandStateChangeConstants : uint {
+        CSC_UPDATECOMMANDS  = 0xFFFFFFFF,
+        CSC_NAVIGATEFORWARD = 0x00000001,
+        CSC_NAVIGATEBACK    = 0x00000002,
+    }
+
+    interface IWebBrowserApp : IWebBrowser
+    {
+        HRESULT Quit();
+
+        HRESULT ClientToWindow( int* pcx,  int* pcy);
+
+        HRESULT PutProperty( BSTR Property, VARIANT vtValue);
+        HRESULT GetProperty( BSTR Property, VARIANT *pvtValue);
+
+        HRESULT Name( BSTR* Name);
+
+        HRESULT HWND(LONG *pHWND);
+
+        HRESULT FullName( BSTR* FullName);
+
+        HRESULT Path( BSTR* Path);
+
+        HRESULT Visible( VARIANT_BOOL* pBool);
+        HRESULT Visible( VARIANT_BOOL Value);
+
+        HRESULT StatusBar( VARIANT_BOOL* pBool);
+        HRESULT StatusBar( VARIANT_BOOL Value);
+
+        HRESULT StatusText( BSTR *StatusText);
+        HRESULT StatusText( BSTR StatusText);
+
+        HRESULT ToolBar( int * Value);
+        HRESULT ToolBar( int Value);
+
+        HRESULT MenuBar( VARIANT_BOOL * Value);
+        HRESULT MenuBar( VARIANT_BOOL Value);
+
+        HRESULT FullScreen( VARIANT_BOOL * pbFullScreen);
+        HRESULT FullScreen( VARIANT_BOOL bFullScreen);
+    }
+
+    interface IWebBrowser2 : IWebBrowserApp
+    {
+        HRESULT Navigate2( VARIANT * URL,
+                          VARIANT * Flags,
+                          VARIANT * TargetFrameName,
+                          VARIANT * PostData,
+                          VARIANT * Headers);
+
+
+        HRESULT QueryStatusWB( OLECMDID cmdID,  OLECMDF * pcmdf);
+        HRESULT ExecWB( OLECMDID cmdID,  OLECMDEXECOPT cmdexecopt, VARIANT * pvaIn, VARIANT * pvaOut);
+        HRESULT ShowBrowserBar( VARIANT * pvaClsid,
+                                VARIANT * pvarShow,
+                                VARIANT * pvarSize );
+
+        HRESULT ReadyState(READYSTATE * plReadyState);
+
+        HRESULT Offline(VARIANT_BOOL * pbOffline);
+        HRESULT Offline( VARIANT_BOOL bOffline);
+
+        HRESULT Silent(VARIANT_BOOL * pbSilent);
+        HRESULT Silent(VARIANT_BOOL bSilent);
+
+        HRESULT RegisterAsBrowser(VARIANT_BOOL * pbRegister);
+        HRESULT RegisterAsBrowser(VARIANT_BOOL bRegister);
+
+        HRESULT RegisterAsDropTarget(VARIANT_BOOL * pbRegister);
+        HRESULT RegisterAsDropTarget(VARIANT_BOOL bRegister);
+
+        HRESULT TheaterMode(VARIANT_BOOL * pbRegister);
+        HRESULT TheaterMode(VARIANT_BOOL bRegister);
+
+        HRESULT AddressBar(VARIANT_BOOL * Value);
+        HRESULT AddressBar(VARIANT_BOOL Value);
+
+        HRESULT Resizable(VARIANT_BOOL * Value);
+        HRESULT Resizable(VARIANT_BOOL Value);
+    }
+
+	 /*
+    dispinterface DWebBrowserEvents2
+    {
+        properties:
+        methods:
+        [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_COMMANDSTATECHANGE), helpstring("The enabled state of a command changed."), helpcontext(0x0000)]
+        void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable);
+
+        [id(DISPID_DOWNLOADBEGIN), helpstring("Download of a page started."), helpcontext(0x000)]
+        void DownloadBegin();
+
+        [id(DISPID_DOWNLOADCOMPLETE), helpstring("Download of page complete."), helpcontext(0x0000)]
+        void DownloadComplete();
+
+        [id(DISPID_TITLECHANGE), helpstring("Document title changed."), helpcontext(0x0000)]
+        void TitleChange([in] BSTR Text);
+
+        [id(DISPID_PROPERTYCHANGE), helpstring("Fired when the PutProperty method has been called."), helpcontext(0x0000)]
+        void PropertyChange([in] BSTR szProperty);
+
+        // New events for IE40:
+        //
+        [id(DISPID_BEFORENAVIGATE2), helpstring("Fired before navigate occurs in the given WebBrowser (window or frameset element). The processing of this navigation may be modified."), helpcontext(0x0000)]
+        void BeforeNavigate2([in] IDispatch* pDisp,
+                             [in] VARIANT * URL, [in] VARIANT * Flags, [in] VARIANT * TargetFrameName, [in] VARIANT * PostData, [in] VARIANT * Headers,
+                             [in,out] VARIANT_BOOL * Cancel);
+
+        [id(DISPID_NEWWINDOW2), helpstring("A new, hidden, non-navigated WebBrowser window is needed."), helpcontext(0x0000)]
+        void NewWindow2([in, out] IDispatch** ppDisp, [in, out] VARIANT_BOOL * Cancel);
+
+        [id(DISPID_NAVIGATECOMPLETE2), helpstring("Fired when the document being navigated to becomes visible and enters the navigation stack."), helpcontext(0x0000)]
+        void NavigateComplete2([in] IDispatch* pDisp, [in] VARIANT * URL );
+
+        [id(DISPID_DOCUMENTCOMPLETE), helpstring("Fired when the document being navigated to reaches ReadyState_Complete."), helpcontext(0x0000)]
+        void DocumentComplete([in] IDispatch* pDisp, [in] VARIANT * URL );
+
+        [id(DISPID_ONQUIT), helpstring("Fired when application is quiting."), helpcontext(0x0000)]
+        void OnQuit();
+
+        [id(DISPID_ONVISIBLE), helpstring("Fired when the window should be shown/hidden"), helpcontext(0x0000)]
+        void OnVisible([in] VARIANT_BOOL Visible);
+
+        [id(DISPID_ONTOOLBAR), helpstring("Fired when the toolbar  should be shown/hidden"), helpcontext(0x0000)]
+        void OnToolBar([in] VARIANT_BOOL ToolBar);
+
+        [id(DISPID_ONMENUBAR), helpstring("Fired when the menubar should be shown/hidden"), helpcontext(0x0000)]
+        void OnMenuBar([in] VARIANT_BOOL MenuBar);
+
+        [id(DISPID_ONSTATUSBAR), helpstring("Fired when the statusbar should be shown/hidden"), helpcontext(0x0000)]
+        void OnStatusBar([in] VARIANT_BOOL StatusBar);
+
+        [id(DISPID_ONFULLSCREEN), helpstring("Fired when fullscreen mode should be on/off"), helpcontext(0x0000)]
+        void OnFullScreen([in] VARIANT_BOOL FullScreen);
+
+        [id(DISPID_ONTHEATERMODE), helpstring("Fired when theater mode should be on/off"), helpcontext(0x0000)]
+        void OnTheaterMode([in] VARIANT_BOOL TheaterMode);
+    }
+    */
+
+    /*
+
+    [
+        uuid(EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B), // v.1 clsid CLSID_WebBrowser_V1
+        control,
+        helpstring("WebBrowser Control")
+    ]
+    coclass WebBrowser_V1
+    {
+                          interface     IWebBrowser2;
+        [default]         interface     IWebBrowser;
+        [source]          dispinterface DWebBrowserEvents2;
+        [default, source] dispinterface DWebBrowserEvents;
+    }
+
+    [
+        uuid(8856F961-340A-11D0-A96B-00C04FD705A2), // v.2 clsid CLSID_WebBrowser
+        control,
+        helpstring("WebBrowser Control")
+    ]
+    coclass WebBrowser
+    {
+        [default]         interface     IWebBrowser2;
+                          interface     IWebBrowser;
+        [default, source] dispinterface DWebBrowserEvents2;
+        [source]          dispinterface DWebBrowserEvents;
+    }
+
+    [
+        uuid(0002DF01-0000-0000-C000-000000000046), // CLSID_InternetExplorer
+        helpstring("Internet Explorer Application."),
+    ]
+    coclass InternetExplorer
+    {
+        [default]         interface     IWebBrowser2;
+                          interface     IWebBrowserApp;
+        [default, source] dispinterface DWebBrowserEvents2;
+        [source]          dispinterface DWebBrowserEvents;
+    }
+
+	 */
+
+
+    interface IFolderViewOC : IDispatch
+    {
+        HRESULT SetFolderView(IDispatch pdisp);
+    }
+
+    interface DShellFolderViewEvents
+    {
+        void SelectionChanged();
+    }
+
+/*    [
+        uuid(9BA05971-F6A8-11CF-A442-00A0C90A8F39), // CLSID_ShellFolderViewOC
+        helpstring("Shell Folder View Events Router."),
+        hidden
+    ]
+    coclass ShellFolderViewOC
+    {
+        [default]         interface     IFolderViewOC;
+        [default, source] dispinterface DShellFolderViewEvents;
+    }*/
+    enum ShellWindowTypeConstants {
+        SWC_EXPLORER    = 0x0,
+        SWC_BROWSER     = 0x00000001,
+        SWC_3RDPARTY    = 0x00000002,
+        SWC_CALLBACK    = 0x00000004,
+    }
+
+    enum ShellWindowFindWindowOptions {
+        SWFO_NEEDDISPATCH   = 0x00000001,
+        SWFO_INCLUDEPENDING = 0x00000002,
+        SWFO_COOKIEPASSED   = 0x00000004,
+    }
+
+    interface DShellWindowsEvents
+    {
+        void WindowRegistered(LONG lCookie);
+
+        void WindowRevoked(LONG lCookie);
+    }
+
+    interface IShellWindows : IDispatch
+    {
+        //Properties
+        HRESULT Count(LONG *Count);
+
+        HRESULT Item(VARIANT index, IDispatch *Folder);
+
+        HRESULT _NewEnum(IUnknown *ppunk);
+
+        // Some private hidden members to allow shell windows to add and
+        // remove themself from the list.  We mark them hidden to keep
+        // random VB apps from trying to Register...
+        HRESULT Register( IDispatch pid,
+                         LONG hwnd,
+                         int swClass,
+                         LONG *plCookie);
+
+        HRESULT RegisterPending(LONG lThreadId,
+                         VARIANT* pvarloc,     // will hold pidl that is being opened.
+                         VARIANT* pvarlocRoot, // Optional root pidl
+                         int swClass,
+                         LONG *plCookie);
+
+        HRESULT Revoke(LONG lCookie);
+        // As an optimization, each window notifies the new location
+        // only when
+        //  (1) it's being deactivated
+        //  (2) getFullName is called (we overload it to force update)
+        HRESULT OnNavigate(LONG lCookie, VARIANT* pvarLoc);
+        HRESULT OnActivated(LONG lCookie, VARIANT_BOOL fActive);
+        HRESULT FindWindow(VARIANT* pvarLoc,
+                           VARIANT* pvarLocRoot,
+                           int swClass,
+                           LONG * phwnd,
+                            int swfwOptions,
+                           IDispatch* ppdispOut);
+        HRESULT OnCreated(LONG lCookie,IUnknown punk);
+
+        HRESULT ProcessAttachDetach(VARIANT_BOOL fAttach);
+    }
+
+	 /*
+    [
+        uuid(9BA05972-F6A8-11CF-A442-00A0C90A8F39),     // CLSID_ShellWindows
+        helpstring("ShellDispatch Load in Shell Context")
+    ]
+    coclass ShellWindows
+    {
+        [default] interface IShellWindows;
+        [default, source] dispinterface DShellWindowsEvents;
+    }
+    */
+
+    /*
+
+    [
+        uuid(88A05C00-F000-11CE-8350-444553540000), // IID_IShellLinkDual
+        helpstring("Definition of Shell Link IDispatch interface"),
+        oleautomation,
+        dual,
+        odl,
+        hidden,
+    ]
+    interface IShellLinkDual : IDispatch
+    {
+        [propget, helpstring("Get the path of the link")]
+        HRESULT Path([out, retval] BSTR *pbs);
+
+        [propput, helpstring("Set the path of the link")]
+        HRESULT Path([in] BSTR bs);
+
+        [propget, helpstring("Get the description for the link")]
+        HRESULT Description([out, retval] BSTR *pbs);
+
+        [propput, helpstring("Set the description for the link")]
+        HRESULT Description([in] BSTR bs);
+
+        [propget, helpstring("Get the working directory for the link")]
+        HRESULT WorkingDirectory([out, retval] BSTR *pbs);
+
+        [propput, helpstring("Set the working directory for the link")]
+        HRESULT WorkingDirectory([in] BSTR bs);
+
+        [propget, helpstring("Get the arguments for the link")]
+        HRESULT Arguments([out, retval] BSTR *pbs);
+
+        [propput, helpstring("Set the arguments for the link")]
+        HRESULT Arguments([in] BSTR bs);
+
+
+        [propget, helpstring("Get the Hotkey for the link")]
+        HRESULT Hotkey([out, retval] int *piHK);
+
+        [propput, helpstring("Set the Hotkey for the link")]
+        HRESULT Hotkey([in] int iHK);
+
+        [propget, helpstring("Get the Show Command for the link")]
+        HRESULT ShowCommand([out, retval] int *piShowCommand);
+
+        [propput, helpstring("Set the Show Command for the link")]
+        HRESULT ShowCommand([in] int iShowCommand);
+
+        // STDMETHOD(SetRelativePath)(THIS_ LPCSTR pszPathRel, DWORD dwReserved) PURE;
+        //Methods
+        [helpstring("Tell the link to resolve itself")]
+        HRESULT Resolve([in] int fFlags);
+
+        [helpstring("Get the IconLocation for the link")]
+        HRESULT GetIconLocation([out] BSTR *pbs, [out,retval] int *piIcon);
+
+        [helpstring("Set the IconLocation for the link")]
+        HRESULT SetIconLocation([in] BSTR bs, [in] int iIcon);
+
+        [helpstring("Tell the link to save the changes")]
+        HRESULT Save ([in, optional] VARIANT vWhere);
+    }
+
+    [
+        uuid(11219420-1768-11d1-95BE-00609797EA4F), // CLSID_ShellLinkObject
+        helpstring("Shell Link object")
+    ]
+    coclass ShellLinkObject // funny name so we don't conflict with CLSID_ShellLink
+    {
+        [default] interface IShellLinkDual;
+    }
+
+    [
+        uuid(08EC3E00-50B0-11CF-960C-0080C7F4EE85), // IID_FolderItemVerb
+        helpstring("Definition of interface FolderItemVerb"),
+        oleautomation,
+        dual,
+        odl,
+    ]
+    interface FolderItemVerb : IDispatch
+    {
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        [id(0), propget, helpstring("Get display name for item")]
+        HRESULT Name([out, retval] BSTR *pbs);
+
+        [helpstring("Execute the verb")]
+        HRESULT DoIt();
+    }
+
+    [
+        uuid(1F8352C0-50B0-11CF-960C-0080C7F4EE85), // IID_FolderItemVerbs
+        helpstring("Definition of interface FolderItemVerbs"),
+        oleautomation,
+        dual,
+        odl,
+    ]
+    interface FolderItemVerbs : IDispatch
+    {
+        //Properties
+        [propget, helpstring("Get count of open folder windows")]
+        HRESULT Count([out, retval] long *plCount);
+
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        //Methods
+        //Standard Methods
+        [helpstring("Return the specified verb")]
+        HRESULT Item([in,optional] VARIANT index, [out, retval]FolderItemVerb **ppid);
+
+        [id(-4), helpstring("Enumerates the figures")]
+        HRESULT _NewEnum([out, retval] IUnknown **ppunk);
+    }
+
+    interface Folder;   // forward reference
+
+    [
+        uuid(FAC32C80-CBE4-11CE-8350-444553540000), // IID_FolderItem
+        helpstring("Definition of interface FolderItem"),
+        oleautomation,
+        dual,
+        odl,
+    ]
+    interface FolderItem : IDispatch
+    {
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        [id(0), propget, helpstring("Get display name for item")]
+        HRESULT Name([out, retval] BSTR *pbs);
+
+        [id(0), propput, helpstring("Set the name for the item")]
+        HRESULT Name([in] BSTR bs);
+
+        [propget, helpstring("Get the pathname to the item")]
+        HRESULT Path([out, retval]BSTR *pbs);
+
+        [propget, helpstring("If item is link return link object")]
+        HRESULT GetLink([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("If item is a folder return folder object")]
+        HRESULT GetFolder([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Is the item a link?")]
+        HRESULT IsLink([out, retval] VARIANT_BOOL *pb);
+
+        [propget, helpstring("Is the item a Folder?")]
+        HRESULT IsFolder([out, retval] VARIANT_BOOL *pb);
+
+        [propget, helpstring("Is the item a file system object?")]
+        HRESULT IsFileSystem([out, retval] VARIANT_BOOL *pb);
+
+        [propget, helpstring("Is the item browsable?")]
+        HRESULT IsBrowsable([out, retval] VARIANT_BOOL *pb);
+
+        [propget, helpstring("Modification Date?")]
+        HRESULT ModifyDate([out, retval] DATE *pdt);
+
+        [propput, helpstring("Modification Date?")]
+        HRESULT ModifyDate([in] DATE dt);
+
+        [propget, helpstring("Size")]
+        HRESULT Size([out, retval] LONG *pul);
+
+        [propget, helpstring("Type")]
+        HRESULT Type([out, retval] BSTR *pbs);
+
+        [helpstring("Get the list of verbs for the object")]
+        HRESULT Verbs([out, retval] FolderItemVerbs **ppfic);
+
+        [helpstring("Execute a command on the item")]
+        HRESULT InvokeVerb([in,optional] VARIANT vVerb);
+    }
+
+    [
+        uuid(744129E0-CBE5-11CE-8350-444553540000), // IID_FolderItems
+        helpstring("Definition of interface FolderItems"),
+        oleautomation,
+        dual,
+        odl,
+    ]
+    interface FolderItems : IDispatch
+    {
+        //Properties
+        [propget, helpstring("Get count of items in the folder")]
+        HRESULT Count([out, retval] long *plCount);
+
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        //Methods
+        //Standard Methods
+        [helpstring("Return the figure for the given index")]
+        HRESULT Item([in,optional] VARIANT index, [out, retval]FolderItem **ppid);
+
+        [id(-4), helpstring("Enumerates the figures")]
+        HRESULT _NewEnum([out, retval] IUnknown **ppunk);
+    }
+
+    [
+        uuid(BBCBDE60-C3FF-11CE-8350-444553540000), // IID_Folder
+        helpstring("Definition of interface Folder"),
+        oleautomation,
+        dual,
+        odl,
+    ]
+    interface Folder : IDispatch
+    {
+        //Properties
+        [id(0), propget, helpstring("Get the display name for the window")]
+        HRESULT Title([out, retval] BSTR *pbs);
+
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT ParentFolder([out, retval] Folder **ppsf);
+
+        //Methods
+        [helpstring("The collection of Items in folder")]
+        HRESULT Items([out, retval] FolderItems **ppid);
+
+        [helpstring("Parse the name to get an item.")]
+        HRESULT ParseName([in] BSTR bName, [out, retval] FolderItem **ppid);
+
+        [helpstring("Create a new sub folder in this folder.")]
+        HRESULT NewFolder([in] BSTR bName, [in, optional] VARIANT vOptions);
+
+        [helpstring("Move Items to this folder.")]
+        HRESULT MoveHere([in] VARIANT vItem, [in, optional] VARIANT vOptions);
+
+        [helpstring("Copy Items to this folder.")]
+        HRESULT CopyHere([in] VARIANT vItem, [in, optional] VARIANT vOptions);
+
+        [helpstring("Get the details about an item.")]
+        HRESULT GetDetailsOf([in] VARIANT vItem, [in] int iColumn, [out, retval]BSTR *pbs);
+    }
+
+    [
+        uuid(E7A1AF80-4D96-11CF-960C-0080C7F4EE85), // IID_IShellFolderViewDual
+        helpstring("definition of interface IShellFolderViewDual"),
+        oleautomation,
+        hidden,
+        dual,
+        odl,
+    ]
+    interface IShellFolderViewDual : IDispatch
+    {
+        [propget, helpstring("Get Application object")]
+        HRESULT Application([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get the folder being viewed")]
+        HRESULT Folder([out, retval] Folder **ppid);
+
+        [helpstring("The collection of Selected Items in folder")]
+        HRESULT SelectedItems([out, retval] FolderItems **ppid);
+
+        [propget, helpstring("The currently focused item in the folder")]
+        HRESULT FocusedItem([out, retval] FolderItem **ppid);
+
+        [helpstring("Select the item")]
+        HRESULT SelectItem([in]VARIANT *pvfi, [in] int dwFlags);
+
+        [helpstring("Show items menu and return command selected")]
+        HRESULT PopupItemMenu([in]FolderItem *pfi, [in, optional]VARIANT vx, [in, optional]VARIANT vy, [out, retval] BSTR *pbs);
+
+        [propget, helpstring("Returns the scripting automation model."), helpcontext(0x0000)]
+        HRESULT Script([out,retval] IDispatch** ppDisp);
+
+        [propget, helpstring("Returns the view options for showing a folder."), helpcontext(0x0000)]
+        HRESULT ViewOptions([out,retval] long * plViewOptions);
+    }
+
+    [
+        uuid(62112AA1-EBE4-11cf-A5FB-0020AFE7292D),  // CLSID_ShellFolderView
+        helpstring("Shell Folder View Object")
+    ]
+    coclass ShellFolderView
+    {
+        [default] interface IShellFolderViewDual;
+        [source,default] dispinterface DShellFolderViewEvents;
+    }
+
+    typedef
+    [
+        uuid(742A99A0-C77E-11D0-A32C-00A0C91EEDBA),
+        helpstring("Constants for ViewOptions")
+    ]
+    enum ShellFolderViewOptions {
+        [helpstring("Show All Objects")]                        SFVVO_SHOWALLOBJECTS = 0x00000001,
+        [helpstring("Show File Extensions")]                    SFVVO_SHOWEXTENSIONS = 0x00000002,
+        [helpstring("Color encode Compressed files")]           SFVVO_SHOWCOMPCOLOR = 0x00000008,
+        [helpstring("Show System Files")]                       SFVVO_SHOWSYSFILES = 0x00000020,
+        [helpstring("Use Windows 95 UI settings")]              SFVVO_WIN95CLASSIC = 0x00000040,
+        [helpstring("User needs to double click in web View")]  SFVVO_DOUBLECLICKINWEBVIEW = 0x00000080,
+        [helpstring("Is Desktop HTML enabled")]                 SFVVO_DESKTOPHTML = 0x00000200,
+    } ShellFolderViewOptions;
+
+    [
+        uuid(D8F015C0-C278-11CE-A49E-444553540000), // IID_IShellDispatch
+        helpstring("Definition of interface IShellDispatch"),
+        oleautomation,
+        hidden,
+        dual,
+        odl,
+    ]
+    interface IShellDispatch : IDispatch
+    {
+        [propget, helpstring("Get Application object")]
+        HRESULT Application ([out, retval] IDispatch **ppid);
+
+        [propget, helpstring("Get Parent object")]
+        HRESULT Parent([out, retval] IDispatch **ppid);
+
+        //=========================================================
+        // Name Space methods and properties
+
+        [helpstring("Enum the contents of a folder")]
+        HRESULT NameSpace([in] VARIANT vDir, [out, retval] Folder **ppsdf);
+
+        [helpstring("Browse the name space for a Folder")]
+        HRESULT BrowseForFolder([in] long Hwnd,
+            [in] BSTR Title,
+            [in] long Options,
+            [in,optional] VARIANT RootFolder,
+            [out, retval] FOLDER **ppsdf);
+
+        [helpstring("The collection of open folder windows")]
+        HRESULT Windows([out, retval] IDispatch **ppid);
+
+        [helpstring("Open a folder")]
+        HRESULT Open([in] VARIANT vDir);
+
+        [helpstring("Explore a folder")]
+        HRESULT Explore([in] VARIANT vDir);
+
+        [helpstring("Minimize all windows")]
+        HRESULT MinimizeAll(void);
+
+        [helpstring("Undo Minimize All")]
+        HRESULT UndoMinimizeALL(void);
+
+        [helpstring("Bring up the file run")]
+        HRESULT FileRun(void);
+
+        [helpstring("Cascade Windows")]
+        HRESULT CascadeWindows(void);
+
+        [helpstring("Tile windows vertically")]
+        HRESULT TileVertically(void);
+
+        [helpstring("Tile windows horizontally")]
+        HRESULT TileHorizontally(void);
+
+        [helpstring("Exit Windows")]
+        HRESULT ShutdownWindows(void);
+
+        [helpstring("Suspend the pc")]
+        HRESULT Suspend(void);
+
+        [helpstring("Eject the pc")]
+        HRESULT EjectPC(void);
+
+        [helpstring("Bring up the Set time dialog")]
+        HRESULT SetTime(void);
+
+        [helpstring("Handle Tray properties")]
+        HRESULT TrayProperties(void);
+
+        [helpstring("Display shell help")]
+        HRESULT Help(void);
+
+        [helpstring("Find Files")]
+        HRESULT FindFiles(void);
+
+        [helpstring("Find a computer")]
+        HRESULT FindComputer(void);
+
+        [helpstring("Refresh the menu")]
+        HRESULT RefreshMenu(void);
+
+        [helpstring("Run a controlpanelItem")]
+        HRESULT ControlPanelItem([in] BSTR szDir);
+    }
+
+    [
+        uuid(13709620-C279-11CE-A49E-444553540000), // CLSID_Shell
+        helpstring("Shell Object Type Information")
+    ]
+    coclass Shell
+    {
+        [default] interface IShellDispatch;
+    }
+
+    [
+        uuid(0A89A860-D7B1-11CE-8350-444553540000), // CLSID_ShellDispatchInproc
+        helpstring("ShellDispatch Load in Shell Context"),
+        hidden
+    ]
+    coclass ShellDispatchInproc
+    {
+        interface IUnknown;
+    }
+
+    [
+        uuid(1820FED0-473E-11D0-A96C-00C04FD705A2),     // CLSID_WebViewFolderContents
+        hidden
+    ]
+    coclass WebViewFolderContents
+    {
+        [default] interface IShellFolderViewDual;
+        [source,default] dispinterface DShellFolderViewEvents;
+    }
+
+    typedef
+    [
+        uuid(CA31EA20-48D0-11CF-8350-444553540000),
+        helpstring("Constants for Special Folders for open/Explore")
+    ]
+    enum ShellSpecialFolderConstants    {
+        [helpstring("Special Folder DESKTOP")]      ssfDESKTOP = 0x0000,
+        [helpstring("Special Folder PROGRAMS")]     ssfPROGRAMS = 0x0002,
+        [helpstring("Special Folder CONTROLS")]     ssfCONTROLS = 0x0003,
+        [helpstring("Special Folder PRINTERS")]     ssfPRINTERS = 0x0004,
+        [helpstring("Special Folder PERSONAL")]     ssfPERSONAL = 0x0005,
+        [helpstring("Special Folder FAVORITES")]    ssfFAVORITES = 0x0006,
+        [helpstring("Special Folder STARTUP")]      ssfSTARTUP = 0x0007,
+        [helpstring("Special Folder RECENT")]       ssfRECENT = 0x0008,
+        [helpstring("Special Folder SENDTO")]       ssfSENDTO = 0x0009,
+        [helpstring("Special Folder BITBUCKET")]    ssfBITBUCKET = 0x000a,
+        [helpstring("Special Folder STARTMENU")]    ssfSTARTMENU = 0x000b,
+        [helpstring("Special Folder DESKTOPDIRECTORY")]    ssfDESKTOPDIRECTORY = 0x0010,
+        [helpstring("Special Folder DRIVES")]       ssfDRIVES = 0x0011,
+        [helpstring("Special Folder NETWORK")]      ssfNETWORK = 0x0012,
+        [helpstring("Special Folder NETHOOD")]      ssfNETHOOD = 0x0013,
+        [helpstring("Special Folder FONTS")]        ssfFONTS = 0x0014,
+        [helpstring("Special Folder TEMPLATES")]    ssfTEMPLATES = 0x0015,
+    } ShellSpecialFolderConstants;
+
+    [
+        uuid(729FE2F8-1EA8-11d1-8F85-00C04FC2FBE1),     // IID_IShellUIHelper
+        helpstring("Shell UI Helper Control Interface"),
+        oleautomation, dual
+    ]
+    interface IShellUIHelper : IDispatch
+    {
+        [hidden, id(DISPID_RESETFIRSTBOOTMODE)] HRESULT ResetFirstBootMode();
+        [hidden, id(DISPID_RESETSAFEMODE)] HRESULT ResetSafeMode();
+        [hidden, id(DISPID_REFRESHOFFLINEDESKTOP)] HRESULT RefreshOfflineDesktop();
+        [id(DISPID_ADDFAVORITE)] HRESULT AddFavorite([in] BSTR URL, [optional, in] VARIANT *Title);
+        [id(DISPID_ADDCHANNEL)] HRESULT AddChannel([in] BSTR URL);
+        [id(DISPID_ADDDESKTOPCOMPONENT)] HRESULT AddDesktopComponent([in] BSTR URL, [in] BSTR Type,
+            [optional, in] VARIANT *Left,
+            [optional, in] VARIANT *Top,
+            [optional, in] VARIANT *Width,
+            [optional, in] VARIANT *Height);
+        [id(DISPID_ISSUBSCRIBED)] HRESULT IsSubscribed([in] BSTR URL, [out,retval] VARIANT_BOOL* pBool);
+    }
+    [
+        uuid(64AB4BB7-111E-11d1-8F79-00C04FC2FBE1)  // CLSID_ShellUIHelper
+    ]
+    coclass ShellUIHelper
+    {
+        [default] interface IShellUIHelper;
+    }
+*/
+}  // extern (Windows)
+