summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-11 08:17:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-11 08:17:27 +0000
commitf215e02bf85f68d3a6106c2a1f4f7f063f819064 (patch)
tree6bb5b92c046312c4e95ac2620b10ddf482d3fa8b /src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl
parentInitial commit. (diff)
downloadvirtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.tar.xz
virtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.zip
Adding upstream version 7.0.14-dfsg.upstream/7.0.14-dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl')
-rw-r--r--src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl3408
1 files changed, 3408 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl
new file mode 100644
index 00000000..8e7f041a
--- /dev/null
+++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl
@@ -0,0 +1,3408 @@
+/*
+ * 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
+ */
+
+/*
+ * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
+ * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
+ * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
+ * a choice of LGPL license versions is made available with the language indicating
+ * that LGPLv2 or any later version may be used, or where a choice of which version
+ * of the LGPL is applied is otherwise unspecified.
+ */
+
+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";
+import "propsys.idl";
+import "objectarray.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),
+ 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 [v1_enum] enum {
+ SIGDN_NORMALDISPLAY = 0,
+ SIGDN_PARENTRELATIVEPARSING = 0x80018001,
+ SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
+ SIGDN_PARENTRELATIVEEDITING = 0x80031001,
+ SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
+ SIGDN_FILESYSPATH = 0x80058000,
+ SIGDN_URL = 0x80068000,
+ SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
+ SIGDN_PARENTRELATIVE = 0x80080001
+ } SIGDN; /* & 0xFFFF => SHGDN */
+
+ [v1_enum] enum _SICHINTF
+ {
+ SICHINT_DISPLAY = 0x00000000,
+ SICHINT_CANONICAL = 0x10000000,
+ SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
+ SICHINT_ALLFIELDS = 0x80000000
+ };
+ 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);
+}
+
+/*****************************************************************************
+ * IShellItem2 interface
+ */
+[
+ object,
+ uuid(7E9FB0D3-919F-4307-AB2E-9B1860310C93),
+ pointer_default(unique)
+]
+interface IShellItem2 : IShellItem
+{
+ HRESULT GetPropertyStore(
+ [in] GETPROPERTYSTOREFLAGS flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetPropertyStoreWithCreateObject(
+ [in] GETPROPERTYSTOREFLAGS flags,
+ [in] IUnknown *punkCreateObject,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetPropertyStoreForKeys(
+ [in, size_is(cKeys)] const PROPERTYKEY *rgKeys,
+ [in] UINT cKeys,
+ [in] GETPROPERTYSTOREFLAGS flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetPropertyDescriptionList(
+ [in] REFPROPERTYKEY keyType,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT Update(
+ [in, unique] IBindCtx *pbc);
+
+ HRESULT GetProperty(
+ [in] REFPROPERTYKEY key,
+ [out] PROPVARIANT *ppropvar);
+
+ HRESULT GetCLSID(
+ [in] REFPROPERTYKEY key,
+ [out] CLSID *pclsid);
+
+ HRESULT GetFileTime (
+ [in] REFPROPERTYKEY key,
+ [out] FILETIME *pft);
+
+ HRESULT GetInt32(
+ [in] REFPROPERTYKEY key,
+ [out] int *pi);
+
+ HRESULT GetString(
+ [in] REFPROPERTYKEY key,
+ [out, string] LPWSTR *ppsz);
+
+ HRESULT GetUInt32(
+ [in] REFPROPERTYKEY key,
+ [out] ULONG *pui);
+
+ HRESULT GetUInt64(
+ [in] REFPROPERTYKEY key,
+ [out] ULONGLONG *pull);
+
+ HRESULT GetBool(
+ [in] REFPROPERTYKEY key,
+ [out] BOOL *pf);
+}
+
+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")
+
+/*****************************************************************************
+ * IEnumShellItems interface
+ */
+[
+ object,
+ uuid(70629033-E363-4A28-A567-0DB78006E6D7),
+ pointer_default(unique)
+]
+interface IEnumShellItems : IUnknown
+{
+ [local] HRESULT Next(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
+ [out] ULONG *pceltFetched);
+
+ [call_as(Next)] HRESULT RemoteNext(
+ [in] ULONG celt,
+ [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
+ [out] ULONG *pceltFetched);
+
+ HRESULT Skip(
+ [in] ULONG celt);
+
+ HRESULT Reset();
+
+ HRESULT Clone(
+ [out] IEnumShellItems **ppenum);
+}
+
+/*****************************************************************************
+ * IShellItemArray interface
+ */
+[
+ object,
+ uuid(B63EA76D-1F85-456F-A19C-48159EFA858B),
+ pointer_default(unique)
+]
+interface IShellItemArray : IUnknown
+{
+ typedef [v1_enum] enum SIATTRIBFLAGS {
+ SIATTRIBFLAGS_AND = 0x0001,
+ SIATTRIBFLAGS_OR = 0x0002,
+ SIATTRIBFLAGS_APPCOMPAT = 0x0003,
+ SIATTRIBFLAGS_MASK = 0x0003,
+ SIATTRIBFLAGS_ALLITEMS = 0x4000
+ } SIATTRIBFLAGS;
+ cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
+
+ HRESULT BindToHandler(
+ [in, unique] IBindCtx *pbc,
+ [in] REFGUID bhid,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppvOut);
+
+ HRESULT GetPropertyStore(
+ [in] GETPROPERTYSTOREFLAGS flags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetPropertyDescriptionList(
+ [in] REFPROPERTYKEY keyType,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetAttributes(
+ [in] SIATTRIBFLAGS AttribFlags,
+ [in] SFGAOF sfgaoMask,
+ [out] SFGAOF *psfgaoAttribs);
+
+ HRESULT GetCount(
+ [out] DWORD *pdwNumItems);
+
+ HRESULT GetItemAt(
+ [in] DWORD dwIndex,
+ [out] IShellItem **ppsi);
+
+ HRESULT EnumItems(
+ [out] IEnumShellItems **ppenumShellItems);
+
+}
+
+typedef [v1_enum] enum DATAOBJ_GET_ITEM_FLAGS
+{
+ DOGIF_DEFAULT = 0x0,
+ DOGIF_TRAVERSE_LINK = 0x1,
+ DOGIF_NO_HDROP = 0x2,
+ DOGIF_NO_URL = 0x4,
+ DOGIF_ONLY_IF_ONE = 0x8
+} DATAOBJ_GET_ITEM_FLAGS;
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")
+
+cpp_quote("HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);")
+cpp_quote("HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);")
+cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
+cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")
+cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")
+
+/*****************************************************************************
+ * IShellItemFilter interface
+ */
+[
+ object,
+ uuid(2659B475-EEB8-48B7-8F07-B378810F48CF),
+ pointer_default(unique)
+]
+interface IShellItemFilter : IUnknown
+{
+ HRESULT IncludeItem(
+ [in] IShellItem *psi);
+
+ HRESULT GetEnumFlagsForItem(
+ [in] IShellItem *psi,
+ [out] SHCONTF *pgrfFlags);
+}
+
+/*****************************************************************************
+ * 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 <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 *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 <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, 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);
+}
+
+/*****************************************************************************
+ * IDockingWindow interface
+ */
+[
+ object,
+ uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8)
+]
+interface IDockingWindow : IOleWindow
+{
+ HRESULT ShowDW(
+ [in] BOOL fShow);
+
+ HRESULT CloseDW(
+ [in] DWORD dwReserved);
+
+ HRESULT ResizeBorderDW(
+ [in] LPCRECT prcBorder,
+ [in] IUnknown *punkToolbarSite,
+ [in] BOOL fReserved);
+};
+
+
+/*****************************************************************************
+ * 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_NOASYNC SEE_MASK_NOASYNC")
+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);
+}
+
+
+[
+ object,
+ uuid(3409e930-5a39-11d1-83fa-00a0c90dc849),
+ pointer_default(unique),
+ local
+]
+interface IContextMenuCB : IUnknown
+{
+ HRESULT CallBack(
+ [in] IShellFolder *psf,
+ [in] HWND hwndOwner,
+ [in] IDataObject *pdtobj,
+ [in] UINT uMsg,
+ [in] WPARAM wParam,
+ [in] LPARAM lParam);
+}
+
+/*****************************************************************************
+ * 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);
+}
+
+/*****************************************************************************
+ * ITaskbarList2 interface
+ */
+[
+ object,
+ uuid(602D4995-B13A-429B-A66E-1935E44F4317),
+ pointer_default(unique)
+]
+interface ITaskbarList2 : ITaskbarList
+{
+ HRESULT MarkFullscreenWindow(
+ [in] HWND hwnd,
+ [in] BOOL fullscreen);
+}
+
+cpp_quote("#ifdef MIDL_PASS")
+typedef IUnknown* HIMAGELIST;
+cpp_quote("#endif")
+
+typedef [v1_enum] enum THUMBBUTTONFLAGS {
+ THBF_ENABLED = 0x0000,
+ THBF_DISABLED = 0x0001,
+ THBF_DISMISSONCLICK = 0x0002,
+ THBF_NOBACKGROUND = 0x0004,
+ THBF_HIDDEN = 0x0008,
+ THBF_NONINTERACTIVE = 0x0010
+} THUMBBUTTONFLAGS;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
+
+typedef [v1_enum] enum THUMBBUTTONMASK {
+ THB_BITMAP = 0x0001,
+ THB_ICON = 0x0002,
+ THB_TOOLTIP = 0x0004,
+ THB_FLAGS = 0x0008
+} THUMBBUTTONMASK;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
+
+cpp_quote("#include <pshpack8.h>")
+typedef struct THUMBBUTTON {
+ THUMBBUTTONMASK dwMask;
+ UINT iId;
+ UINT iBitmap;
+ HICON hIcon;
+ WCHAR szTip[260];
+ THUMBBUTTONFLAGS dwFlags;
+} THUMBBUTTON, *LPTHUMBBUTTON;
+cpp_quote("#include <poppack.h>")
+
+[
+ uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
+ object
+]
+interface ITaskbarList3 : ITaskbarList2
+{
+ typedef [v1_enum] enum TBPFLAG {
+ TBPF_NOPROGRESS = 0x0000,
+ TBPF_INDETERMINATE = 0x0001,
+ TBPF_NORMAL = 0x0002,
+ TBPF_ERROR = 0x0004,
+ TBPF_PAUSED = 0x0008
+ } TBPFLAG;
+
+ cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
+
+ HRESULT SetProgressValue(
+ [in] HWND hwnd,
+ [in] ULONGLONG ullCompleted,
+ [in] ULONGLONG ullTotal);
+
+ HRESULT SetProgressState(
+ [in] HWND hwnd,
+ [in] TBPFLAG tbpFlags);
+
+ HRESULT RegisterTab(
+ [in] HWND hwndTab,
+ [in] HWND hwndMDI);
+
+ HRESULT UnregisterTab([in] HWND hwndTab);
+
+ HRESULT SetTabOrder(
+ [in] HWND hwndTab,
+ [in] HWND hwndInsertBefore);
+
+ HRESULT SetTabActive(
+ [in] HWND hwndTab,
+ [in] HWND hwndMDI,
+ [in] DWORD dwReserved);
+
+ HRESULT ThumbBarAddButtons(
+ [in] HWND hwnd,
+ [in] UINT cButtons,
+ [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
+
+ HRESULT ThumbBarUpdateButtons(
+ [in] HWND hwnd,
+ [in] UINT cButtons,
+ [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
+
+ HRESULT ThumbBarSetImageList(
+ [in] HWND hwnd,
+ [in] HIMAGELIST himl);
+
+ HRESULT SetOverlayIcon(
+ [in] HWND hwnd,
+ [in] HICON hIcon,
+ [in, unique, string] LPCWSTR pszDescription);
+
+ HRESULT SetThumbnailTooltip(
+ [in] HWND hwnd,
+ [in, unique, string] LPCWSTR pszTip);
+
+ HRESULT SetThumbnailClip(
+ [in] HWND hwnd,
+ [in] RECT *prcClip);
+}
+
+[
+ uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a),
+ object
+]
+interface ITaskbarList4 : ITaskbarList3
+{
+ typedef [v1_enum] enum STPFLAG {
+ STPF_NONE = 0x0000,
+ STPF_USEAPPTHUMBNAILALWAYS = 0x0001,
+ STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002,
+ STPF_USEAPPPEEKALWAYS = 0x0004,
+ STPF_USEAPPPEEKWHENACTIVE = 0x0008
+ } STPFLAG;
+
+ cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
+
+ HRESULT SetTabProperties(
+ [in] HWND hwndTab,
+ [in] STPFLAG stpFlags);
+}
+
+/*****************************************************************************
+ * 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();
+}
+
+[
+ object,
+ uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
+ pointer_default(unique)
+]
+interface IProfferService : IUnknown
+{
+ HRESULT ProfferService(
+ [in] REFGUID service,
+ [in] IServiceProvider *pService,
+ [out] DWORD *pCookie);
+
+ HRESULT RevokeService([in] DWORD cookie);
+}
+
+/*****************************************************************************
+ * 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)] void **ppv);
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControl interface
+ */
+[
+ object,
+ uuid(028212A3-B627-47E9-8856-C14265554E4F)
+]
+interface INameSpaceTreeControl : IUnknown
+{
+ [v1_enum] enum _NSTCSTYLE {
+ NSTCS_HASEXPANDOS = 0x00000001,
+ NSTCS_HASLINES = 0x00000002,
+ NSTCS_SINGLECLICKEXPAND = 0x00000004,
+ NSTCS_FULLROWSELECT = 0x00000008,
+ NSTCS_SPRINGEXPAND = 0x00000010,
+ NSTCS_HORIZONTALSCROLL = 0x00000020,
+ NSTCS_ROOTHASEXPANDO = 0x00000040,
+ NSTCS_SHOWSELECTIONALWAYS = 0x00000080,
+ NSTCS_NOINFOTIP = 0x00000200,
+ NSTCS_EVENHEIGHT = 0x00000400,
+ NSTCS_NOREPLACEOPEN = 0x00000800,
+ NSTCS_DISABLEDRAGDROP = 0x00001000,
+ NSTCS_NOORDERSTREAM = 0x00002000,
+ NSTCS_RICHTOOLTIP = 0x00004000,
+ NSTCS_BORDER = 0x00008000,
+ NSTCS_NOEDITLABELS = 0x00010000,
+ NSTCS_TABSTOP = 0x00020000,
+ NSTCS_FAVORITESMODE = 0x00080000,
+ NSTCS_AUTOHSCROLL = 0x00100000,
+ NSTCS_FADEINOUTEXPANDOS = 0x00200000,
+ NSTCS_EMPTYTEXT = 0x00400000,
+ NSTCS_CHECKBOXES = 0x00800000,
+ NSTCS_PARTIALCHECKBOXES = 0x01000000,
+ NSTCS_EXCLUSIONCHECKBOXES = 0x02000000,
+ NSTCS_DIMMEDCHECKBOXES = 0x04000000,
+ NSTCS_NOINDENTCHECKS = 0x08000000,
+ NSTCS_ALLOWJUNCTIONS = 0x10000000,
+ NSTCS_SHOWTABSBUTTON = 0x20000000,
+ NSTCS_SHOWDELETEBUTTON = 0x40000000,
+ NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
+ };
+ typedef DWORD NSTCSTYLE;
+
+ [v1_enum] enum _NSTCROOTSTYLE {
+ NSTCRS_VISIBLE = 0x0000,
+ NSTCRS_HIDDEN = 0x0001,
+ NSTCRS_EXPANDED = 0x0002
+ };
+ typedef DWORD NSTCROOTSTYLE;
+
+ [v1_enum] enum _NSTCITEMSTATE {
+ NSTCIS_NONE = 0x0000,
+ NSTCIS_SELECTED = 0x0001,
+ NSTCIS_EXPANDED = 0x0002,
+ NSTCIS_BOLD = 0x0004,
+ NSTCIS_DISABLED = 0x0008,
+ NSTCIS_SELECTEDNOEXPAND = 0x0010
+ };
+ typedef DWORD NSTCITEMSTATE;
+
+ typedef [v1_enum] enum NSTCGNI {
+ NSTCGNI_NEXT = 0,
+ NSTCGNI_NEXTVISIBLE = 1,
+ NSTCGNI_PREV = 2,
+ NSTCGNI_PREVVISIBLE = 3,
+ NSTCGNI_PARENT = 4,
+ NSTCGNI_CHILD = 5,
+ NSTCGNI_FIRSTVISIBLE = 6,
+ NSTCGNI_LASTVISIBLE = 7
+ } NSTCGNI;
+
+ HRESULT Initialize(
+ [in] HWND hwndParent,
+ [in, unique] RECT *prc,
+ [in] NSTCSTYLE nstcsFlags);
+
+ HRESULT TreeAdvise(
+ [in] IUnknown *punk,
+ [out] DWORD *pdwCookie);
+
+ HRESULT TreeUnadvise(
+ [in] DWORD dwCookie);
+
+ HRESULT AppendRoot(
+ [in] IShellItem *psiRoot,
+ [in] SHCONTF grfEnumFlags,
+ [in] NSTCROOTSTYLE grfRootStyle,
+ [in, unique] IShellItemFilter *pif);
+
+ HRESULT InsertRoot(
+ [in] int iIndex,
+ [in] IShellItem *psiRoot,
+ [in] SHCONTF grfEnumFlags,
+ [in] NSTCROOTSTYLE grfRootStyle,
+ [in, unique] IShellItemFilter *pif);
+
+ HRESULT RemoveRoot(
+ [in] IShellItem *psiRoot);
+
+ HRESULT RemoveAllRoots();
+
+ HRESULT GetRootItems(
+ [out] IShellItemArray **ppsiaRootItems);
+
+ HRESULT SetItemState(
+ [in] IShellItem *psi,
+ [in] NSTCITEMSTATE nstcisMask,
+ [in] NSTCITEMSTATE nstcisFlags);
+
+ HRESULT GetItemState(
+ [in] IShellItem *psi,
+ [in] NSTCITEMSTATE nstcismask,
+ [out] NSTCITEMSTATE *pnstcisFlags);
+
+ HRESULT GetSelectedItems(
+ [out] IShellItemArray **psiaItems);
+
+ HRESULT GetItemCustomState(
+ [in] IShellItem *psi,
+ [out] int *piStateNumber);
+
+ HRESULT SetItemCustomState(
+ [in] IShellItem *psi,
+ [in] int iStateNumber);
+
+ HRESULT EnsureItemVisible(
+ [in] IShellItem *psi);
+
+ HRESULT SetTheme(
+ [in, string] LPCWSTR pszTheme);
+
+ HRESULT GetNextItem(
+ [in, unique] IShellItem *psi,
+ [in] NSTCGNI nstcgi,
+ [out] IShellItem **ppsiNext);
+
+ HRESULT HitTest(
+ [in] POINT *ppt,
+ [out] IShellItem **ppsiOut);
+
+ HRESULT GetItemRect(
+ [in] IShellItem *psi,
+ [out] RECT *prect);
+
+ HRESULT CollapseAll();
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControl2 interface
+ */
+[
+ object,
+ uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C)
+]
+interface INameSpaceTreeControl2 : INameSpaceTreeControl
+{
+ typedef [v1_enum] enum NSTCSTYLE2 {
+ NSTCS2_DEFAULT = 0x00,
+ NSTCS2_INTERRUPTNOTIFICATIONS = 0x01,
+ NSTCS2_SHOWNULLSPACEMENU = 0x02,
+ NSTCS2_DISPLAYPADDING = 0x04,
+ NSTCS2_DISPLAYPINNEDONLY = 0x08,
+ NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */
+ NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */
+ } NSTCSTYLE2;
+ cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
+
+ HRESULT SetControlStyle(
+ [in] NSTCSTYLE nstcsMask,
+ [in] NSTCSTYLE nstcsStyle);
+
+ HRESULT GetControlStyle(
+ [in] NSTCSTYLE nstcsMask,
+ [out] NSTCSTYLE *pnstcsStyle);
+
+ HRESULT SetControlStyle2(
+ [in] NSTCSTYLE2 nstcsMask,
+ [in] NSTCSTYLE2 nstcsStyle);
+
+ HRESULT GetControlStyle2(
+ [in] NSTCSTYLE2 nstcsMask,
+ [out] NSTCSTYLE2 *pnstcsStyle);
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControlEvents interface
+ */
+
+[
+ object,
+ uuid(93D77985-B3D8-4484-8318-672CDDA002CE),
+ local
+]
+interface INameSpaceTreeControlEvents : IUnknown
+{
+ [v1_enum] enum _NSTCEHITTEST {
+ NSTCEHT_NOWHERE = 0x0001,
+ NSTCEHT_ONITEMICON = 0x0002,
+ NSTCEHT_ONITEMLABEL = 0x0004,
+ NSTCEHT_ONITEMIDENT = 0x0008,
+ NSTCEHT_ONITEMBUTTON = 0x0010,
+ NSTCEHT_ONITEMRIGHT = 0x0020,
+ NSTCEHT_ONITEMSTATEICON = 0x0040,
+ NSTCEHT_ONITEM = 0x0046,
+ NSTCEHT_ONITEMTABBUTTON = 0x1000
+ };
+ typedef DWORD NSTCEHITTEST;
+
+ [v1_enum] enum _NSTCECLICKTYPE {
+ NSTCECT_LBUTTON = 0x1,
+ NSTCECT_MBUTTON = 0x2,
+ NSTCECT_RBUTTON = 0x3,
+ NSTCECT_BUTTON = 0x3,
+ NSTCECT_DBLCLICK = 0x4
+ };
+ typedef DWORD NSTCECLICKTYPE;
+
+ HRESULT OnItemClick(
+ [in] IShellItem *psi,
+ [in] NSTCEHITTEST nstceHitTest,
+ [in] NSTCECLICKTYPE nstceClickType);
+
+ HRESULT OnPropertyItemCommit(
+ [in] IShellItem *psi);
+
+ HRESULT OnItemStateChanging(
+ [in] IShellItem *psi,
+ [in] NSTCITEMSTATE nstcisMask,
+ [in] NSTCITEMSTATE nstcisState);
+
+ HRESULT OnItemStateChanged(
+ [in] IShellItem *psi,
+ [in] NSTCITEMSTATE nstcisMask,
+ [in] NSTCITEMSTATE nstcisState);
+
+ HRESULT OnSelectionChanged(
+ [in] IShellItemArray *psiaSelection);
+
+ HRESULT OnKeyboardInput(
+ [in] UINT uMsg,
+ [in] WPARAM wParam,
+ [in] LPARAM lParam);
+
+ HRESULT OnBeforeExpand(
+ [in] IShellItem *psi);
+
+ HRESULT OnAfterExpand(
+ [in] IShellItem *psi);
+
+ HRESULT OnBeginLabelEdit(
+ [in] IShellItem *psi);
+
+ HRESULT OnEndLabelEdit(
+ [in] IShellItem *psi);
+
+ HRESULT OnGetToolTip(
+ [in] IShellItem *psi,
+ [out, string, size_is(cchTip)] LPWSTR pszTip,
+ [in] int cchTip);
+
+ HRESULT OnBeforeItemDelete(
+ [in] IShellItem *psi);
+
+ HRESULT OnItemAdded(
+ [in] IShellItem *psi,
+ [in] BOOL fIsRoot);
+
+ HRESULT OnItemDeleted(
+ [in] IShellItem *psi,
+ [in] BOOL fIsRoot);
+
+ HRESULT OnBeforeContextMenu(
+ [in, unique] IShellItem *psi,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT OnAfterContextMenu(
+ [in] IShellItem *psi,
+ [in] IContextMenu *pcmIn,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT OnBeforeStateImageChange(
+ [in] IShellItem *psi);
+
+ HRESULT OnGetDefaultIconIndex(
+ [in] IShellItem *psi,
+ [out] int *piDefaultIcon,
+ [out] int *piOpenIcon);
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControlCustomDraw interface
+ */
+[
+ object,
+ uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78),
+ local
+]
+
+interface INameSpaceTreeControlCustomDraw : IUnknown
+{
+ typedef struct NSTCCUSTOMDRAW
+ {
+ IShellItem *psi;
+ UINT uItemState;
+ NSTCITEMSTATE nstcis;
+ LPCWSTR pszText;
+ int iImage;
+ HIMAGELIST himl;
+ int iLevel;
+ int iIndent;
+ } NSTCCUSTOMDRAW;
+
+ HRESULT PrePaint(
+ [in] HDC hdc,
+ [in] RECT *prc,
+ [out] LRESULT *plres);
+
+ HRESULT PostPaint(
+ [in] HDC hdc,
+ [in] RECT *prc);
+
+ HRESULT ItemPrePaint(
+ [in] HDC hdc,
+ [in] RECT *prc,
+ [in, out] COLORREF *pclrText,
+ [in, out] COLORREF *pclrTextBk,
+ [out] LRESULT *plres);
+
+ HRESULT ItemPostPaint(
+ [in] HDC hdc,
+ [in] RECT *prc,
+ [in] NSTCCUSTOMDRAW *pnstccdItem);
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControlDropHandler interface
+ */
+[
+ object,
+ uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51),
+ local
+]
+interface INameSpaceTreeControlDropHandler : IUnknown
+{
+ HRESULT OnDragEnter(
+ [in, unique] IShellItem *psiOver,
+ [in] IShellItemArray *psiaData,
+ [in] BOOL fOutsideSource,
+ [in] DWORD grfKeyState,
+ [in, out] DWORD *pdwEffect);
+
+ HRESULT OnDragOver(
+ [in, unique] IShellItem *psiOver,
+ [in] IShellItemArray *psiaData,
+ [in] DWORD grfKeyState,
+ [in, out] DWORD *pdwEffect);
+
+ HRESULT OnDragPosition(
+ [in, unique] IShellItem *psiOver,
+ [in] IShellItemArray *psiaData,
+ [in] int iNewPosition,
+ [in] int iOldPosition);
+
+ HRESULT OnDrop(
+ [in, unique] IShellItem *psiOver,
+ [in] IShellItemArray *psiaData,
+ [in] int iPosition,
+ [in] DWORD grfKeyState,
+ [in, out] DWORD *pdwEffect);
+
+ HRESULT OnDropPosition(
+ [in, unique] IShellItem *psiOver,
+ [in] IShellItemArray *psiaData,
+ [in] int iNewPosition,
+ [in] int iOldPosition);
+
+ HRESULT OnDragLeave(
+ [in, unique] IShellItem *psiOver);
+}
+cpp_quote("#define NSTCDHPOS_ONTOP -1")
+
+interface IFileDialog;
+
+typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
+{
+ FDEOR_DEFAULT = 0,
+ FDEOR_ACCCEP = 1,
+ FDEOR_REFUSE = 2
+} FDE_OVERWRITE_RESPONSE;
+
+typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE
+{
+ FDESVR_DEFAULT = 0,
+ FDESVR_ACCEPT = 1,
+ FDESVR_REFUSE = 2
+} FDE_SHAREVIOLATION_RESPONSE;
+
+/*****************************************************************************
+ * IFileDialogEvents interface
+ */
+[
+ object,
+ uuid(973510DB-7D7F-452B-8975-74A85828D354),
+ pointer_default(unique)
+]
+interface IFileDialogEvents : IUnknown
+{
+ HRESULT OnFileOk(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnFolderChanging(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psiFolder);
+
+ HRESULT OnFolderChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnSelectionChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnShareViolation(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psi,
+ [out] FDE_SHAREVIOLATION_RESPONSE *pResponse);
+
+ HRESULT OnTypeChange(
+ [in] IFileDialog *pfd);
+
+ HRESULT OnOverwrite(
+ [in] IFileDialog *pfd,
+ [in] IShellItem *psi,
+ [out] FDE_OVERWRITE_RESPONSE *pResponse);
+}
+
+/*****************************************************************************
+ * IModalWindow interface
+ */
+[
+ object,
+ uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802),
+ pointer_default(unique)
+]
+interface IModalWindow : IUnknown
+{
+ [local]
+ HRESULT Show(
+ [in, unique, annotation("__in_opt")] HWND hwndOwner);
+
+ [call_as(Show)]
+ HRESULT RemoteShow(
+ [in, unique] HWND hwndOwner);
+}
+
+typedef [v1_enum] enum FDAP
+{
+ FDAP_BOTTOM = 0,
+ FDAP_TOP = 1
+} FDAP;
+
+/*****************************************************************************
+ * IFileDialog interface
+ */
+[
+ object,
+ uuid(42F85136-DB7E-439C-85F1-E4075D135FC8),
+ pointer_default(unique)
+]
+interface IFileDialog : IModalWindow
+{
+ [v1_enum] enum _FILEOPENDIALOGOPTIONS
+ {
+ FOS_OVERWRITEPROMPT = 0x00000002,
+ FOS_STRICTFILETYPES = 0x00000004,
+ FOS_NOCHANGEDIR = 0x00000008,
+ FOS_PICKFOLDERS = 0x00000020,
+ FOS_FORCEFILESYSTEM = 0x00000040,
+ FOS_ALLNONSTORAGEITEMS = 0x00000080,
+ FOS_NOVALIDATE = 0x00000100,
+ FOS_ALLOWMULTISELECT = 0x00000200,
+ FOS_PATHMUSTEXIST = 0x00000800,
+ FOS_FILEMUSTEXIST = 0x00001000,
+ FOS_CREATEPROMPT = 0x00002000,
+ FOS_SHAREAWARE = 0x00004000,
+ FOS_NOREADONLYRETURN = 0x00008000,
+ FOS_NOTESTFILECREATE = 0x00010000,
+ FOS_HIDEMRUPLACES = 0x00020000,
+ FOS_HIDEPINNEDPLACES = 0x00040000,
+ FOS_NODEREFERENCELINKS = 0x00100000,
+ FOS_DONTADDTORECENT = 0x02000000,
+ FOS_FORCESHOWHIDDEN = 0x10000000,
+ FOS_DEFAULTNOMINIMODE = 0x20000000,
+ FOS_FORCEPREVIEWPANEON = 0x40000000
+ };
+ typedef DWORD FILEOPENDIALOGOPTIONS;
+
+ HRESULT SetFileTypes(
+ [in] UINT cFileTypes,
+ [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec);
+
+ HRESULT SetFileTypeIndex(
+ [in] UINT iFileType);
+
+ HRESULT GetFileTypeIndex(
+ [out] UINT *piFileType);
+
+ HRESULT Advise(
+ [in] IFileDialogEvents *pfde,
+ [out] DWORD *pdwCookie);
+
+ HRESULT Unadvise(
+ [in] DWORD dwCookie);
+
+ HRESULT SetOptions(
+ [in] FILEOPENDIALOGOPTIONS fos);
+
+ HRESULT GetOptions(
+ [in] FILEOPENDIALOGOPTIONS *pfos);
+
+ HRESULT SetDefaultFolder(
+ [in] IShellItem *psi);
+
+ HRESULT SetFolder(
+ [in] IShellItem *psi);
+
+ HRESULT GetFolder(
+ [out] IShellItem **ppsi);
+
+ HRESULT GetCurrentSelection(
+ [out] IShellItem **ppsi);
+
+ HRESULT SetFileName(
+ [in, string] LPCWSTR pszName);
+
+ HRESULT GetFileName(
+ [out, string] LPWSTR *pszName);
+
+ HRESULT SetTitle(
+ [in, string] LPCWSTR pszTitle);
+
+ HRESULT SetOkButtonLabel(
+ [in, string] LPCWSTR pszText);
+
+ HRESULT SetFileNameLabel(
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT GetResult(
+ [out] IShellItem **ppsi);
+
+ HRESULT AddPlace(
+ [in] IShellItem *psi,
+ [in] FDAP fdap);
+
+ HRESULT SetDefaultExtension(
+ [in, string] LPCWSTR pszDefaultExtension);
+
+ HRESULT Close(
+ [in] HRESULT hr);
+
+ HRESULT SetClientGuid(
+ [in] REFGUID guid);
+
+ HRESULT ClearClientData();
+
+ HRESULT SetFilter(
+ [in] IShellItemFilter *pFilter);
+}
+
+/*****************************************************************************
+ * IFileDialog2 interface
+ */
+[
+ object,
+ uuid(61744FC7-85B5-4791-A9B0-272276309B13),
+ pointer_default(unique)
+]
+interface IFileDialog2 : IFileDialog
+{
+ HRESULT SetCancelButtonLabel(
+ [in] LPCWSTR pszLabel);
+
+ HRESULT SetNavigationRoot(
+ [in] IShellItem *psi);
+}
+
+/*****************************************************************************
+ * IFileOperationProgressSink interface
+ */
+[
+ object,
+ uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2),
+ pointer_default(unique)
+]
+interface IFileOperationProgressSink : IUnknown
+{
+ HRESULT StartOperations();
+
+ HRESULT FinishOperations(
+ [in] HRESULT hrResult);
+
+ HRESULT PreRenameItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostRenameItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in, string] LPCWSTR pszNewName,
+ [in] HRESULT hrRename,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreMoveItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostMoveItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in] HRESULT hrMove,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreCopyItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostCopyItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in] HRESULT hrCopy,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreDeleteItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem);
+
+ HRESULT PostDeleteItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiItem,
+ [in] HRESULT hrDelete,
+ [in] IShellItem *psiNewlyCreated);
+
+ HRESULT PreNewItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName);
+
+ HRESULT PostNewItem(
+ [in] DWORD dwFlags,
+ [in] IShellItem *psiDestinationFolder,
+ [in, unique, string] LPCWSTR pszNewName,
+ [in, unique, string] LPCWSTR pszTemplateName,
+ [in] DWORD dwFileAttributes,
+ [in] HRESULT hrNew,
+ [in] IShellItem *psiNewItem);
+
+ HRESULT UpdateProgress(
+ [in] UINT iWorkTotal,
+ [in] UINT iWorkSoFar);
+
+ HRESULT ResetTimer();
+
+ HRESULT PauseTimer();
+
+ HRESULT ResumeTimer();
+}
+
+/*****************************************************************************
+ * IFileSaveDialog interface
+ */
+[
+ object,
+ uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB),
+ pointer_default(unique)
+]
+interface IFileSaveDialog : IFileDialog
+{
+ HRESULT SetSaveAsItem(
+ [in] IShellItem *psi);
+
+ HRESULT SetProperties(
+ [in] IPropertyStore *pStore);
+
+ HRESULT SetCollectedProperties(
+ [in] IPropertyDescriptionList *pList,
+ [in] BOOL fAppendDefault);
+
+ HRESULT GetProperties(
+ [in] IPropertyStore **ppStore);
+
+ HRESULT ApplyProperties(
+ [in] IShellItem *psi,
+ [in] IPropertyStore *pStore,
+ [in, unique] HWND hwnd,
+ [in, unique] IFileOperationProgressSink *pSink);
+}
+
+
+/*****************************************************************************
+ * IFileOpenDialog interface
+ */
+[
+ object,
+ uuid(D57C7288-D4AD-4768-BE02-9D969532D960),
+ pointer_default(unique)
+]
+interface IFileOpenDialog : IFileDialog
+{
+ HRESULT GetResults(
+ [out] IShellItemArray **ppenum);
+
+ HRESULT GetSelectedItems(
+ [out] IShellItemArray **ppsai);
+}
+
+typedef [v1_enum] enum CDCONTROLSTATEF
+{
+ CDCS_INACTIVE = 0x0,
+ CDCS_ENABLED = 0x1,
+ CDCS_VISIBLE = 0x2,
+ CDCS_ENABLEDVISIBLE = 0x3
+} CDCONTROLSTATEF;
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")
+/*****************************************************************************
+ * IFileDialogCustomize interface
+ */
+[
+ object,
+ uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034),
+ pointer_default(unique)
+]
+interface IFileDialogCustomize : IUnknown
+{
+ HRESULT EnableOpenDropDown(
+ [in] DWORD dwIDCtl);
+
+ HRESULT AddMenu(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT AddPushButton(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT AddComboBox(
+ [in] DWORD dwIDCtl);
+
+ HRESULT AddRadioButtonList(
+ [in] DWORD dwIDCtl);
+
+ HRESULT AddCheckButton(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszLabel,
+ [in] BOOL bChecked);
+
+ HRESULT AddEditBox(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszText);
+
+ HRESULT AddSeparator(
+ [in] DWORD dwIDCtl);
+
+ HRESULT AddText(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszText);
+
+ HRESULT SetControlLabel(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT GetControlState(
+ [in] DWORD dwIDCtl,
+ [out] CDCONTROLSTATEF *pdwState);
+
+ HRESULT SetControlState(
+ [in] DWORD dwIDCtl,
+ [in] CDCONTROLSTATEF dwState);
+
+ HRESULT GetEditBoxText(
+ [in] DWORD dwIDCtl,
+ [out, string] WCHAR **ppszText);
+
+ HRESULT SetEditBoxText(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszText);
+
+ HRESULT GetCheckButtonState(
+ [in] DWORD dwIDCtl,
+ [out] BOOL *pbChecked);
+
+ HRESULT SetCheckButtonState(
+ [in] DWORD dwIDCtl,
+ [in] BOOL bChecked);
+
+ HRESULT AddControlItem(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem,
+ [in] LPCWSTR pszLabel);
+
+ HRESULT RemoveControlItem(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem);
+
+ HRESULT RemoveAllControlItems(
+ [in] DWORD dwIDCtl);
+
+ HRESULT GetControlItemState(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem,
+ [out] CDCONTROLSTATEF *pdwState);
+
+ HRESULT SetControlItemState(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem,
+ [in] CDCONTROLSTATEF dwState);
+
+ HRESULT GetSelectedControlItem(
+ [in] DWORD dwIDCtl,
+ [out] DWORD *pdwIDItem);
+
+ HRESULT SetSelectedControlItem(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem);
+
+ HRESULT StartVisualGroup(
+ [in] DWORD dwIDCtl,
+ [in, string] LPCWSTR pszLabel);
+
+ HRESULT EndVisualGroup();
+
+ HRESULT MakeProminent(
+ [in] DWORD dwIDCtl);
+
+ HRESULT SetControlItemText(
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem,
+ [in, string] LPCWSTR pszLabel);
+}
+
+/*****************************************************************************
+ * IFileDialogControlEvents interface
+ */
+[
+ object,
+ uuid(36116642-D713-4B97-9B83-7484A9D00433),
+ pointer_default(unique)
+]
+interface IFileDialogControlEvents : IUnknown
+{
+ HRESULT OnItemSelected(
+ [in] IFileDialogCustomize *pfdc,
+ [in] DWORD dwIDCtl,
+ [in] DWORD dwIDItem);
+
+ HRESULT OnButtonClicked(
+ [in] IFileDialogCustomize *pfdc,
+ [in] DWORD dwIDCtl);
+
+ HRESULT OnCheckButtonToggled(
+ [in] IFileDialogCustomize *pfdc,
+ [in] BOOL dwIDCtl,
+ [in] BOOL bChecked);
+
+ HRESULT OnControlActivating(
+ [in] IFileDialogCustomize *pfdc,
+ [in] DWORD dwIDCtl);
+}
+
+typedef [v1_enum] enum tagKF_CATEGORY
+{
+ KF_CATEGORY_VIRTUAL = 0x00000001,
+ KF_CATEGORY_FIXED = 0x00000002,
+ KF_CATEGORY_COMMON = 0x00000003,
+ KF_CATEGORY_PERUSER = 0x00000004
+} KF_CATEGORY;
+
+typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES
+{
+ KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff,
+ KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001,
+ KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00,
+ KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100,
+ KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200,
+ KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400
+} KF_REDIRECTION_CAPABILITIES;
+
+typedef [v1_enum] enum tagKF_DEFINITION_FLAGS
+{
+ KFDF_LOCAL_REDIRECT_ONLY = 0x00000002,
+ KFDF_ROAMABLE = 0x00000004,
+ KFDF_PRECREATE = 0x00000008,
+ KFDF_STREAM = 0x00000010,
+ KFDF_PUBLISHEXPANDEDPATH = 0x00000020
+} KF_DEFINITION_FLAGS;
+
+typedef struct tagKNOWNFOLDER_DEFINITION
+{
+ KF_CATEGORY category;
+ LPWSTR pszName;
+ LPWSTR pszDescription;
+ KNOWNFOLDERID fidParent;
+ LPWSTR pszRelativePath;
+ LPWSTR pszParsingName;
+ LPWSTR pszTooltip;
+ LPWSTR pszLocalizedName;
+ LPWSTR pszIcon;
+ LPWSTR pszSecurity;
+ DWORD dwAttributes;
+ KF_DEFINITION_FLAGS kfdFlags;
+ FOLDERTYPEID ftidType;
+} KNOWNFOLDER_DEFINITION;
+
+[
+ object,
+ uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488),
+ pointer_default(ref)
+]
+interface IKnownFolder : IUnknown
+{
+ HRESULT GetId(
+ [out] KNOWNFOLDERID *pkfid);
+
+ HRESULT GetCategory(
+ [out] KF_CATEGORY *pCategory);
+
+ HRESULT GetShellItem(
+ [in] DWORD dwFlags,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT GetPath(
+ [in] DWORD dwFlags,
+ [out, string] LPWSTR *ppszPath);
+
+ HRESULT SetPath(
+ [in] DWORD dwFlags,
+ [in, string] LPCWSTR pszPath);
+
+ HRESULT GetIDList(
+ [in] DWORD dwFlags,
+ [out] PIDLIST_ABSOLUTE *ppidl);
+
+ HRESULT GetFolderType(
+ [out] FOLDERTYPEID *pftid);
+
+ HRESULT GetRedirectionCapabilities(
+ [out] KF_REDIRECTION_CAPABILITIES *pCapabilities);
+
+ HRESULT GetFolderDefinition(
+ [out] KNOWNFOLDER_DEFINITION *pKFD);
+}
+
+typedef [v1_enum] enum tagKF_REDIRECT_FLAGS
+{
+ KF_REDIRECT_USER_EXCLUSIVE = 0x00000001,
+ KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002,
+ KF_REDIRECT_OWNER_USER = 0x00000004,
+ KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008,
+ KF_REDIRECT_CHECK_ONLY = 0x00000010,
+ KF_REDIRECT_WITH_UI = 0x00000020,
+ KF_REDIRECT_UNPIN = 0x00000040,
+ KF_REDIRECT_PIN = 0x00000080,
+ KF_REDIRECT_COPY_CONTENTS = 0x00000200,
+ KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400,
+ KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800
+} KF_REDIRECT_FLAGS;
+
+[
+ object,
+ uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018),
+ pointer_default(ref)
+]
+interface IKnownFolderManager : IUnknown
+{
+ typedef [v1_enum] enum tagFFFP_MODE
+ {
+ FFFP_EXACTMATCH,
+ FFFP_NEARESTPARENTMATCH
+ } FFFP_MODE;
+
+ HRESULT FolderIdFromCsidl(
+ [in] int nCsidl,
+ [out] KNOWNFOLDERID *pfid);
+
+ HRESULT FolderIdToCsidl(
+ [in] REFKNOWNFOLDERID rfid,
+ [out] int *pnCsidl);
+
+ HRESULT GetFolderIds(
+ [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId,
+ [in, out] UINT *pCount);
+
+ HRESULT GetFolder(
+ [in] REFKNOWNFOLDERID rfid,
+ [out] IKnownFolder **ppkf);
+
+ HRESULT GetFolderByName(
+ [in, string] LPCWSTR pszCanonicalName,
+ [out] IKnownFolder **ppkf);
+
+ HRESULT RegisterFolder(
+ [in] REFKNOWNFOLDERID rfid,
+ [in] KNOWNFOLDER_DEFINITION const *pKFD);
+
+ HRESULT UnregisterFolder(
+ [in] REFKNOWNFOLDERID rfid);
+
+ HRESULT FindFolderFromPath(
+ [in, string] LPCWSTR pszPath,
+ [in] FFFP_MODE mode,
+ [out] IKnownFolder **ppkf);
+
+ HRESULT FindFolderFromIDList(
+ [in] PCIDLIST_ABSOLUTE pidl,
+ [out] IKnownFolder **ppkf);
+
+ HRESULT Redirect(
+ [in] REFKNOWNFOLDERID rfid,
+ [in, unique] HWND hwnd,
+ [in] KF_REDIRECT_FLAGS flags,
+ [in, unique, string] LPCWSTR pszTargetPath,
+ [in] UINT cFolders,
+ [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion,
+ [out, string] LPWSTR *ppszError);
+}
+
+/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */
+cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)")
+cpp_quote("{")
+cpp_quote(" CoTaskMemFree(pKFD->pszName);")
+cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")
+cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")
+cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")
+cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")
+cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")
+cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")
+cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")
+cpp_quote("}")
+
+typedef [v1_enum] enum ASSOCIATIONLEVEL {
+ AL_MACHINE,
+ AL_EFFECTIVE,
+ AL_USER
+} ASSOCIATIONLEVEL;
+
+typedef [v1_enum] enum ASSOCIATIONTYPE {
+ AT_FILEEXTENSION,
+ AT_URLPROTOCOL,
+ AT_STARTMENUCLIENT,
+ AT_MIMETYPE
+} ASSOCIATIONTYPE;
+
+[
+ object,
+ uuid(4e530b0a-e611-4c77-a3ac-9031d022281b),
+ pointer_default(unique)
+]
+interface IApplicationAssociationRegistration : IUnknown
+{
+ HRESULT QueryCurrentDefault(
+ [in, string] LPCWSTR pszQuery,
+ [in] ASSOCIATIONTYPE atQueryType,
+ [in] ASSOCIATIONLEVEL alQueryLevel,
+ [out, string] LPWSTR *ppszAssociation);
+
+ HRESULT QueryAppIsDefault(
+ [in, string] LPCWSTR pszQuery,
+ [in] ASSOCIATIONTYPE atQueryType,
+ [in] ASSOCIATIONLEVEL alQueryLevel,
+ [in, string] LPCWSTR pszAppRegistryName,
+ [out] BOOL *pfDefault);
+
+ HRESULT QueryAppIsDefaultAll(
+ [in] ASSOCIATIONLEVEL alQueryLevel,
+ [in, string] LPCWSTR pszAppRegistryName,
+ [out] BOOL* pfDefault);
+
+ HRESULT SetAppAsDefault(
+ [in, string] LPCWSTR pszAppRegistryName,
+ [in, string] LPCWSTR pszSet,
+ [in] ASSOCIATIONTYPE atSetType);
+
+ HRESULT SetAppAsDefaultAll(
+ [in, string] LPCWSTR pszAppRegistryName);
+
+ HRESULT ClearUserAssociations();
+}
+
+[
+ uuid(6332debf-87b5-4670-90c0-5e57b408a49e),
+ object,
+ pointer_default(unique)
+]
+interface ICustomDestinationList : IUnknown
+{
+ typedef [v1_enum] enum KNOWNDESTCATEGORY {
+ KDC_FREQUENT = 1,
+ KDC_RECENT
+ } KNOWNDESTCATEGORY;
+
+ HRESULT SetAppID([in, string] LPCWSTR pszAppID);
+
+ HRESULT BeginList(
+ [out] UINT *pcMinSlots,
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT AppendCategory(
+ [in, string] LPCWSTR pszCategory,
+ [in] IObjectArray *poa);
+
+ HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category);
+ HRESULT AddUserTasks([in] IObjectArray *poa);
+ HRESULT CommitList();
+
+ HRESULT GetRemovedDestinations(
+ [in] REFIID riid,
+ [out, iid_is(riid)] void **ppv);
+
+ HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID);
+ HRESULT AbortList();
+}
+
+/*****************************************************************************
+ * ShellObjects typelibrary
+ */
+[
+ uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE),
+ lcid(0x0000),
+ version(1.0)
+]
+library ShellObjects
+{
+ [
+ uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB)
+ ]
+ coclass ExplorerBrowser
+ {
+ interface IExplorerBrowser;
+ }
+
+ [
+ uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7)
+ ]
+ coclass FileOpenDialog
+ {
+ interface IFileOpenDialog;
+ }
+
+ [
+ uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B)
+ ]
+ coclass FileSaveDialog
+ {
+ interface IFileSaveDialog;
+ }
+
+ [
+ uuid(AE054212-3535-4430-83ED-D501AA6680E6)
+ ]
+ coclass NamespaceTreeControl
+ {
+ interface INameSpaceTreeControl2;
+ }
+
+ [
+ uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a)
+ ]
+ coclass KnownFolderManager
+ {
+ interface IKnownFolderManager;
+ }
+
+ [
+ uuid(591209c7-767b-42b2-9fba-44ee4615f2c7)
+ ]
+ coclass ApplicationAssociationRegistration
+ {
+ interface IApplicationAssociationRegistration;
+ }
+
+ [
+ uuid(00021401-0000-0000-c000-000000000046)
+ ]
+ coclass ShellLink
+ {
+ interface IShellLinkW;
+ }
+
+ [
+ uuid(56fdf344-fd6d-11d0-958a-006097c9a090)
+ ]
+ coclass TaskbarList
+ {
+ interface ITaskbarList4;
+ }
+
+ [
+ uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6)
+ ]
+ coclass DestinationList {
+ interface ICustomDestinationList;
+ }
+
+ [
+ uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a)
+ ]
+ coclass EnumerableObjectCollection
+ {
+ interface IEnumObjects;
+ }
+}