/* * COM interfaces for shell objects * * Copyright (C) 1999 Juergen Schmied * Copyright (C) 2003 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "objidl.idl"; import "oleidl.idl"; import "oaidl.idl"; import "docobj.idl"; import "shtypes.idl"; import "servprov.idl"; import "comcat.idl"; import "propidl.idl"; /* FIXME: import "prsht.idl";*/ import "msxml.idl"; import "wtypes.idl"; /* FIXME: import "propsys.idl"; */ /* FIXME: import "structuredquery.idl"; */ cpp_quote("/* FIXME: #include */") /***************************************************************************** * IPersistFolder interface */ [ object, uuid(000214ea-0000-0000-c000-000000000046), pointer_default(unique) ] interface IPersistFolder : IPersist { typedef IPersistFolder *LPPERSISTFOLDER; HRESULT Initialize( [in] LPCITEMIDLIST pidl ); } /***************************************************************************** * IPersistFolder2 interface */ [ object, uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f), pointer_default(unique) ] interface IPersistFolder2 : IPersistFolder { typedef IPersistFolder2 *LPPERSISTFOLDER2; HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl ); } /***************************************************************************** * IPersistIDList interface */ [ object, uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5), pointer_default(unique) ] interface IPersistIDList : IPersist { HRESULT SetIDList( [in] LPCITEMIDLIST pidl ); HRESULT GetIDList( [out] LPITEMIDLIST *ppidl ); } /***************************************************************************** * IEnumIDList interface */ [ object, uuid(000214f2-0000-0000-c000-000000000046), pointer_default(unique) ] interface IEnumIDList : IUnknown { typedef IEnumIDList *LPENUMIDLIST; HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt ); HRESULT Reset(); HRESULT Clone( [out] IEnumIDList **ppenum ); } /***************************************************************************** * IShellPropSheetExt interface */ cpp_quote("#if 0") typedef LPARAM LPFNSVADDPROPSHEETPAGE; cpp_quote("#else") cpp_quote("#include ") cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;") cpp_quote("#endif") [ object, uuid(000214E9-0000-0000-C000-000000000046), pointer_default(unique), local ] interface IShellPropSheetExt : IUnknown { enum tagSHELLPROPSHEETEXTPAGEID { EXPPS_FILETYPES = 0x1 }; typedef UINT EXPPS; HRESULT AddPages( [in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam); HRESULT ReplacePage( [in] EXPPS uPageID, [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, [in] LPARAM lParam); } typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT; /***************************************************************************** * IShellFolder interface */ [ object, uuid(000214e6-0000-0000-c000-000000000046), pointer_default(unique) ] interface IShellFolder : IUnknown { typedef IShellFolder * LPSHELLFOLDER; typedef enum tagSHGDN { SHGDN_NORMAL = 0, SHGDN_INFOLDER = 1, SHGDN_FOREDITING = 0x1000, SHGDN_INCLUDE_NONFILESYS = 0x2000, SHGDN_FORADDRESSBAR = 0x4000, SHGDN_FORPARSING = 0x8000 } SHGNO; typedef DWORD SHGDNF; enum tagSHCONTF { SHCONTF_FOLDERS = 32, SHCONTF_NONFOLDERS = 64, SHCONTF_INCLUDEHIDDEN = 128, SHCONTF_INIT_ON_FIRST_NEXT = 256, SHCONTF_NETPRINTERSRCH = 512, SHCONTF_SHAREABLE = 1024, SHCONTF_STORAGE = 2048 }; typedef DWORD SHCONTF; cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY") cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE") cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK") cpp_quote("#define SFGAO_STORAGE 0x00000008L") cpp_quote("#define SFGAO_CANRENAME 0x00000010L") cpp_quote("#define SFGAO_CANDELETE 0x00000020L") cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L") cpp_quote("#define SFGAO_DROPTARGET 0x00000100L") cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L") cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L") cpp_quote("#define SFGAO_ISSLOW 0x00004000L") cpp_quote("#define SFGAO_GHOSTED 0x00008000L") cpp_quote("#define SFGAO_LINK 0x00010000L") cpp_quote("#define SFGAO_SHARE 0x00020000L") cpp_quote("#define SFGAO_READONLY 0x00040000L") cpp_quote("#define SFGAO_HIDDEN 0x00080000L") cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L") cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L") cpp_quote("#define SFGAO_FOLDER 0x20000000L") cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L") cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L") cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L") cpp_quote("#define SFGAO_VALIDATE 0x01000000L") cpp_quote("#define SFGAO_REMOVABLE 0x02000000L") cpp_quote("#define SFGAO_COMPRESSED 0x04000000L") cpp_quote("#define SFGAO_BROWSABLE 0x08000000L") cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L") cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L") cpp_quote("#define SFGAO_STREAM 0x00400000L") cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L") typedef ULONG SFGAOF; HRESULT ParseDisplayName( [in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] LPITEMIDLIST *ppidl, [in, out, unique] ULONG *pdwAttributes); HRESULT EnumObjects( [in] HWND hwndOwner, [in] SHCONTF grfFlags, [out] IEnumIDList **ppenumIDList); HRESULT BindToObject( [in] LPCITEMIDLIST pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT BindToStorage( [in] LPCITEMIDLIST pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvObj); HRESULT CompareIDs( [in] LPARAM lParam, [in] LPCITEMIDLIST pidl1, [in] LPCITEMIDLIST pidl2); HRESULT CreateViewObject( [in] HWND hwndOwner, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT GetAttributesOf( [in] UINT cidl, [in, size_is(cidl)] LPCITEMIDLIST *apidl, [in, out] SFGAOF *rgfInOut); HRESULT GetUIObjectOf( [in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] LPCITEMIDLIST *apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut); HRESULT GetDisplayNameOf( [in] LPCITEMIDLIST pidl, [in] SHGDNF uFlags, [out] STRRET *lpName); HRESULT SetNameOf( [in] HWND hwnd, [in] LPCITEMIDLIST pidl, [in, string] LPCOLESTR lpszName, [in] SHGDNF uFlags, [out] LPITEMIDLIST *ppidlOut); } /***************************************************************************** * IEnumExtraSearch interface */ [ object, uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13), pointer_default(unique) ] interface IEnumExtraSearch : IUnknown { typedef IEnumExtraSearch *LPENUMEXTRASEARCH; typedef struct { GUID guidSearch; WCHAR wszFriendlyName[80]; /* *WCHAR wszMenuText[80]; *WCHAR wszHelpText[MAX_PATH]; */ WCHAR wszUrl[2084]; /* *WCHAR wszIcon[MAX_PATH+10]; *WCHAR wszGreyIcon[MAX_PATH+10]; *WCHAR wszClrIcon[MAX_PATH+10]; */ } EXTRASEARCH, *LPEXTRASEARCH; HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt, [out] ULONG *pceltFetched); HRESULT Skip( [in] ULONG celt ); HRESULT Reset(); HRESULT Clone( [out] IEnumExtraSearch **ppenum ); } /***************************************************************************** * IShellFolder2 interface */ [ object, uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1), pointer_default(unique) ] interface IShellFolder2 : IShellFolder { typedef struct { GUID fmtid; DWORD pid; } SHCOLUMNID, *LPSHCOLUMNID; typedef const SHCOLUMNID *LPCSHCOLUMNID; HRESULT GetDefaultSearchGUID( [out] GUID *lpguid ); HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum ); HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay ); HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags ); HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv); HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd); HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid ); } /***************************************************************************** * IShellItem interface */ [ object, uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe), pointer_default(unique) ] interface IShellItem : IUnknown { typedef DWORD SIGDN; typedef DWORD SICHINTF; HRESULT BindToHandler( [in] IBindCtx *pbc, [in] REFGUID rbhid, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut); HRESULT GetParent( [out] IShellItem **ppsi ); HRESULT GetDisplayName( [in] SIGDN sigdnName, [out] LPWSTR *ppszName); HRESULT GetAttributes( [in] SFGAOF sfgaoMask, [out] SFGAOF *psfgaoAttribs); HRESULT Compare( [in] IShellItem *psi, [in] SICHINTF hint, [out] int *piOrder); } typedef enum tagNWMF { NWMF_UNLOADING = 0x0001, NWMF_USERINITED = 0x0002, NWMF_FIRST = 0x0004, NWMF_OVERRIDEKEY = 0x0008, NWMF_SHOWHELP = 0x0010, NWMF_HTMLDIALOG = 0x0020, NWMF_FROMDIALOGCHILD = 0x0040, NWMF_USERREQUESTED = 0x0080, NWMF_USERALLOWED = 0x0100 } NWMF; [ uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb), object, pointer_default(unique) ] interface INewWindowManager : IUnknown { HRESULT EvaluateNewWindow( [in, string] LPCWSTR pszUrl, [in, string] LPCWSTR pszName, [in, string] LPCWSTR pszUrlContext, [in, string] LPCWSTR pszFeatures, [in] BOOL fReplace, [in] DWORD dwFlags, [in] DWORD dwUserActionTime); } cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager") /***************************************************************************** * FOLDERSETTINGS */ typedef char *LPVIEWSETTINGS; typedef enum { FWF_AUTOARRANGE = 0x00000001, FWF_ABBREVIATEDNAMES = 0x00000002, FWF_SNAPTOGRID = 0x00000004, FWF_OWNERDATA = 0x00000008, FWF_BESTFITWINDOW = 0x00000010, FWF_DESKTOP = 0x00000020, FWF_SINGLESEL = 0x00000040, FWF_NOSUBFOLDERS = 0x00000080, FWF_TRANSPARENT = 0x00000100, FWF_NOCLIENTEDGE = 0x00000200, FWF_NOSCROLL = 0x00000400, FWF_ALIGNLEFT = 0x00000800, FWF_NOICONS = 0x00001000, FWF_SHOWSELALWAYS = 0x00002000, FWF_NOVISIBLE = 0x00004000, FWF_SINGLECLICKACTIVATE = 0x00008000, FWF_NOWEBVIEW = 0x00010000, FWF_HIDEFILENAMES = 0x00020000, FWF_CHECKSELECT = 0x00040000, FWF_NOENUMREFRESH = 0x00080000, FWF_NOGROUPING = 0x00100000, FWF_FULLROWSELECT = 0x00200000, FWF_NOFILTERS = 0x00400000, FWF_NOCOLUMNHEADER = 0x00800000, FWF_NOHEADERINALLVIEWS = 0x01000000, FWF_EXTENDEDTILES = 0x02000000, FWF_TRICHECKSELECT = 0x04000000, FWF_AUTOCHECKSELECT = 0x08000000, FWF_NOBROWSERVIEWSTATE = 0x10000000, FWF_SUBSETGROUPS = 0x20000000, FWF_USESEARCHFOLDER = 0x40000000, FWF_ALLOWRTLREADING = 0x80000000 } FOLDERFLAGS; typedef enum { FVM_AUTO =-1, FVM_ICON = 1, FVM_FIRST = FVM_ICON, FVM_SMALLICON = 2, FVM_LIST = 3, FVM_DETAILS = 4, FVM_THUMBNAIL = 5, FVM_TILE = 6, FVM_THUMBSTRIP = 7, FVM_CONTENT = 8, FVM_LAST = FVM_CONTENT } FOLDERVIEWMODE; typedef struct { UINT ViewMode; UINT fFlags; } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS; typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; /***************************************************************************** * IShellIcon interface */ [ uuid(000214e5-0000-0000-c000-000000000046), object, pointer_default(unique) ] interface IShellIcon : IUnknown { HRESULT GetIconOf( [in] PCUITEMID_CHILD pidl, [in] UINT flags, [out] int *pIconIndex); } /***************************************************************************** * IShellView interface */ interface IShellBrowser; /* forward declaration */ [ object, uuid(000214e3-0000-0000-c000-000000000046), pointer_default(unique) ] interface IShellView : IOleWindow { typedef IShellView *LPSHELLVIEW; cpp_quote("#define SVSI_DESELECT 0x00000000") cpp_quote("#define SVSI_SELECT 0x00000001") cpp_quote("#define SVSI_EDIT 0x00000003") cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004") cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008") cpp_quote("#define SVSI_FOCUSED 0x00000010") cpp_quote("#define SVSI_TRANSLATEPT 0x00000020") cpp_quote("#define SVSI_SELECTIONMARK 0x00000040") cpp_quote("#define SVSI_POSITIONITEM 0x00000080") cpp_quote("#define SVSI_CHECK 0x00000100") cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000") typedef UINT SVSIF; typedef enum { SVGIO_BACKGROUND = 0x00000000, SVGIO_SELECTION = 0x00000001, SVGIO_ALLVIEW = 0x00000002, SVGIO_CHECKED = 0x00000003, SVGIO_TYPE_MASK = 0x0000000f, SVGIO_FLAG_VIEWORDER = 0x80000000, } SVGIO; typedef enum { SVUIA_DEACTIVATE = 0, SVUIA_ACTIVATE_NOFOCUS = 1, SVUIA_ACTIVATE_FOCUS = 2, SVUIA_INPLACEACTIVATE = 3 } SVUIA_STATUS; HRESULT TranslateAccelerator( [in] MSG *pmsg ); HRESULT EnableModeless( [in] BOOL fEnable ); HRESULT UIActivate( [in] UINT uState ); HRESULT Refresh(); HRESULT CreateViewWindow( [in] IShellView *psvPrevious, [in] LPCFOLDERSETTINGS lpfs, [in] IShellBrowser *psb, [out] RECT *prcView, [out] HWND *phWnd); HRESULT DestroyViewWindow(); HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs ); [local] HRESULT AddPropertySheetPages( [in] DWORD dwReserved, [in] LPFNSVADDPROPSHEETPAGE pfn, [in] LPARAM lparam); HRESULT SaveViewState(); HRESULT SelectItem( [in] LPCITEMIDLIST pidlItem, [in] SVSIF uFlags); HRESULT GetItemObject( [in] UINT uItem, [in] REFIID riid, [out, iid_is(riid)] void **ppv); } [ object, uuid(88e39e80-3578-11cf-ae69-08002b2e1262), pointer_default(unique) ] interface IShellView2 : IShellView { typedef GUID SHELLVIEWID; cpp_quote("#include ") typedef struct _SV2CVW2_PARAMS { DWORD cbSize; IShellView *psvPrev; LPCFOLDERSETTINGS pfs; IShellBrowser *psbOwner; RECT *prcView; SHELLVIEWID const *pvid; HWND hwndView; } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS; cpp_quote("#include ") HRESULT GetView( [in, out] SHELLVIEWID *view_guid, [in] ULONG view_type ); HRESULT CreateViewWindow2( [in] LPSV2CVW2_PARAMS view_params ); HRESULT HandleRename( [in] LPCITEMIDLIST new_pidl ); HRESULT SelectAndPositionItem( [in] LPCITEMIDLIST item, [in] UINT flags, [in] POINT *point ); } /***************************************************************************** * IFolderView interface */ [ uuid(cde725b0-ccc9-4519-917e-325d72fab4ce), object, pointer_default(unique) ] interface IFolderView : IUnknown { HRESULT GetCurrentViewMode( [out] UINT *mode ); HRESULT SetCurrentViewMode( [in] UINT mode ); HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv ); HRESULT Item( [in] int index, [out] PITEMID_CHILD *ppidl ); HRESULT ItemCount( [in] UINT flags, [out] int *items ); HRESULT Items( [in] UINT flags, [in] REFIID riid, [out, iid_is(riid)] void **ppv ); HRESULT GetSelectionMarkedItem( [out] int *item ); HRESULT GetFocusedItem( [out] int *item ); HRESULT GetItemPosition( [in] PCUITEMID_CHILD pidl, [out] POINT* ppt ); HRESULT GetSpacing( [in, out, unique] POINT* pt ); HRESULT GetDefaultSpacing( [out] POINT* pt ); HRESULT GetAutoArrange(); HRESULT SelectItem( [in] int item, [in] DWORD flags ); HRESULT SelectAndPositionItems( [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, unique, size_is(cidl)] POINT* apt, [in] DWORD flags ); } /***************************************************************************** * IShellBrowser interface */ [ object, uuid(000214e2-0000-0000-c000-000000000046), pointer_default(unique) ] interface IShellBrowser : IOleWindow { typedef IShellBrowser *LPSHELLBROWSER; cpp_quote("#define SBSP_DEFBROWSER 0x00000000") cpp_quote("#define SBSP_SAMEBROWSER 0x00000001") cpp_quote("#define SBSP_NEWBROWSER 0x00000002") cpp_quote("#define SBSP_DEFMODE 0x00000000") cpp_quote("#define SBSP_OPENMODE 0x00000010") cpp_quote("#define SBSP_EXPLOREMODE 0x00000020") cpp_quote("#define SBSP_HELPMODE 0x00000040") cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080") cpp_quote("#define SBSP_ABSOLUTE 0x00000000") cpp_quote("#define SBSP_RELATIVE 0x00001000") cpp_quote("#define SBSP_PARENT 0x00002000") cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000") cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000") cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000") cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000") cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000") cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000") cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000") cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000") cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000") cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000") cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000") cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000") cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000") cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000") cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000") cpp_quote("#define SBSP_REDIRECT 0x40000000") cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000") cpp_quote("#define FCW_STATUS 0x0001") cpp_quote("#define FCW_TOOLBAR 0x0002") cpp_quote("#define FCW_TREE 0x0003") cpp_quote("#define FCW_INTERNETBAR 0x0006") cpp_quote("#define FCW_PROGRESS 0x0008") cpp_quote("#define FCT_MERGE 0x0001") cpp_quote("#define FCT_CONFIGABLE 0x0002") cpp_quote("#define FCT_ADDTOEND 0x0004") cpp_quote("#if 0") typedef LPARAM LPTBBUTTONSB; cpp_quote("#else") cpp_quote("#include ") cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;") cpp_quote("#endif") HRESULT InsertMenusSB( [in] HMENU hmenuShared, [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths); HRESULT SetMenuSB( [in] HMENU hmenuShared, [in] HOLEMENU holemenuReserved, [in] HWND hwndActiveObject); HRESULT RemoveMenusSB( [in] HMENU hmenuShared ); HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText ); HRESULT EnableModelessSB( [in] BOOL fEnable ); HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID ); HRESULT BrowseObject( [in] LPCITEMIDLIST pidl, [in] UINT wFlags); HRESULT GetViewStateStream( [in] DWORD grfMode, [out] IStream **ppStrm); HRESULT GetControlWindow( [in] UINT id, [out] HWND *phwnd); [local] HRESULT SendControlMsg( [in] UINT id, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [in] LRESULT *pret); HRESULT QueryActiveShellView( [out] IShellView **ppshv ); HRESULT OnViewWindowActive( [in] IShellView *pshv ); [local] HRESULT SetToolbarItems( [in] LPTBBUTTONSB lpButtons, [in] UINT nButtons, [in] UINT uFlags); } /***************************************************************************** * IShellLinkA interface */ [ object, uuid(000214ee-0000-0000-c000-000000000046), pointer_default(unique) ] interface IShellLinkA : IUnknown { typedef enum { SLR_NO_UI = 0x0001, SLR_ANY_MATCH = 0x0002, SLR_UPDATE = 0x0004, SLR_NOUPDATE = 0x0008, SLR_NOSEARCH = 0x0010, SLR_NOTRACK = 0x0020, SLR_NOLINKINFO = 0x0040, SLR_INVOKE_MSI = 0x0080, SLR_NO_UI_WITH_MSG_PUMP = 0x0101, } SLR_FLAGS; typedef enum { SLGP_SHORTPATH = 0x0001, SLGP_UNCPRIORITY = 0x0002, SLGP_RAWPATH = 0x0004, } SLGP_FLAGS; HRESULT GetPath( [out, size_is(cch)] LPSTR pszFile, [in] int cch, [in, out, unique] WIN32_FIND_DATAA *pfd, [in] DWORD fFlags); HRESULT GetIDList( [out] LPITEMIDLIST * ppidl ); HRESULT SetIDList( [in] LPCITEMIDLIST pidl ); HRESULT GetDescription( [out, size_is(cch)] LPSTR pszName, [in] int cch); HRESULT SetDescription( [in] LPCSTR pszName ); HRESULT GetWorkingDirectory( [out, size_is(cch)] LPSTR pszDir, [in] int cch); HRESULT SetWorkingDirectory( [in] LPCSTR pszDir ); HRESULT GetArguments( [out, size_is(cch)] LPSTR pszArgs, [in] int cch); HRESULT SetArguments( [in] LPCSTR pszArgs ); HRESULT GetHotkey( [out] WORD *pwHotkey ); HRESULT SetHotkey( [in] WORD wHotkey ); HRESULT GetShowCmd( [out] int *piShowCmd ); HRESULT SetShowCmd( [in] int iShowCmd ); HRESULT GetIconLocation( [out, size_is(cch)] LPSTR pszIconPath, [in] int cch, [out] int *piIcon); HRESULT SetIconLocation( [in] LPCSTR pszIconPath, [in] int iIcon); HRESULT SetRelativePath( [in] LPCSTR pszPathRel, [in] DWORD dwReserved); HRESULT Resolve( [in] HWND hwnd, [in] DWORD fFlags); HRESULT SetPath( [in] LPCSTR pszFile ); } /***************************************************************************** * IShellLinkW interface */ [ object, uuid(000214f9-0000-0000-c000-000000000046), pointer_default(unique) ] interface IShellLinkW : IUnknown { HRESULT GetPath( [out, size_is(cch)] LPWSTR pszFile, [in] int cch, [in, out] WIN32_FIND_DATAW *pfd, [in] DWORD fFlags); HRESULT GetIDList( [out] LPITEMIDLIST * ppidl ); HRESULT SetIDList( [in] LPCITEMIDLIST pidl ); HRESULT GetDescription( [out, size_is(cch)] LPWSTR pszName, [in] int cch); HRESULT SetDescription( [in] LPCWSTR pszName ); HRESULT GetWorkingDirectory( [out, size_is(cch)] LPWSTR pszDir, [in] int cch); HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir ); HRESULT GetArguments( [out, size_is(cch)] LPWSTR pszArgs, [in] int cch); HRESULT SetArguments( [in] LPCWSTR pszArgs ); HRESULT GetHotkey( [out] WORD *pwHotkey ); HRESULT SetHotkey( [in] WORD wHotkey ); HRESULT GetShowCmd( [out] int *piShowCmd ); HRESULT SetShowCmd( [in] int iShowCmd ); HRESULT GetIconLocation( [out, size_is(cch)] LPWSTR pszIconPath, [in] int cch, [out] int *piIcon); HRESULT SetIconLocation( [in] LPCWSTR pszIconPath, [in] int iIcon); HRESULT SetRelativePath( [in] LPCWSTR pszPathRel, [in] DWORD dwReserved); HRESULT Resolve( [in] HWND hwnd, [in] DWORD fFlags); HRESULT SetPath( [in] LPCWSTR pszFile ); } cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)") /***************************************************************************** * IShellExtInit interface */ [ object, uuid(000214e8-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IShellExtInit : IUnknown { typedef IShellExtInit *LPSHELLEXTINIT; HRESULT Initialize( [in] LPCITEMIDLIST pidlFolder, [in] IDataObject *pdtobj, [in] HKEY hkeyProgID); } /*******************************************************************************/ /* Note: the following interfaces are not in shobjidl.idl under Windows, they */ /* are declared directly in shlobj.h. It hopefully won't break anything to put */ /* them here anyway. */ /*******************************************************************************/ #ifndef MAX_PATH #define MAX_PATH 260 #endif /***************************************************************************** * IPersistFolder3 interface */ [ object, uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf), pointer_default(unique) ] interface IPersistFolder3 : IPersistFolder2 { typedef struct { LPITEMIDLIST pidlTargetFolder; WCHAR szTargetParsingName[MAX_PATH]; WCHAR szNetworkProvider[MAX_PATH]; DWORD dwAttributes; int csidl; } PERSIST_FOLDER_TARGET_INFO; HRESULT InitializeEx( [in] IBindCtx *pbc, [in] LPCITEMIDLIST pidlRoot, [in] const PERSIST_FOLDER_TARGET_INFO *ppfti); HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti ); } /***************************************************************************** * IExtractIconA interface */ [ object, uuid(000214eb-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IExtractIconA : IUnknown { cpp_quote("#define GIL_OPENICON 0x0001") cpp_quote("#define GIL_FORSHELL 0x0002") cpp_quote("#define GIL_ASYNC 0x0020") cpp_quote("#define GIL_DEFAULTICON 0x0040") cpp_quote("#define GIL_FORSHORTCUT 0x0080") cpp_quote("#define GIL_SIMULATEDOC 0x0001") cpp_quote("#define GIL_PERINSTANCE 0x0002") cpp_quote("#define GIL_PERCLASS 0x0004") cpp_quote("#define GIL_NOTFILENAME 0x0008") cpp_quote("#define GIL_DONTCACHE 0x0010") typedef IExtractIconA *LPEXTRACTICONA; HRESULT GetIconLocation( [in] UINT uFlags, [out, size_is(cchMax)] LPSTR szIconFile, [in] UINT cchMax, [out] INT *piIndex, [out] UINT *pwFlags); HRESULT Extract( [in] LPCSTR pszFile, [in] UINT nIconIndex, [out] HICON *phiconLarge, [out] HICON *phiconSmall, [in] UINT nIconSize ); } /***************************************************************************** * IExtractIconW interface */ [ object, uuid(000214fa-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IExtractIconW : IUnknown { typedef IExtractIconW *LPEXTRACTICONW; HRESULT GetIconLocation( [in] UINT uFlags, [out, size_is(cchMax)] LPWSTR szIconFile, [in] UINT cchMax, [out] INT *piIndex, [out] UINT *pwFlags); HRESULT Extract( [in] LPCWSTR pszFile, [in] UINT nIconIndex, [out] HICON *phiconLarge, [out] HICON *phiconSmall, [in] UINT nIconSize ); } cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)") cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)") /***************************************************************************** * ICommDlgBrowser interface */ [ object, uuid(000214f1-0000-0000-c000-000000000046), pointer_default(unique) ] interface ICommDlgBrowser : IUnknown { cpp_quote("#define CDBOSC_SETFOCUS 0x00000000") cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001") cpp_quote("#define CDBOSC_SELCHANGE 0x00000002") cpp_quote("#define CDBOSC_RENAME 0x00000003") cpp_quote("#define CDBOSC_STATECHANGE 0x00000004") typedef ICommDlgBrowser *LPCOMMDLGBROWSER; HRESULT OnDefaultCommand( [in] IShellView *shv ); HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange ); HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl ); } /***************************************************************************** * ICommDlgBrowser2 interface */ [ object, uuid(10339516-2894-11D2-9039-00C04F8EEB3E), pointer_default(unique) ] interface ICommDlgBrowser2 : ICommDlgBrowser { HRESULT Notify( [in] IShellView *ppshv, [in] DWORD dwNotifyType); HRESULT GetDefaultMenuText( [in] IShellView *ppshv, [out, string, size_is(cchMax)] LPWSTR pszText, [in] int cchMax); HRESULT GetViewFlags( [out] DWORD *pdwFlags); } /***************************************************************************** * ICommDlgBrowser3 interface */ [ object, uuid(C8AD25A1-3294-41EE-8165-71174BD01C57), pointer_default(unique) ] interface ICommDlgBrowser3 : ICommDlgBrowser2 { HRESULT OnColumnClicked( [in] IShellView *ppshv, [in] int iColumn); HRESULT GetCurrentFilter( [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec, [in] int cchFileSpec); HRESULT OnPreviewCreated( [in] IShellView *ppshv); } /***************************************************************************** * IDockingWindowFrame interface */ [ object, uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), pointer_default(unique), local ] interface IDockingWindowFrame : IOleWindow { cpp_quote("#define DWFRF_NORMAL 0x0000") cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001") cpp_quote("#define DWFAF_HIDDEN 0x0001") HRESULT AddToolbar( [in] IUnknown *punkSrc, [in] LPCWSTR pwszItem, [in] DWORD dwAddFlags); HRESULT RemoveToolbar( [in] IUnknown *punkSrc, [in] DWORD dwRemoveFlags); HRESULT FindToolbar( [in] LPCWSTR pwszItem, [in] REFIID riid, [out] LPVOID *ppvObj); } /***************************************************************************** * IDragSourceHelper interface */ [ object, uuid(de5bf786-477a-11d2-839d-00c04fd918d0), pointer_default(unique), local ] interface IDragSourceHelper : IUnknown { typedef struct { SIZE sizeDragImage; POINT ptOffset; HBITMAP hbmpDragImage; COLORREF crColorKey; } SHDRAGIMAGE, *LPSHDRAGIMAGE; HRESULT InitializeFromBitmap( [in] LPSHDRAGIMAGE pshdi, [in] IDataObject *pDataObject); HRESULT InitializeFromWindow( [in] HWND hwnd, [in] POINT *ppt, [in] IDataObject *pDataObject); } /***************************************************************************** * IDropTargetHelper interface */ [ object, uuid(4657278b-411b-11d2-839a-00c04fd918d0), pointer_default(unique), local ] interface IDropTargetHelper : IUnknown { HRESULT DragEnter( [in] HWND hwndTarget, [in] IDataObject *pDataObject, [in] POINT *ppt, [in] DWORD dwEffect); HRESULT DragLeave(); HRESULT DragOver( [in] POINT *ppt, [in] DWORD dwEffect); HRESULT Drop( [in] IDataObject *pDataObject, [in] POINT *ppt, [in] DWORD dwEffect); HRESULT Show( [in] BOOL fShow ); } /***************************************************************************** * IContextMenu interface */ [ object, uuid(000214e4-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IContextMenu : IUnknown { cpp_quote("#define CMF_NORMAL 0x00000000") cpp_quote("#define CMF_DEFAULTONLY 0x00000001") cpp_quote("#define CMF_VERBSONLY 0x00000002") cpp_quote("#define CMF_EXPLORE 0x00000004") cpp_quote("#define CMF_NOVERBS 0x00000008") cpp_quote("#define CMF_CANRENAME 0x00000010") cpp_quote("#define CMF_NODEFAULT 0x00000020") cpp_quote("#define CMF_INCLUDESTATIC 0x00000040") cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100") cpp_quote("#define CMF_RESERVED 0xffff0000") cpp_quote("#define GCS_VERBA 0x00000000") cpp_quote("#define GCS_HELPTEXTA 0x00000001") cpp_quote("#define GCS_VALIDATEA 0x00000002") cpp_quote("#define GCS_VERBW 0x00000004") cpp_quote("#define GCS_HELPTEXTW 0x00000005") cpp_quote("#define GCS_VALIDATEW 0x00000006") cpp_quote("#define GCS_UNICODE 0x00000004") cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)") cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)") cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)") cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"") cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"") cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"") cpp_quote("#if defined(__GNUC__)") cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }") cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }") cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }") cpp_quote("#elif defined(_MSC_VER)") cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"") cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"") cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"") cpp_quote("#else") cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};") cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};") cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};") cpp_quote("#endif") cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)") cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)") cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)") cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY") cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI") cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE") cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE") cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK") cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000") cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000") cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000") cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE") cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS") typedef IContextMenu *LPCONTEXTMENU; typedef struct tagCMINVOKECOMMANDINFO { DWORD cbSize; DWORD fMask; HWND hwnd; LPCSTR lpVerb; LPCSTR lpParameters; LPCSTR lpDirectory; INT nShow; DWORD dwHotKey; HANDLE hIcon; } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; typedef struct tagCMInvokeCommandInfoEx { DWORD cbSize; DWORD fMask; HWND hwnd; LPCSTR lpVerb; LPCSTR lpParameters; LPCSTR lpDirectory; INT nShow; DWORD dwHotKey; HANDLE hIcon; LPCSTR lpTitle; LPCWSTR lpVerbW; LPCWSTR lpParametersW; LPCWSTR lpDirectoryW; LPCWSTR lpTitleW; POINT ptInvoke; } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; HRESULT QueryContextMenu( [in] HMENU hmenu, [in] UINT indexMenu, [in] UINT idCmdFirst, [in] UINT idCmdLast, [in] UINT uFlags); HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici ); HRESULT GetCommandString( [in] UINT_PTR idCmd, [in] UINT uType, [out] UINT *pwReserved, [out, size_is(cchMax)] LPSTR pszName, [in] UINT cchMax); } /***************************************************************************** * IContextMenu2 interface */ [ object, uuid(000214f4-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IContextMenu2 : IContextMenu { typedef IContextMenu2 *LPCONTEXTMENU2; HRESULT HandleMenuMsg( [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam); } /***************************************************************************** * IContextMenu3 interface */ [ object, uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719), pointer_default(unique), local ] interface IContextMenu3 : IContextMenu2 { typedef IContextMenu3 *LPCONTEXTMENU3; HRESULT HandleMenuMsg2( [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); } /***************************************************************************** * IShellExecuteHookA interface */ [ object, uuid(000214f5-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IShellExecuteHookA : IUnknown { cpp_quote("struct _SHELLEXECUTEINFOA;") HRESULT Execute( [in, out] struct _SHELLEXECUTEINFOA* pei); } /***************************************************************************** * IShellExecuteHookW interface */ [ object, uuid(000214fb-0000-0000-c000-000000000046), pointer_default(unique), local ] interface IShellExecuteHookW : IUnknown { cpp_quote("struct _SHELLEXECUTEINFOW;") HRESULT Execute( [in, out] struct _SHELLEXECUTEINFOW* pei); } /***************************************************************************** * IShellLinkDataList interface */ [ object, uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1), pointer_default(unique) ] interface IShellLinkDataList : IUnknown { [local] HRESULT AddDataBlock( [in] void *pDataBlock); [local] HRESULT CopyDataBlock( [in] DWORD dwSig, [out] void **ppDataBlock); HRESULT RemoveDataBlock( [in] DWORD dwSig); HRESULT GetFlags( [out] DWORD *pdwFlags); HRESULT SetFlags( [in] DWORD dwFlags); } /***************************************************************************** * IResolveShellLink interface */ [ object, uuid(5cd52983-9449-11d2-963a-00c04f79adf0), pointer_default(unique) ] interface IResolveShellLink : IUnknown { HRESULT ResolveShellLink( [in] IUnknown *punk, [in] HWND hwnd, [in] DWORD fFlags); } /***************************************************************************** * IURLSearchHook interface */ [ object, uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497), pointer_default(unique), local ] interface IURLSearchHook : IUnknown { HRESULT Translate( [in, out] LPWSTR lpwszSearchURL, [in] DWORD cchBufferSize); } /***************************************************************************** * ISearchContext interface */ [ object, uuid(09f656a2-41af-480c-88f7-16cc0d164615), pointer_default(unique), local ] interface ISearchContext : IUnknown { HRESULT GetSearchUrl( [in] BSTR *pbstrSearchUrl); HRESULT GetSearchText( [in] BSTR *pbstrSearchText); HRESULT GetSearchStyle( [in] BSTR *pdwSearchStyle); } /***************************************************************************** * IURLSearchHook2 interface */ [ object, uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0), pointer_default(unique), local ] interface IURLSearchHook2 : IURLSearchHook { HRESULT TranslateWithSearchContext( [in, out] LPWSTR lpwszSearchURL, [in] DWORD cchBufferSize, [in] ISearchContext *pSearchContext); } cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)") /***************************************************************************** * INewShortcutHookA interface */ [ object, uuid(000214e1-0000-0000-c000-000000000046), pointer_default(unique), local ] interface INewShortcutHookA : IUnknown { HRESULT SetReferent( [in] LPCSTR pcszReferent, [in] HWND hwnd); HRESULT GetReferent( [out] LPSTR pcszReferent, [in] int cchReferent); HRESULT SetFolder( [in] LPCSTR pcszReferent); HRESULT GetFolder( [out] LPSTR pcszReferent, [in] int cchFolder); HRESULT GetName( [out] LPSTR pszName, [in] int cchName); HRESULT GetExtension( [out] LPSTR pszExtension, [in] int cchExtension); } /***************************************************************************** * INewShortcutHookW interface */ [ object, uuid(000214f7-0000-0000-c000-000000000046), pointer_default(unique), local ] interface INewShortcutHookW : IUnknown { HRESULT SetReferent( [in] LPCWSTR pcszReferent, [in] HWND hwnd); HRESULT GetReferent( [out] LPWSTR pcszReferent, [in] int cchReferent); HRESULT SetFolder( [in] LPCWSTR pcszReferent); HRESULT GetFolder( [out] LPWSTR pcszReferent, [in] int cchFolder); HRESULT GetName( [out] LPWSTR pszName, [in] int cchName); HRESULT GetExtension( [out] LPWSTR pszExtension, [in] int cchExtension); } /***************************************************************************** * IRunnableTask interface */ [ object, uuid(85788d00-6807-11d0-b810-00c04fd706ec), pointer_default(unique), local ] interface IRunnableTask : IUnknown { HRESULT Run(); HRESULT Kill([in] BOOL fWait); HRESULT Suspend(); HRESULT Resume(); ULONG IsRunning(); } /***************************************************************************** * IShellChangeNotify interface */ [ object, uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2), pointer_default(unique), local ] interface IShellChangeNotify : IUnknown { HRESULT OnChange( [in] LONG lEvent, [in] LPCITEMIDLIST pidl1, [in] LPCITEMIDLIST pidl2); } /***************************************************************************** * IFileSystemBindData interface */ [ object, uuid(01e18d10-4d8b-11d2-855d-006008059367), pointer_default(unique), local ] interface IFileSystemBindData : IUnknown { HRESULT SetFindData( [in] const WIN32_FIND_DATAW *pfd); HRESULT GetFindData( [out] WIN32_FIND_DATAW *pfd); } /***************************************************************************** * ITaskbarList interface */ [ object, uuid(56FDF342-FD6D-11d0-958A-006097C9A090), pointer_default(unique) ] interface ITaskbarList : IUnknown { HRESULT HrInit(); HRESULT AddTab( [in] HWND hwnd); HRESULT DeleteTab( [in] HWND hwnd); HRESULT ActivateTab( [in] HWND hwnd); HRESULT SetActiveAlt( [in] HWND hwnd); } cpp_quote("EXTERN_C const CLSID CLSID_TaskbarList;") /***************************************************************************** * IContextMenuCB interface */ [ object, uuid(3409e930-5a39-11d1-83fa-00a0c90dc849), pointer_default(unique) ] interface IContextMenuCB : IUnknown { HRESULT CallBack( [in] IShellFolder *psf, [in] HWND hwndOwner, [in] IDataObject *pdtobj, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam); } /***************************************************************************** * IDefaultExtractIconInit interface */ [ object, uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */ pointer_default(unique), local ] interface IDefaultExtractIconInit : IUnknown { HRESULT SetDefaultIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetFlags( [in] UINT uFlags); HRESULT SetKey( [in] HKEY hkey); HRESULT SetNormalIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetOpenIcon( [in] LPCWSTR pszFile, [in] int iIcon); HRESULT SetShortcutIcon( [in] LPCWSTR pszFile, [in] int iIcon); } /***************************************************************************** * IDockingWindow interface */ [ uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8), object ] interface IDockingWindow : IOleWindow { HRESULT ShowDW([in] BOOL fShow); HRESULT CloseDW([in] DWORD dwReserved); HRESULT ResizeBorderDW( [in] LPCRECT prcBorder, [in] IUnknown* punkToolbarSite, [in] BOOL fReserved); } /***************************************************************************** * IDeskBand interface */ cpp_quote("#define DBIM_MINSIZE 0x0001") cpp_quote("#define DBIM_MAXSIZE 0x0002") cpp_quote("#define DBIM_INTEGRAL 0x0004") cpp_quote("#define DBIM_ACTUAL 0x0008") cpp_quote("#define DBIM_TITLE 0x0010") cpp_quote("#define DBIM_MODEFLAGS 0x0020") cpp_quote("#define DBIM_BKCOLOR 0x0040") cpp_quote("#include ") typedef struct tagDESKBANDINFO { DWORD dwMask; POINTL ptMinSize; POINTL ptMaxSize; POINTL ptIntegral; POINTL ptActual; WCHAR wszTitle[256]; DWORD dwModeFlags; COLORREF crBkgnd; } DESKBANDINFO; cpp_quote("#include ") cpp_quote("#define DBIMF_NORMAL 0x0000") cpp_quote("#define DBIMF_FIXED 0x0001") cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)") cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008") cpp_quote("#define DBIMF_UNDELETEABLE 0x0010") cpp_quote("#define DBIMF_DEBOSSED 0x0020") cpp_quote("#define DBIMF_BKCOLOR 0x0040") cpp_quote("#define DBIMF_USECHEVRON 0x0080") cpp_quote("#define DBIMF_BREAK 0x0100") cpp_quote("#define DBIMF_ADDTOFRONT 0x0200") cpp_quote("#define DBIMF_TOPALIGN 0x0400") cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)") cpp_quote("#define DBIMF_NOGRIPPER 0x0800") cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000") cpp_quote("#define DBIMF_NOMARGINS 0x2000") cpp_quote("#endif // NTDDI_LONGHORN") cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000") cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001") cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002") cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004") enum tagDESKBANDCID { DBID_BANDINFOCHANGED = 0, DBID_SHOWONLY = 1, DBID_MAXIMIZEBAND = 2, DBID_PUSHCHEVRON = 3, DBID_DELAYINIT = 4, DBID_FINISHINIT = 5, DBID_SETWINDOWTHEME = 6, DBID_PERMITAUTOHIDE = 7, }; cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1") cpp_quote("#define DBPC_SELECTLAST (DWORD)-2") cpp_quote("#define CGID_DeskBand IID_IDeskBand") [ uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC), object, ] interface IDeskBand : IDockingWindow { HRESULT GetBandInfo( [in] DWORD dwBandID, [in] DWORD dwViewMode, [in, out] DESKBANDINFO* pdbi); } cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") [ uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC), object, pointer_default(unique), local ] interface IDeskBar : IOleWindow { HRESULT SetClient([in] IUnknown* punkClient); HRESULT GetClient([out] IUnknown** ppunkClient); HRESULT OnPosRectChangeDB([in] RECT *prc); } /***************************************************************************** * IMenuPopup interface */ [ uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4), object, pointer_default(unique), local ] interface IMenuPopup : IDeskBar { enum tagMENUPOPUPSELECT { MPOS_EXECUTE = 0, MPOS_FULLCANCEL, MPOS_CANCELLEVEL, MPOS_SELECTLEFT, MPOS_SELECTRIGHT, MPOS_CHILDTRACKING }; enum tagMENUPOPUPPOPUPFLAGS { MPPF_SETFOCUS = 0x00000001, MPPF_INITIALSELECT = 0x00000002, MPPF_NOANIMATE = 0x00000004, MPPF_KEYBOARD = 0x00000010, MPPF_REPOSITION = 0x00000020, MPPF_FORCEZORDER = 0x00000040, MPPF_FINALSELECT = 0x00000080, MPPF_TOP = 0x20000000, MPPF_LEFT = 0x40000000, MPPF_RIGHT = 0x60000000, MPPF_BOTTOM = 0x80000000, MPPF_POS_MASK = 0xE0000000, MPPF_ALIGN_LEFT = 0x02000000, MPPF_ALIGN_RIGHT = 0x04000000 }; typedef int MP_POPUPFLAGS; HRESULT Popup( [in] POINTL *ppt, [in] RECTL *prcExclude, [in] MP_POPUPFLAGS dwFlags); HRESULT OnSelect([in] DWORD dwSelectType); HRESULT SetSubMenu( [in] IMenuPopup* pmp, [in] BOOL fSet); } cpp_quote("#endif /* _WIN32_IE_IE60 */") cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)") /***************************************************************************** * IBandSite interface */ cpp_quote("#include ") typedef struct tagBANDSITEINFO { DWORD dwMask; DWORD dwState; DWORD dwStyle; } BANDSITEINFO; cpp_quote("#include ") enum tagBANDSITECID { BSID_BANDADDED, BSID_BANDREMOVED, }; cpp_quote("#define BSIM_STATE 0x00000001") cpp_quote("#define BSIM_STYLE 0x00000002") cpp_quote("#define BSSF_VISIBLE 0x00000001") cpp_quote("#define BSSF_NOTITLE 0x00000002") cpp_quote("#define BSSF_UNDELETEABLE 0x00001000") cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000") cpp_quote("#define BSIS_NOGRIPPER 0x00000001") cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002") cpp_quote("#define BSIS_LEFTALIGN 0x00000004") cpp_quote("#define BSIS_SINGLECLICK 0x00000008") cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010") cpp_quote("#define BSIS_NODROPTARGET 0x00000020") cpp_quote("#define BSIS_NOCAPTION 0x00000040") cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080") cpp_quote("#define BSIS_LOCKED 0x00000100") cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)") cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200") cpp_quote("#endif /* _WIN32_IE_IE70 */") cpp_quote("#define SID_SBandSite IID_IBandSite") cpp_quote("#define CGID_BandSite IID_IBandSite") [ object, uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5) ] interface IBandSite : IUnknown { HRESULT AddBand([in] IUnknown* punk); HRESULT EnumBands( [in] UINT uBand, [out] DWORD* pdwBandID); HRESULT QueryBand( [in] DWORD dwBandID, [out] IDeskBand** ppstb, [out] DWORD* pdwState, [out, string, size_is(cchName)] LPWSTR pszName, [in] int cchName); HRESULT SetBandState( [in] DWORD dwBandID, [in] DWORD dwMask, [in] DWORD dwState); HRESULT RemoveBand([in] DWORD dwBandID); HRESULT GetBandObject( [in] DWORD dwBandID, [in] REFIID riid, [out, iid_is(riid)] void **ppv); HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo); HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo); } cpp_quote("#endif /* _WIN32_IE_IE40 */") /***************************************************************************** * IMenuBand interface */ [ uuid(568804CD-CBD7-11d0-9816-00C04FD91972), object, pointer_default(unique), local ] interface IMenuBand : IUnknown { enum tagMENUBANDHANDLERCID { MBHANDCID_PIDLSELECT = 0, }; HRESULT IsMenuMessage([in] MSG* pmsg); HRESULT TranslateMenuMessage( [in, out] MSG* pmsg, [out] LRESULT* plRet); } /***************************************************************************** * IProfferService interface */ [ uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0), object, pointer_default(unique), local ] interface IProfferService : IUnknown { HRESULT ProfferService( [in] REFGUID service, [in] IServiceProvider *pService, [out] DWORD *pCookie); HRESULT RevokeService([in] DWORD cookie); } /***************************************************************************** * IShellMenuCallback interface */ cpp_quote("#include ") typedef struct tagSMDATA { DWORD dwMask; DWORD dwFlags; HMENU hmenu; HWND hwnd; UINT uId; UINT uIdParent; UINT uIdAncestor; IUnknown *punk; LPITEMIDLIST pidlFolder; LPITEMIDLIST pidlItem; IShellFolder *psf; void *pvUserData; } SMDATA, *LPSMDATA; cpp_quote("#define SMDM_SHELLFOLDER 0x00000001") cpp_quote("#define SMDM_HMENU 0x00000002") cpp_quote("#define SMDM_TOOLBAR 0x00000004") typedef struct tagSMINFO { DWORD dwMask; DWORD dwType; DWORD dwFlags; int iIcon; } SMINFO, *PSMINFO; typedef struct tagSHCSCHANGENOTIFYSTRUCT { LONG lEvent; LPCITEMIDLIST pidl1; LPCITEMIDLIST pidl2; } SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT; cpp_quote("#include ") enum { SMIM_TYPE = 0x00000001, SMIM_FLAGS = 0x00000002, SMIM_ICON = 0x00000004 }; enum { SMIT_SEPARATOR = 0x00000001, SMIT_STRING = 0x00000002 }; enum { SMIF_ICON = 0x00000001, SMIF_ACCELERATOR = 0x00000002, SMIF_DROPTARGET = 0x00000004, SMIF_SUBMENU = 0x00000008, SMIF_CHECKED = 0x00000020, SMIF_DROPCASCADE = 0x00000040, SMIF_HIDDEN = 0x00000080, SMIF_DISABLED = 0x00000100, SMIF_TRACKPOPUP = 0x00000200, SMIF_DEMOTED = 0x00000400, SMIF_ALTSTATE = 0x00000800, SMIF_DRAGNDROP = 0x00001000, SMIF_NEW = 0x00002000, }; cpp_quote("#define SMC_INITMENU 0x00000001") cpp_quote("#define SMC_CREATE 0x00000002") cpp_quote("#define SMC_EXITMENU 0x00000003") cpp_quote("#define SMC_GETINFO 0x00000005") cpp_quote("#define SMC_GETSFINFO 0x00000006") cpp_quote("#define SMC_GETOBJECT 0x00000007") cpp_quote("#define SMC_GETSFOBJECT 0x00000008") cpp_quote("#define SMC_SFEXEC 0x00000009") cpp_quote("#define SMC_SFSELECTITEM 0x0000000A") cpp_quote("#define SMC_REFRESH 0x00000010") cpp_quote("#define SMC_DEMOTE 0x00000011") cpp_quote("#define SMC_PROMOTE 0x00000012") cpp_quote("#define SMC_DEFAULTICON 0x00000016") cpp_quote("#define SMC_NEWITEM 0x00000017") cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019") cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A") cpp_quote("#define SMC_SETSFOBJECT 0x0000002D") cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E") cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F") cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030") [ uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0), object, pointer_default(unique), local ] interface IShellMenuCallback : IUnknown { HRESULT CallbackSM( [in, out] LPSMDATA psmd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam); } /***************************************************************************** * IShellMenu interface */ cpp_quote("#define SMINIT_DEFAULT 0x00000000") cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002") cpp_quote("#define SMINIT_TOPLEVEL 0x00000004") cpp_quote("#define SMINIT_CACHED 0x00000010") cpp_quote("#define SMINIT_VERTICAL 0x10000000") cpp_quote("#define SMINIT_HORIZONTAL 0x20000000") cpp_quote("") cpp_quote("#define ANCESTORDEFAULT (UINT)-1") cpp_quote("") cpp_quote("#define SMSET_TOP 0x10000000") cpp_quote("#define SMSET_BOTTOM 0x20000000") cpp_quote("#define SMSET_DONTOWN 0x00000001") cpp_quote("") cpp_quote("#define SMINV_REFRESH 0x00000001") cpp_quote("#define SMINV_ID 0x00000008") [ uuid(EE1F7637-E138-11d1-8379-00C04FD918D0), object, pointer_default(unique), local ] interface IShellMenu : IUnknown { HRESULT Initialize( [in] IShellMenuCallback *psmc, [in] UINT uId, [in] UINT uIdAncestor, [in] DWORD dwFlags); HRESULT GetMenuInfo( [out] IShellMenuCallback **ppsmc, [out] UINT *puId, [out] UINT *puIdAncestor, [out] DWORD *pdwFlags); HRESULT SetShellFolder( [in] IShellFolder *psf, [in] LPCITEMIDLIST pidlFolder, [in] HKEY hKey, [in] DWORD dwFlags); HRESULT GetShellFolder( [out] DWORD *pdwFlags, [out] LPITEMIDLIST *ppidl, [in] REFIID riid, [out] void **ppv); HRESULT SetMenu( [in] HMENU hmenu, [in] HWND hwnd, [in] DWORD dwFlags); HRESULT GetMenu( [out] HMENU *phmenu, [out] HWND *phwnd, [out] DWORD *pdwFlags); HRESULT InvalidateItem( [in] LPSMDATA psmd, [in] DWORD dwFlags); HRESULT GetState( [out] LPSMDATA psmd); HRESULT SetMenuToolbar( [in] IUnknown *punk, [in] DWORD dwFlags); } typedef struct _WINDOWDATA { DWORD dwWindowID; UINT uiCP; LPITEMIDLIST pidl; [string] LPWSTR lpszUrl; [string] LPWSTR lpszUrlLocation; [string] LPWSTR lpszTitle; } WINDOWDATA; typedef WINDOWDATA *LPWINDOWDATA; typedef const WINDOWDATA *LPCWINDOWDATA; /***************************************************************************** * ITravelEntry interface */ [ uuid(F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3), object, pointer_default(unique), local ] interface ITravelEntry : IUnknown { HRESULT Invoke( [in] IUnknown *punk); HRESULT Update( [in] IUnknown *punk, BOOL fIsLocalAnchor); HRESULT GetPidl( [in] LPITEMIDLIST *ppidl); }; /***************************************************************************** * ITravelLogClient interface */ [ uuid(241c033e-e659-43da-aa4d-4086dbc4758d), object, pointer_default(unique), local ] interface ITravelLogClient : IUnknown { HRESULT FindWindowByIndex( [in] DWORD dwID, [out] IUnknown **ppunk); HRESULT GetWindowData( [out] LPWINDOWDATA pWinData); HRESULT LoadHistoryPosition( [in] LPWSTR pszUrlLocation, [in] DWORD dwPosition); }; /***************************************************************************** * ITravelLog interface */ [ uuid(02BA3B52-0547-11D1-B833-00C04FC9B31F), object, pointer_default(unique), local ] interface ITravelLog : IUnknown { enum tagTLENUMF { TLEF_RELATIVE_INCLUDE_CURRENT = 0x00000001, TLEF_RELATIVE_BACK = 0x00000010, TLEF_RELATIVE_FORE = 0x00000020, TLEF_INCLUDE_UNINVOKEABLE = 0x00000040, TLEF_ABSOLUTE = 0x00000031, }; typedef DWORD TLENUMF; HRESULT AddEntry( [in] IUnknown *punk, BOOL fIsLocalAnchor); HRESULT UpdateEntry( [in] IUnknown *punk, BOOL fIsLocalAnchor); HRESULT UpdateExternal( [in] IUnknown *punk, [in] IUnknown *punkHLBrowseContext); HRESULT Travel( [in] IUnknown *punk, int iOffset); HRESULT GetTravelEntry( [in] IUnknown *punk, int iOffset, [out] ITravelEntry **ppte); HRESULT FindTravelEntry( [in] IUnknown *punk, [in] LPCITEMIDLIST pidl, [out] ITravelEntry **ppte); HRESULT GetToolTipText( [in] IUnknown *punk, int iOffset, int idsTemplate, [out] LPWSTR pwzText, DWORD cchText); HRESULT InsertMenuEntries( [in] IUnknown *punk, [in, out] HMENU hmenu, int nPos, int idFirst, int idLast, DWORD dwFlags); HRESULT Clone( [out] ITravelLog **pptl); DWORD CountEntries( [in] IUnknown *punk); HRESULT Revert(); }; /***************************************************************************** * IShellService interface */ [ object, uuid(5836FB00-8187-11CF-A12B-00AA004AE837), pointer_default(unique), local ] interface IShellService : IUnknown { HRESULT SetOwner( [in] IUnknown *owner); }; /***************************************************************************** * IShellBrowser interface */ [ object, uuid(02BA3B52-0547-11D1-B833-00C04FC9B31F), pointer_default(unique), local ] interface IBrowserService : IUnknown { typedef enum tagBNSTATE { BNS_NORMAL = 0, BNS_BEGIN_NAVIGATE = 1, BNS_NAVIGATE = 2 } BNSTATE; cpp_quote("#include ") typedef struct basebrowserdataxp { HWND _hwnd; ITravelLog *_ptl; IUnknown *_phlf; IUnknown *_pautoWB2; IUnknown *_pautoEDS; IShellService *_pautoSS; int _eSecureLockIcon; DWORD _fCreatingViewWindow; UINT _uActivateState; LPITEMIDLIST _pidlViewState; IOleCommandTarget *_pctView; LPITEMIDLIST _pidlCur; IShellView *_psv; IShellFolder *_psf; HWND _hwndView; LPWSTR _pszTitleCur; LPITEMIDLIST _pidlPending; IShellView *_psvPending; IShellFolder *_psfPending; HWND _hwndViewPending; LPWSTR _pszTitlePending; BOOL _fIsViewMSHTML; BOOL _fPrivacyImpacted; CLSID _clsidView; CLSID _clsidViewPending; HWND _hwndFrame; } BASEBROWSERDATAXP; typedef struct basebrowserdataxp *LPBASEBROWSERDATAXP; typedef struct basebrowserdatalh { HWND _hwnd; ITravelLog *_ptl; IUnknown *_phlf; IUnknown *_pautoWB2; IUnknown *_pautoEDS; IShellService *_pautoSS; int _eSecureLockIcon; DWORD _fCreatingViewWindow; UINT _uActivateState; LPITEMIDLIST _pidlViewState; IOleCommandTarget *_pctView; LPITEMIDLIST _pidlCur; IShellView *_psv; IShellFolder *_psf; HWND _hwndView; LPWSTR _pszTitleCur; LPITEMIDLIST _pidlPending; IShellView *_psvPending; IShellFolder *_psfPending; HWND _hwndViewPending; LPWSTR _pszTitlePending; BOOL _fIsViewMSHTML; BOOL _fPrivacyImpacted; CLSID _clsidView; CLSID _clsidViewPending; HWND _hwndFrame; LONG _lPhishingFilterStatus; } BASEBROWSERDATALH; cpp_quote("#include ") typedef struct basebrowserdatalh *LPBASEBROWSERDATALH; typedef BASEBROWSERDATAXP BASEBROWSERDATA; typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA; typedef BASEBROWSERDATA *LPBASEBROWSERDATA; cpp_quote("#if 0") typedef HANDLE HMONITOR; cpp_quote("#endif /* 0 */") typedef struct SToolbarItem { IDockingWindow *ptbar; BORDERWIDTHS rcBorderTool; LPWSTR pwszItem; BOOL fShow; HMONITOR hMon; } TOOLBARITEM; typedef struct SToolbarItem *LPTOOLBARITEM; HRESULT GetParentSite( [out] IOleInPlaceSite **ppipsite); HRESULT SetTitle( [in] IShellView *psv, [in] LPCWSTR pszName); HRESULT GetTitle( [in] IShellView *psv, [out] LPWSTR pszName, DWORD cchName); HRESULT GetOleObject( [out] IOleObject **ppobjv); HRESULT GetTravelLog( [out] ITravelLog **pptl); HRESULT ShowControlWindow( UINT id, BOOL fShow); HRESULT IsControlWindowShown( UINT id, [out] BOOL *pfShown); HRESULT IEGetDisplayName( [in] LPCITEMIDLIST pidl, [out] LPWSTR pwszName, UINT uFlags); HRESULT IEParseDisplayName( UINT uiCP, [in] LPCWSTR pwszPath, [out] LPCITEMIDLIST *ppidlOut); HRESULT DisplayParseError( HRESULT hres, [in] LPCWSTR pwszPath); HRESULT NavigateToPidl( [in] LPCITEMIDLIST pidl, DWORD grfHLNF); HRESULT SetNavigateState( BNSTATE bnstate); HRESULT GetNavigateState( [out] BNSTATE *pbnstate); HRESULT NotifyRedirect( [in] IShellView *psv, [in] LPCITEMIDLIST pidl, [out] BOOL *pfDidBrowse); HRESULT UpdateWindowList(); HRESULT UpdateBackForwardState(); HRESULT SetFlags( DWORD dwFlags, DWORD dwFlagMask); HRESULT GetFlags( [out] DWORD *pdwFlags); HRESULT CanNavigateNow(); HRESULT GetPidl( [out] LPCITEMIDLIST *ppidl); HRESULT SetReferrer( [in] LPCITEMIDLIST pidl); DWORD GetBrowserIndex(); HRESULT GetBrowserByIndex( DWORD dwID, [out] IUnknown **ppunk); HRESULT GetHistoryObject( [out] IOleObject **ppole, [out] IStream **pstm, [out] IBindCtx **ppbc); HRESULT SetHistoryObject( [in] IOleObject *pole, BOOL fIsLocalAnchor); HRESULT CacheOLEServer( [in] IOleObject *pole); HRESULT GetSetCodePage( [in] VARIANT *pvarIn, [out] VARIANT *pvarOut); HRESULT OnHttpEquiv( [in] IShellView *psv, BOOL fDone, [in] VARIANT *pvarargIn, [out] VARIANT *pvarargOut); HRESULT GetPalette( [out] HPALETTE *hpal); HRESULT RegisterWindow( BOOL fForceRegister, int swc); } /***************************************************************************** * IShellBrowser2 interface */ [ uuid(68BD21CC-438B-11D2-A560-00A0C92DBFE8), object, pointer_default(unique), local ] interface IBrowserService2 : IBrowserService { typedef struct tagFolderSetData { FOLDERSETTINGS _fs; SHELLVIEWID _vidRestore; DWORD _dwViewPriority; } FOLDERSETDATA; typedef struct tagFolderSetData *LPFOLDERSETDATA; LRESULT WndProcBS( [in] HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); HRESULT SetAsDefFolderSettings(); HRESULT GetViewRect( [out] RECT *prc); HRESULT OnSize( WPARAM wParam); HRESULT OnCreate( [in] struct tagCREATESTRUCTW *pcs); LRESULT OnCommand( WPARAM wParam, LPARAM lParam); HRESULT OnDestroy(); LRESULT OnNotify( [in] struct tagNMHDR *pnm); HRESULT OnSetFocus(); HRESULT OnFrameWindowActivateBS( BOOL fActive); HRESULT ReleaseShellView(); HRESULT ActivatePendingView(); HRESULT CreateViewWindow( [in] IShellView *psvNew, [in] IShellView *psvOld, [in] LPRECT prcView, [out] HWND *phwnd); HRESULT CreateBrowserPropSheetExt( [in] REFIID riid, [out] void **ppv); HRESULT GetViewWindow( [out] HWND *phwndView); HRESULT GetBaseBrowserData( [out] LPCBASEBROWSERDATA *pbbd); LPBASEBROWSERDATA PutBaseBrowserData(); HRESULT InitializeTravelLog( [in] ITravelLog *ptl, DWORD dw); HRESULT SetTopBrowser(); HRESULT Offline( int iCmd); HRESULT AllowViewResize( BOOL f); HRESULT SetActivateState( UINT u); HRESULT UpdateSecureLockIcon( int eSecureLock); HRESULT InitializeDownloadManager(); HRESULT InitializeTransitionSite(); HRESULT _Initialize( [in] HWND hwnd, [in] IUnknown *pauto); HRESULT _CancelPendingNavigationAsync(); HRESULT _CancelPendingView(); HRESULT _MaySaveChanges(); HRESULT _PauseOrResumeView( BOOL fPaused); HRESULT _DisableModeless(); HRESULT _NavigateToPidl( [in] LPCITEMIDLIST pidl, DWORD grfHLNF, DWORD dwFlags); HRESULT _TryShell2Rename( [in] IShellView *psv, [in] LPCITEMIDLIST pidlNew); HRESULT _SwitchActivationNow(); HRESULT _ExecChildren( [in] IUnknown *punkBar, BOOL fBroadcast, [in] const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, [in] VARIANTARG *pvarargIn, [in, out] VARIANTARG *pvarargOut); HRESULT _SendChildren( [in] HWND hwndBar, BOOL fBroadcast, UINT uMsg, WPARAM wParam, LPARAM lParam); HRESULT GetFolderSetData( [out] struct tagFolderSetData *pfsd); HRESULT _OnFocusChange( UINT itb); HRESULT v_ShowHideChildWindows( BOOL fChildOnly); UINT _get_itbLastFocus(); HRESULT _put_itbLastFocus( UINT itbLastFocus); HRESULT _UIActivateView( UINT uState); HRESULT _GetViewBorderRect( [out] RECT *prc); HRESULT _UpdateViewRectSize(); HRESULT _ResizeNextBorder( UINT itb); HRESULT _ResizeView(); HRESULT _GetEffectiveClientArea( [out] LPRECT lprectBorder, [in] HMONITOR hmon); IStream *v_GetViewStream( [in] LPCITEMIDLIST pidl, DWORD grfMode, [in] LPCWSTR pwszName); LRESULT ForwardViewMsg( UINT uMsg, WPARAM wParam, LPARAM lParam); HRESULT SetAcceleratorMenu( [in] HACCEL hacc); int _GetToolbarCount(); LPTOOLBARITEM _GetToolbarItem( int itb); HRESULT _SaveToolbars( [in] IStream *pstm); HRESULT _LoadToolbars( [in] IStream *pstm); HRESULT _CloseAndReleaseToolbars( BOOL fClose); HRESULT v_MayGetNextToolbarFocus( [in] LPMSG lpMsg, UINT itbNext, int citb, [out] LPTOOLBARITEM *pptbi, [out] HWND *phwnd); HRESULT _ResizeNextBorderHelper( UINT itb, BOOL bUseHmonitor); UINT _FindTBar( [in] IUnknown *punkSrc); HRESULT _SetFocus( [in] LPTOOLBARITEM ptbi, [in] HWND hwnd, [in] LPMSG lpMsg); HRESULT v_MayTranslateAccelerator( [in] MSG *pmsg); HRESULT _GetBorderDWHelper( [in] IUnknown *punkSrc, [out] LPRECT lprectBorder, BOOL bUseHmonitor); HRESULT v_CheckZoneCrossing( [in] LPCITEMIDLIST pidl); } /***************************************************************************** * IShellBrowser3 interface */ [ uuid(27D7CE21-762D-48F3-86F3-40E2FD3749C4), object, pointer_default(unique), local ] interface IBrowserService3 : IBrowserService2 { HRESULT _PositionViewWindow( [in] HWND hwnd, [in] LPRECT prc); HRESULT IEParseDisplayNameEx( UINT uiCP, [in] LPCWSTR pwszPath, DWORD dwFlags, [out] LPITEMIDLIST *ppidlOut); } /***************************************************************************** * IShellBrowser4 interface */ [ uuid(639f1bff-e135-4096-abd8-e0f504d649a4), object, pointer_default(unique), local ] interface IBrowserService4 : IBrowserService3 { HRESULT ActivateView( BOOL fPendingView); HRESULT SaveViewState(); HRESULT _ResizeAllBorders(); } cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") /***************************************************************************** * ITrackShellMenu interface */ [ uuid(8278F932-2A3E-11d2-838F-00C04FD918D0), object, pointer_default(unique), local ] interface ITrackShellMenu : IShellMenu { HRESULT SetObscured( [in] HWND hwndTB, [in] IUnknown *punkBand, DWORD dwSMSetFlags); HRESULT Popup( [in] HWND hwnd, [in] POINTL *ppt, [in] RECTL *prcExclude, MP_POPUPFLAGS dwFlags); }; cpp_quote("#endif /* _WIN32_IE_IE60 */") /***************************************************************************** * IAutoCompleteDropDown interface */ [ object, uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB), pointer_default(unique) ] interface IAutoCompleteDropDown : IUnknown { cpp_quote("#define ACDD_VISIBLE 0x0001") HRESULT GetDropDownStatus( [out] DWORD *pdwFlags, [out, string] LPWSTR *ppwszString); HRESULT ResetEnumerator(); } /***************************************************************************** * IExplorerBrowserEvents interface */ [ object, uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F) ] interface IExplorerBrowserEvents : IUnknown { HRESULT OnNavigationPending( [in] PCIDLIST_ABSOLUTE pidlFolder); HRESULT OnViewCreated( [in] IShellView *psv); HRESULT OnNavigationComplete( [in] PCIDLIST_ABSOLUTE pidlFolder); HRESULT OnNavigationFailed( [in] PCIDLIST_ABSOLUTE pidlFolder); } typedef GUID EXPLORERPANE; typedef EXPLORERPANE *REFEXPLORERPANE; cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility") /***************************************************************************** * IExplorerPaneVisibility interface */ [ object, uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC) ] interface IExplorerPaneVisibility : IUnknown { typedef enum tagEXPLORERPANESTATE { EPS_DONTCARE = 0x0, EPS_DEFAULT_ON = 0x1, EPS_DEFAULT_OFF = 0x2, EPS_STATE_MASK = 0xffff, EPS_INITIALSTATE = 0x10000, EPS_FORCE = 0x20000 } EXPLORERPANESTATE; HRESULT GetPaneState( [in] REFEXPLORERPANE ep, [out] EXPLORERPANESTATE *peps); } typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS { EBF_NONE = 0, EBF_SELECTFROMDATAOBJECT = 0x100, EBF_NODROPTARGET = 0x200 } EXPLORER_BROWSER_FILL_FLAGS; typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS { EBO_NONE = 0x00, EBO_NAVIGATEONCE = 0x01, EBO_SHOWFRAMES = 0x02, EBO_ALWAYSNAVIGATE = 0x04, EBO_NOTRAVELLOG = 0x08, EBO_NOWRAPPERWINDOW = 0x10, EBO_HTMLSHAREPOINTVIEW = 0x20 } EXPLORER_BROWSER_OPTIONS; cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser") /***************************************************************************** * IExplorerBrowser interface */ [ object, uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6), pointer_default(unique) ] interface IExplorerBrowser : IUnknown { [local] HRESULT Initialize( [in] HWND hwndParent, [in] const RECT *prc, [in, unique] const FOLDERSETTINGS *pfs); HRESULT Destroy(); [local] HRESULT SetRect( [in,out,unique] HDWP *phdwp, [in] RECT rcBrowser); HRESULT SetPropertyBag( [in, string] LPCWSTR pszPropertyBag); HRESULT SetEmptyText( [in, string] LPCWSTR pszEmptyText); HRESULT SetFolderSettings( [in] const FOLDERSETTINGS *pfs); HRESULT Advise( [in] IExplorerBrowserEvents *psbe, [out] DWORD *pdwCookie); HRESULT Unadvise( [in] DWORD dwCookie); HRESULT SetOptions( [in] EXPLORER_BROWSER_OPTIONS dwFlag); HRESULT GetOptions( [out] EXPLORER_BROWSER_OPTIONS *pdwFlag); HRESULT BrowseToIDList( [in] PCUIDLIST_RELATIVE pidl, [in] UINT uFlags); HRESULT BrowseToObject( [in] IUnknown *punk, [in] UINT uFlags); HRESULT FillFromObject( [in] IUnknown *punk, [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags); HRESULT RemoveAll(); HRESULT GetCurrentView( [in] REFIID riid, [out, iid_is(riid)] IUnknown **ppv); }