reactos/include/psdk/shobjidl.idl
Timo Kreuzer 9ea495ba33 Create a branch for header work.
svn path=/branches/header-work/; revision=45691
2010-02-26 22:57:55 +00:00

2729 lines
68 KiB
Text

/*
* 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 <sherrors.h> */")
/*****************************************************************************
* 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 <prsht.h>")
cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
cpp_quote("#endif")
[
object,
uuid(000214E9-0000-0000-C000-000000000046),
pointer_default(unique)
]
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 SHCIDS_ALLFIELDS 0x80000000L")
cpp_quote("#define SHCIDS_CANONICALONLY 0x10000000L")
cpp_quote("#define SHCIDS_BITMASK 0xFFFF0000L")
cpp_quote("#define SHCIDS_COLUMNMASK 0x0000FFFFL")
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 enum
{
SHCOLSTATE_TYPE_STR = 0x00000001,
SHCOLSTATE_TYPE_INT = 0x00000002,
SHCOLSTATE_TYPE_DATE = 0x00000003,
SHCOLSTATE_TYPEMASK = 0x0000000f,
SHCOLSTATE_ONBYDEFAULT = 0x00000010,
SHCOLSTATE_SLOW = 0x00000020,
SHCOLSTATE_EXTENDED = 0x00000040,
SHCOLSTATE_SECONDARYUI = 0x00000080,
SHCOLSTATE_HIDDEN = 0x00000100,
SHCOLSTATE_PREFER_VARCMP = 0x00000200
} SHCOLSTATE;
typedef DWORD SHCOLSTATEF;
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);
}
/*****************************************************************************
* 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
} FOLDERFLAGS;
typedef enum
{
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_LAST = FVM_THUMBSTRIP
} FOLDERVIEWMODE;
typedef struct
{
UINT ViewMode;
UINT fFlags;
} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
/*****************************************************************************
* 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);
}
[
uuid(88E39E80-3578-11CF-AE69-08002B2E1262),
object,
pointer_default(unique)
]
interface IShellView2 : IShellView
{
typedef GUID SHELLVIEWID;
cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")
cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")
cpp_quote("#include <pshpack8.h>")
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 <poppack.h>")
HRESULT GetView(
[in, out] SHELLVIEWID* pvid,
[in] ULONG uView);
HRESULT CreateViewWindow2(
[in] LPSV2CVW2_PARAMS lpParams);
HRESULT HandleRename(
[in, unique] PCUITEMID_CHILD pidlNew);
HRESULT SelectAndPositionItem(
[in] PCUITEMID_CHILD pidlItem,
[in] UINT uFlags,
[in, unique] POINT *ppt);
}
[
uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
object,
pointer_default(unique)
]
interface IShellView3 : IShellView2
{
enum tagSV3CVW3
{
SV3CVW3_DEFAULT = 0x00000000,
SV3CVW3_NONINTERACTIVE = 0x00000001,
SV3CVW3_FORCEVIEWMODE = 0x00000002,
SV3CVW3_FORCEFOLDERFLAGS = 0x00000004,
};
typedef DWORD SV3CVW3_FLAGS;
HRESULT CreateViewWindow3(
[in] IShellBrowser *psbOwner,
[in, unique] IShellView *psvPrev,
[in] SV3CVW3_FLAGS dwViewFlags,
[in] FOLDERFLAGS dwMask,
[in] FOLDERFLAGS dwFlags,
[in] FOLDERVIEWMODE fvMode,
[in, unique] const SHELLVIEWID *pvid,
[in] const RECT *prcView,
[out] HWND *phwndView);
}
/*****************************************************************************
* 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_NOAUTOSELECT 0x04000000")
cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
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 <commctrl.h>")
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] 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)
]
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)
]
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 );
}
/*****************************************************************************
* 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)
]
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)
]
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)
]
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)
]
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)
]
interface IURLSearchHook : IUnknown
{
HRESULT Translate(
[in, out] LPWSTR lpwszSearchURL,
[in] DWORD cchBufferSize);
}
/*****************************************************************************
* ISearchContext interface
*/
[
object,
uuid(09f656a2-41af-480c-88f7-16cc0d164615),
pointer_default(unique)
]
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)
]
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)
]
interface INewShortcutHookA : IUnknown
{
HRESULT SetReferent(
[in] LPCSTR pcszReferent,
[in] HWND hwnd);
HRESULT GetReferent(
[out] LPCSTR 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)
]
interface INewShortcutHookW : IUnknown
{
HRESULT SetReferent(
[in] LPCWSTR pcszReferent,
[in] HWND hwnd);
HRESULT GetReferent(
[out] LPCWSTR 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)
]
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)
]
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)
]
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 <pshpack8.h>")
typedef struct tagDESKBANDINFO
{
DWORD dwMask;
POINTL ptMinSize;
POINTL ptMaxSize;
POINTL ptIntegral;
POINTL ptActual;
WCHAR wszTitle[256];
DWORD dwModeFlags;
COLORREF crBkgnd;
} DESKBANDINFO;
cpp_quote("#include <poppack.h>")
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 (NTDDI_VERSION >= NTDDI_LONGHORN)")
/*****************************************************************************
* IDeskBandInfo interface
*/
[
uuid(77E425FC-CBF9-4307-BA6A-BB5727745661),
object,
]
interface IDeskBandInfo : IUnknown
{
HRESULT GetDefaultBandWidth(
[in] DWORD dwBandID,
[in] DWORD dwViewMode,
[out] int *pnWidth);
}
/*****************************************************************************
* IDeskBand2 interface
*/
[
uuid(79D16DE4-ABEE-4021-8D9D-9169B261D657),
object,
]
interface IDeskBand2 : IDeskBand
{
HRESULT CanRenderComposited([out] BOOL *pfCanRenderComposited);
HRESULT SetCompositionState([in] BOOL fCompositionEnabled);
HRESULT GetCompositionState([out] BOOL *pfCompositionEnabled);
}
cpp_quote("#endif // NTDDI_LONGHORN")
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 <pshpack8.h>")
typedef struct tagBANDSITEINFO
{
DWORD dwMask;
DWORD dwState;
DWORD dwStyle;
} BANDSITEINFO;
cpp_quote("#include <poppack.h>")
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 rguidService,
[in] IServiceProvider *psp,
[out] DWORD *pdwCookie);
HRESULT RevokeService(
[in] DWORD dwCookie);
}
/*****************************************************************************
* IShellMenuCallback interface
*/
cpp_quote("#include <pshpack8.h>")
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 <poppack.h>")
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 <pshpack8.h>")
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 <poppack.h>")
typedef struct basebrowserdatalh *LPBASEBROWSERDATALH;
typedef BASEBROWSERDATAXP BASEBROWSERDATA;
typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA;
typedef BASEBROWSERDATA *LPBASEBROWSERDATA;
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 */")