mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 19:43:04 +00:00

Fix the shell32 apitests so that they pass on Windows Server 2003 - Windows 10. Many of these fixes are for Vista+, but the most important fixes are for ShellExecCmdLine and FindExecutable which had issues closing windows after tests and deleting test files. Failing to delete these files breaks the other test (i.e. running ShellExecCmdLine would break FindExecutable and vis-versa.)
4956 lines
134 KiB
Text
4956 lines
134 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";
|
|
import "propsys.idl";
|
|
import "objectarray.idl";
|
|
/* FIXME: import "structuredquery.idl"; */
|
|
|
|
cpp_quote("/* FIXME: #include <sherrors.h> */")
|
|
|
|
cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
|
|
cpp_quote("#undef PlaySound")
|
|
cpp_quote("#endif")
|
|
|
|
|
|
/*****************************************************************************
|
|
* IPersistFolder interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(000214ea-0000-0000-c000-000000000046),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPersistFolder : IPersist
|
|
{
|
|
typedef IPersistFolder *LPPERSISTFOLDER;
|
|
|
|
HRESULT Initialize( [in] PCIDLIST_ABSOLUTE pidl );
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IPersistFolder2 interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPersistFolder2 : IPersistFolder
|
|
{
|
|
typedef IPersistFolder2 *LPPERSISTFOLDER2;
|
|
|
|
HRESULT GetCurFolder( [out] PIDLIST_ABSOLUTE *ppidl );
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IPersistIDList interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IPersistIDList : IPersist
|
|
{
|
|
HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl );
|
|
HRESULT GetIDList( [out] PIDLIST_ABSOLUTE *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)] PITEMID_CHILD *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,
|
|
SHCONTF_NAVIGATION_ENUM = 0x01000,
|
|
SHCONTF_FASTITEMS = 0x02000,
|
|
SHCONTF_FLATLIST = 0x04000,
|
|
SHCONTF_ENABLE_ASYNC = 0x08000,
|
|
SHCONTF_INCLUDESUPERHIDDEN = 0x10000
|
|
};
|
|
|
|
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_SYSTEM 0x00001000L")
|
|
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")
|
|
cpp_quote("#define SFGAO_STORAGECAPMASK 0x70C50008L")
|
|
cpp_quote("#define SFGAO_PKEYSFGAOMASK 0x81044000L")
|
|
typedef ULONG SFGAOF;
|
|
|
|
cpp_quote("#define SHCIDS_COLUMNMASK 0x0000FFFFL")
|
|
cpp_quote("#define SHCIDS_BITMASK 0xFFFF0000L")
|
|
cpp_quote("#define SHCIDS_CANONICALONLY 0x10000000L")
|
|
cpp_quote("#define SHCIDS_ALLFIELDS 0x80000000L")
|
|
|
|
cpp_quote("#define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L\"Parse Shell Protocol To File Objects\"")
|
|
cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"")
|
|
cpp_quote("#define STR_PARSE_PREFER_FOLDER_BROWSING L\"Parse Prefer Folder Browsing\"")
|
|
cpp_quote("#define STR_PARSE_TRANSLATE_ALIASES L\"Parse Translate Aliases\"")
|
|
cpp_quote("#define STR_DONT_PARSE_RELATIVE L\"Don't Parse Relative\"")
|
|
|
|
HRESULT ParseDisplayName(
|
|
[in] HWND hwndOwner,
|
|
[in] LPBC pbcReserved,
|
|
[in, string] LPOLESTR lpszDisplayName,
|
|
[out] ULONG *pchEaten,
|
|
[out] PIDLIST_RELATIVE *ppidl,
|
|
[in, out, unique] ULONG *pdwAttributes);
|
|
|
|
HRESULT EnumObjects(
|
|
[in] HWND hwndOwner,
|
|
[in] SHCONTF grfFlags,
|
|
[out] IEnumIDList **ppenumIDList);
|
|
|
|
HRESULT BindToObject(
|
|
[in] PCUIDLIST_RELATIVE pidl,
|
|
[in] LPBC pbcReserved,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppvOut);
|
|
|
|
HRESULT BindToStorage(
|
|
[in] PCUIDLIST_RELATIVE pidl,
|
|
[in] LPBC pbcReserved,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppvObj);
|
|
|
|
HRESULT CompareIDs(
|
|
[in] LPARAM lParam,
|
|
[in] PCUIDLIST_RELATIVE pidl1,
|
|
[in] PCUIDLIST_RELATIVE pidl2);
|
|
|
|
HRESULT CreateViewObject(
|
|
[in] HWND hwndOwner,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppvOut);
|
|
|
|
HRESULT GetAttributesOf(
|
|
[in] UINT cidl,
|
|
[in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
|
|
[in, out] SFGAOF *rgfInOut);
|
|
|
|
HRESULT GetUIObjectOf(
|
|
[in] HWND hwndOwner,
|
|
[in] UINT cidl,
|
|
[in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
|
|
[in] REFIID riid,
|
|
[in, out, unique] UINT *prgfInOut,
|
|
[out, iid_is(riid)] void **ppvOut);
|
|
|
|
HRESULT GetDisplayNameOf(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in] SHGDNF uFlags,
|
|
[out] STRRET *lpName);
|
|
|
|
HRESULT SetNameOf(
|
|
[in] HWND hwnd,
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in, string] LPCOLESTR lpszName,
|
|
[in] SHGDNF uFlags,
|
|
[out] PITEMID_CHILD *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] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
|
|
HRESULT GetDetailsOf( [in] PCUITEMID_CHILD 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 SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia);")
|
|
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] PCUITEMID_CHILD 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] PCUITEMID_CHILD new_pidl
|
|
);
|
|
HRESULT SelectAndPositionItem(
|
|
[in] PCUITEMID_CHILD item,
|
|
[in] UINT flags,
|
|
[in] POINT *point
|
|
);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
|
|
pointer_default(unique)
|
|
]
|
|
interface IShellView3 : IShellView2
|
|
{
|
|
[v1_enum] enum _SV3CVW3_FLAGS
|
|
{
|
|
SV3CVW3_DEFAULT = 0x00000000,
|
|
SV3CVW3_NONINTERACTIVE = 0x00000001,
|
|
SV3CVW3_FORCEVIEWMODE = 0x00000002,
|
|
SV3CVW3_FORCEFOLDERFLAGS = 0x00000004
|
|
};
|
|
|
|
typedef DWORD SV3CVW3_FLAGS;
|
|
|
|
HRESULT CreateViewWindow3(
|
|
[in] IShellBrowser *owner,
|
|
[in, unique] IShellView *prev_view,
|
|
[in] SV3CVW3_FLAGS view_flags,
|
|
[in] FOLDERFLAGS mask,
|
|
[in] FOLDERFLAGS flags,
|
|
[in] FOLDERVIEWMODE mode,
|
|
[in, unique] const SHELLVIEWID *view_id,
|
|
[in] const RECT *rect,
|
|
[out] HWND *hwnd);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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
|
|
);
|
|
}
|
|
cpp_quote("#define SID_SFolderView IID_IFolderView")
|
|
|
|
[v1_enum] enum tagSORTDIRECTION
|
|
{
|
|
SORT_DESCENDING = -1,
|
|
SORT_ASCENDING = 1
|
|
};
|
|
typedef int SORTDIRECTION;
|
|
|
|
typedef struct SORTCOLUMN
|
|
{
|
|
PROPERTYKEY propkey;
|
|
SORTDIRECTION direction;
|
|
} SORTCOLUMN;
|
|
|
|
typedef [v1_enum] enum FVTEXTTYPE
|
|
{
|
|
FVST_EMPTYTEXT = 0
|
|
} FVTEXTTYPE;
|
|
|
|
[
|
|
uuid(1af3a467-214f-4298-908e-06b03e0b39f9),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IFolderView2 : IFolderView
|
|
{
|
|
HRESULT SetGroupBy(
|
|
[in] REFPROPERTYKEY key,
|
|
[in] BOOL ascending);
|
|
|
|
[local]
|
|
HRESULT GetGroupBy(
|
|
[out] PROPERTYKEY *pkey,
|
|
[out] BOOL *ascending);
|
|
|
|
[call_as(GetGroupBy)]
|
|
HRESULT RemoteGetGroupBy(
|
|
[out] PROPERTYKEY *pkey,
|
|
[out] BOOL *ascending);
|
|
|
|
HRESULT SetViewProperty(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in] REFPROPERTYKEY propkey,
|
|
[in] REFPROPVARIANT propvar);
|
|
|
|
HRESULT GetViewProperty(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in] REFPROPERTYKEY propkey,
|
|
[out] PROPVARIANT *propvar);
|
|
|
|
HRESULT SetTileViewProperties(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in, string] LPCWSTR prop_list);
|
|
|
|
HRESULT SetExtendedTileViewProperties(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[in, string] LPCWSTR prop_list);
|
|
|
|
HRESULT SetText(
|
|
[in] FVTEXTTYPE type,
|
|
[in] LPCWSTR text);
|
|
|
|
HRESULT SetCurrentFolderFlags(
|
|
[in] DWORD mask,
|
|
[in] DWORD flags);
|
|
|
|
HRESULT GetCurrentFolderFlags([out] DWORD *flags);
|
|
|
|
HRESULT GetSortColumnCount([out] int *columns);
|
|
|
|
HRESULT SetSortColumns(
|
|
[in, size_is(count)] const SORTCOLUMN *columns,
|
|
[in] int count);
|
|
|
|
HRESULT GetSortColumns(
|
|
[out, size_is(count)] SORTCOLUMN *columns,
|
|
[in] int count);
|
|
|
|
HRESULT GetItem(
|
|
[in] int ittem,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppv);
|
|
|
|
HRESULT GetVisibleItem(
|
|
[in] int start,
|
|
[in] BOOL previous,
|
|
[out] int *item);
|
|
|
|
HRESULT GetSelectedItem(
|
|
[in] int start,
|
|
[out] int *item);
|
|
|
|
HRESULT GetSelection(
|
|
[in] BOOL none_implies_folder,
|
|
[out] IShellItemArray **array);
|
|
|
|
HRESULT GetSelectionState(
|
|
[in] PCUITEMID_CHILD pidl,
|
|
[out] DWORD *flags);
|
|
|
|
HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb);
|
|
|
|
HRESULT SetViewModeAndIconSize(
|
|
[in] FOLDERVIEWMODE mode,
|
|
[in] int size);
|
|
|
|
HRESULT GetViewModeAndIconSize(
|
|
[out] FOLDERVIEWMODE *mode,
|
|
[out] int *size);
|
|
|
|
HRESULT SetGroupSubsetCount([in] UINT visible_rows);
|
|
|
|
HRESULT GetGroupSubsetCount([out] UINT *visible_rows);
|
|
|
|
HRESULT SetRedraw([in] BOOL redraw);
|
|
|
|
HRESULT IsMoveInSameFolder();
|
|
|
|
HRESULT DoRename();
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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] PCUIDLIST_RELATIVE 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] PIDLIST_ABSOLUTE * ppidl );
|
|
|
|
HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE 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] PIDLIST_ABSOLUTE * ppidl );
|
|
|
|
HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE 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] PCIDLIST_ABSOLUTE 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
|
|
{
|
|
PIDLIST_ABSOLUTE pidlTargetFolder;
|
|
WCHAR szTargetParsingName[MAX_PATH];
|
|
WCHAR szNetworkProvider[MAX_PATH];
|
|
DWORD dwAttributes;
|
|
int csidl;
|
|
} PERSIST_FOLDER_TARGET_INFO;
|
|
|
|
HRESULT InitializeEx(
|
|
[in] IBindCtx *pbc,
|
|
[in] PCIDLIST_ABSOLUTE 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] PCUITEMID_CHILD pidl );
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* ICommDlgBrowser2 interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(10339516-2894-11D2-9039-00C04F8EEB3E),
|
|
pointer_default(unique)
|
|
]
|
|
interface ICommDlgBrowser2 : ICommDlgBrowser
|
|
{
|
|
cpp_quote("#define CDB2N_CONTEXTMENU_DONE 1")
|
|
cpp_quote("#define CDB2N_CONTEXTMENU_START 2")
|
|
cpp_quote("#define CDB2GVF_SHOWALLFILES 0x00000001")
|
|
cpp_quote("#define CDB2GVF_NOSELECTVERB 0x00000008")
|
|
cpp_quote("#define CDB2GVF_NOINCLUDEITEM 0x00000010 /* IncludeObject should not be called */")
|
|
|
|
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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IFolderFilterSite & IFolderFilter interfaces
|
|
*/
|
|
[
|
|
object,
|
|
uuid(C0A651F5-B48B-11d2-B5ED-006097C686F6),
|
|
pointer_default(unique)
|
|
]
|
|
interface IFolderFilterSite : IUnknown
|
|
{
|
|
HRESULT SetFilter([in] IUnknown* punk);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E),
|
|
pointer_default(unique)
|
|
]
|
|
interface IFolderFilter : IUnknown
|
|
{
|
|
HRESULT ShouldShow(
|
|
[in] IShellFolder* psf,
|
|
[in, unique] PCIDLIST_ABSOLUTE pidlFolder,
|
|
[in] PCUITEMID_CHILD pidlItem);
|
|
|
|
HRESULT GetEnumFlags(
|
|
[in] IShellFolder* psf,
|
|
[in] PCIDLIST_ABSOLUTE pidlFolder,
|
|
[out] HWND *phwnd,
|
|
[in, out] DWORD *pgrfFlags);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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_DISABLEDVERBS 0x00000200")
|
|
cpp_quote("#define CMF_ASYNCVERBSTATE 0x00000400")
|
|
cpp_quote("#define CMF_OPTIMIZEFORINVOKE 0x00000800")
|
|
cpp_quote("#define CMF_SYNCCASCADEMENU 0x00001000")
|
|
cpp_quote("#define CMF_DONOTPICKDEFAULT 0x00002000")
|
|
cpp_quote("#define CMF_RESERVED 0xffff0000 // View specific")
|
|
|
|
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") // (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)
|
|
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("#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__)")
|
|
cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") // NOTE: Depends on undocumented define
|
|
cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") // NOTE: Depends on undocumented define
|
|
cpp_quote("#endif")
|
|
cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") // NOTE: Depends on undocumented define
|
|
cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
|
|
cpp_quote("#if (NTDDI_VERSION >= NTDDI_VISTA)")
|
|
cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
|
|
cpp_quote("#endif")
|
|
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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IContextMenuCB interface
|
|
*/
|
|
|
|
[
|
|
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] PCIDLIST_ABSOLUTE pidl1,
|
|
[in] PCIDLIST_ABSOLUTE pidl2);
|
|
}
|
|
|
|
cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"")
|
|
|
|
/*****************************************************************************
|
|
* 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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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);
|
|
}
|
|
|
|
|
|
#ifdef __REACTOS__
|
|
/*****************************************************************************
|
|
* IExplorerCommand interface (Vista+)
|
|
*/
|
|
|
|
interface IEnumExplorerCommand;
|
|
|
|
[
|
|
uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExplorerCommand : IUnknown
|
|
{
|
|
cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source")
|
|
typedef [v1_enum] enum _EXPCMDSTATE
|
|
{
|
|
ECS_ENABLED = 0x000,
|
|
ECS_DISABLED = 0x001,
|
|
ECS_HIDDEN = 0x002,
|
|
ECS_CHECKBOX = 0x004,
|
|
ECS_CHECKED = 0x008,
|
|
ECS_RADIOCHECK = 0x010, // Windows 7
|
|
} EXPCMDSTATE;
|
|
|
|
typedef [v1_enum] enum _EXPCMDFLAGS
|
|
{
|
|
ECF_DEFAULT = 0x000,
|
|
ECF_HASSUBCOMMANDS = 0x001,
|
|
ECF_HASSPLITBUTTON = 0x002,
|
|
ECF_HIDELABEL = 0x004,
|
|
ECF_ISSEPARATOR = 0x008,
|
|
ECF_HASLUASHIELD = 0x010,
|
|
ECF_SEPARATORBEFORE = 0x020, // Windows 7
|
|
ECF_SEPARATORAFTER = 0x040, // Windows 7
|
|
ECF_ISDROPDOWN = 0x080, // Windows 7
|
|
ECF_TOGGLEABLE = 0x100, // Windows 8
|
|
ECF_AUTOMENUICONS = 0x200, // Windows 8
|
|
} EXPCMDFLAGS;
|
|
|
|
HRESULT GetTitle(
|
|
[in, unique] IShellItemArray *psiItemArray,
|
|
[out, string] LPWSTR *ppszName);
|
|
HRESULT GetIcon(
|
|
[in, unique] IShellItemArray *psiItemArray,
|
|
[out, string] LPWSTR *ppszIcon);
|
|
HRESULT GetToolTip(
|
|
[in, unique] IShellItemArray *psiItemArray,
|
|
[out, string] LPWSTR *ppszInfotip);
|
|
HRESULT GetCanonicalName(
|
|
[out] GUID* pguidCommandName);
|
|
HRESULT GetState(
|
|
[in] IShellItemArray *psiItemArray,
|
|
[in] BOOL fOkToBeSlow,
|
|
[out] EXPCMDSTATE *pCmdState);
|
|
HRESULT Invoke(
|
|
[in] IShellItemArray *psiItemArray,
|
|
[in, unique] IBindCtx *pbc);
|
|
HRESULT GetFlags(
|
|
[out] EXPCMDFLAGS *pFlags);
|
|
HRESULT EnumSubCommands(
|
|
[out] IEnumExplorerCommand **ppEnum);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IExplorerCommandState interface (Vista+)
|
|
*/
|
|
[
|
|
object,
|
|
uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExplorerCommandState : IUnknown
|
|
{
|
|
HRESULT GetState(
|
|
[in] IShellItemArray *psiItemArray,
|
|
[in] BOOL fOkToBeSlow,
|
|
[out] EXPCMDSTATE *pCmdState);
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IInitializeCommand interface (Vista+)
|
|
*/
|
|
[
|
|
object,
|
|
uuid(85075ACF-231F-40EA-9610-D26B7B58F638),
|
|
pointer_default(unique)
|
|
]
|
|
interface IInitializeCommand : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in, string] LPCWSTR pszCommandName,
|
|
[in, optional] IPropertyBag *ppb);
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IEnumExplorerCommand interface (Vista+)
|
|
*/
|
|
[
|
|
object,
|
|
uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumExplorerCommand : IUnknown
|
|
{
|
|
[local]
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out] IExplorerCommand** pUICommand,
|
|
[out, optional] ULONG *pceltFetched);
|
|
[call_as(Next)]
|
|
HRESULT RemoteNext(
|
|
[in] ULONG celt,
|
|
[out] IExplorerCommand** pUICommand,
|
|
[out, optional] ULONG *pceltFetched);
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
HRESULT Reset();
|
|
HRESULT Clone(
|
|
[out] IEnumExplorerCommand **ppenum);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IExplorerCommandProvider interface (Vista+)
|
|
*/
|
|
[
|
|
uuid(64961751-0835-43C0-8FFE-D57686530E64),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExplorerCommandProvider : IUnknown
|
|
{
|
|
cpp_quote("// GetCommands usually creates an IEnumExplorerCommand")
|
|
cpp_quote("// GetCommand usually creates an IExplorerCommand")
|
|
|
|
HRESULT GetCommands(
|
|
[in] IUnknown *punkSite,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppv);
|
|
HRESULT GetCommand(
|
|
[in] REFGUID rguidCommandId,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppv);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IExecuteCommand interface (7+)
|
|
*/
|
|
[
|
|
uuid(7F9185B0-CB92-43C5-80A9-92277A4F7B54),
|
|
pointer_default(unique)
|
|
]
|
|
interface IExecuteCommand : IUnknown
|
|
{
|
|
HRESULT SetKeyState([in] DWORD grfKeyState);
|
|
HRESULT SetParameters([in, string] LPCWSTR pszParameters);
|
|
HRESULT SetPosition([in] POINT pt);
|
|
HRESULT SetShowWindow([in] int nShow);
|
|
HRESULT SetNoShowUI([in] BOOL fNoShowUI);
|
|
HRESULT SetDirectory([in, string] LPCWSTR pszDirectory);
|
|
HRESULT Execute();
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IObjectWithSelection interface (Vista+)
|
|
*/
|
|
[
|
|
uuid(1C9CD5BB-98E9-4491-A60F-31AACC72B83C),
|
|
pointer_default(unique)
|
|
]
|
|
interface IObjectWithSelection : IUnknown
|
|
{
|
|
HRESULT SetSelection([in] IShellItemArray *psia);
|
|
HRESULT GetSelection([in] REFIID riid, [out, iid_is(riid)] void **ppv);
|
|
};
|
|
|
|
/*****************************************************************************
|
|
* IRegTreeItem interface
|
|
*/
|
|
[
|
|
uuid(A9521922-0812-4d44-9EC3-7FD38C726F3D),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRegTreeItem : IUnknown
|
|
{
|
|
HRESULT GetCheckState([out] BOOL *pbCheck);
|
|
HRESULT SetCheckState([in] BOOL bCheck);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IOpenControlPanel interface (Vista+)
|
|
*/
|
|
[
|
|
object,
|
|
uuid(D11AD862-66DE-4DF4-BF6C-1F5621996AF1),
|
|
pointer_default(unique)
|
|
]
|
|
interface IOpenControlPanel : IUnknown
|
|
{
|
|
typedef [v1_enum] enum CPVIEW
|
|
{
|
|
CPVIEW_CLASSIC = 0,
|
|
CPVIEW_CATEGORY = 1,
|
|
CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
|
|
CPVIEW_HOME = CPVIEW_CATEGORY
|
|
} CPVIEW;
|
|
|
|
HRESULT Open(
|
|
[in, optional] LPCWSTR pszName,
|
|
[in, optional] LPCWSTR pszPage,
|
|
[in, optional] IUnknown *punkSite);
|
|
HRESULT GetPath(
|
|
[in, optional] LPCWSTR pszName,
|
|
[out, string, size_is(cchPath)] LPWSTR pszPath,
|
|
[in] UINT cchPath);
|
|
HRESULT GetCurrentView(
|
|
[out] CPVIEW *pView);
|
|
}
|
|
|
|
#endif // __REACTOS__
|
|
|
|
/*****************************************************************************
|
|
* 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 (_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);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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;
|
|
PIDLIST_ABSOLUTE pidlFolder;
|
|
PUITEMID_CHILD 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;
|
|
PCIDLIST_ABSOLUTE pidl1;
|
|
PCIDLIST_ABSOLUTE 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")
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70) || defined(__REACTOS__)")
|
|
cpp_quote("#define SMC_SFEXEC_MIDDLE 0x00000031")
|
|
cpp_quote("#define SMC_GETAUTOEXPANDSTATE 0x00000041")
|
|
cpp_quote("#define SMC_AUTOEXPANDCHANGE 0x00000042")
|
|
cpp_quote("#define SMC_GETCONTEXTMENUMODIFIER 0x00000043")
|
|
cpp_quote("#define SMC_GETBKCONTEXTMENU 0x00000044")
|
|
cpp_quote("#define SMC_OPEN 0x00000045")
|
|
cpp_quote("#define SMAE_EXPANDED 0x00000001")
|
|
cpp_quote("#define SMAE_CONTRACTED 0x00000002")
|
|
cpp_quote("#define SMAE_USER 0x00000004")
|
|
cpp_quote("#define SMAE_VALID 0x00000007")
|
|
cpp_quote("#endif")
|
|
|
|
[
|
|
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] PCIDLIST_ABSOLUTE pidlFolder,
|
|
[in] HKEY hKey,
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetShellFolder(
|
|
[out] DWORD *pdwFlags,
|
|
[out] PIDLIST_ABSOLUTE *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);
|
|
}
|
|
|
|
cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
|
|
|
|
/*****************************************************************************
|
|
* ITrackShellMenu interface
|
|
*/
|
|
[
|
|
uuid(8278F932-2A3E-11d2-838F-00C04FD918D0),
|
|
object,
|
|
pointer_default(unique),
|
|
local
|
|
]
|
|
interface ITrackShellMenu : IShellMenu
|
|
{
|
|
HRESULT SetObscured(
|
|
[in] HWND hwndTB,
|
|
[in] IUnknown *punkBand,
|
|
DWORD dwSMSetFlags);
|
|
|
|
HRESULT Popup(
|
|
[in] HWND hwnd,
|
|
[in] POINTL *ppt,
|
|
[in] RECTL *prcExclude,
|
|
MP_POPUPFLAGS dwFlags);
|
|
};
|
|
|
|
cpp_quote("#endif /* _WIN32_IE_IE60 */")
|
|
|
|
/*****************************************************************************
|
|
* IAutoCompleteDropDown interface
|
|
*/
|
|
[
|
|
object,
|
|
uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
|
|
pointer_default(unique)
|
|
]
|
|
interface IAutoCompleteDropDown : IUnknown
|
|
{
|
|
cpp_quote("#define ACDD_VISIBLE 0x0001")
|
|
|
|
HRESULT GetDropDownStatus(
|
|
[out] DWORD *pdwFlags,
|
|
[out, string] LPWSTR *ppwszString);
|
|
|
|
HRESULT ResetEnumerator();
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* IProfferService interface
|
|
*/
|
|
[
|
|
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,
|
|
EBO_NOBORDER = 0x40,
|
|
EBO_NOPERSISTVIEWSTATE = 0x80,
|
|
} 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_ACCEPT = 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();
|
|
}
|
|
|
|
[
|
|
uuid(ddefe873-6997-4e68-be26-39b633adbe12),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IQueryCancelAutoPlay : IUnknown
|
|
{
|
|
HRESULT AllowAutoPlay([in, string] LPCWSTR path,
|
|
[in] DWORD content_type,
|
|
[in, string] LPCWSTR label,
|
|
[in] DWORD serial_number);
|
|
}
|
|
|
|
[
|
|
uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88),
|
|
pointer_default(unique)
|
|
]
|
|
interface ITransferAdviseSink : IUnknown
|
|
{
|
|
[v1_enum] enum _TRANSFER_ADVISE_STATE
|
|
{
|
|
TS_NONE = 0,
|
|
TS_PERFORMING = 1,
|
|
TS_PREPARING = 2,
|
|
TS_INDETERMINATE = 4
|
|
};
|
|
typedef DWORD TRANSFER_ADVISE_STATE;
|
|
|
|
HRESULT UpdateProgress([in] ULONGLONG size_current,
|
|
[in] ULONGLONG size_total,
|
|
[in] INT files_current,
|
|
[in] INT files_total,
|
|
[in] INT folders_current,
|
|
[in] INT folders_total);
|
|
HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state);
|
|
HRESULT ConfirmOverwrite([in] IShellItem *source,
|
|
[in] IShellItem *dest_parent,
|
|
[in, string] LPCWSTR name);
|
|
HRESULT ConfirmEncryptLoss([in] IShellItem *source);
|
|
HRESULT FileFailure([in] IShellItem *item,
|
|
[in, unique, string] LPCWSTR itemname,
|
|
[in] HRESULT hr,
|
|
[in, out, unique, size_is(crename)] LPWSTR rename,
|
|
[in] ULONG crename);
|
|
HRESULT SubStreamFailure([in] IShellItem *item,
|
|
[in, string] LPCWSTR stream,
|
|
[in] HRESULT hr);
|
|
HRESULT PropertyFailure([in] IShellItem *item,
|
|
[in, unique] const PROPERTYKEY *key,
|
|
[in] HRESULT hr);
|
|
}
|
|
|
|
[v1_enum] enum _TRANSFER_SOURCE_FLAGS
|
|
{
|
|
TSF_NORMAL = 0,
|
|
TSF_FAIL_EXIST = 0,
|
|
TSF_RENAME_EXIST = 0x1,
|
|
TSF_OVERWRITE_EXIST = 0x2,
|
|
TSF_ALLOW_DECRYPTION = 0x4,
|
|
TSF_NO_SECURITY = 0x8,
|
|
TSF_COPY_CREATION_TIME = 0x10,
|
|
TSF_COPY_WRITE_TIME = 0x20,
|
|
TSF_USE_FULL_ACCESS = 0x40,
|
|
TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
|
|
TSF_COPY_HARD_LINK = 0x100,
|
|
TSF_COPY_LOCALIZED_NAME = 0x200,
|
|
TSF_MOVE_AS_COPY_DELETE = 0x400,
|
|
TSF_SUSPEND_SHELLEVENTS = 0x800
|
|
};
|
|
typedef DWORD TRANSFER_SOURCE_FLAGS;
|
|
|
|
[
|
|
uuid(00adb003-bde9-45c6-8e29-d09f9353e108),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface ITransferSource : IUnknown
|
|
{
|
|
HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
|
|
HRESULT Unadvise([in] DWORD cookie);
|
|
HRESULT SetProperties([in] IPropertyChangeArray *array);
|
|
HRESULT OpenItem([in] IShellItem *item,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppv);
|
|
HRESULT MoveItem([in] IShellItem *item,
|
|
[in] IShellItem *parent_dest,
|
|
[in, string] LPCWSTR name_dest,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[out] IShellItem **newitem);
|
|
HRESULT RecycleItem([in] IShellItem *source,
|
|
[in] IShellItem *parent_dest,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[out] IShellItem **new_dest);
|
|
HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags);
|
|
HRESULT RenameItem([in] IShellItem *source,
|
|
[in, string] LPCWSTR newname,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[out] IShellItem **new_dest);
|
|
HRESULT LinkItem([in] IShellItem *source,
|
|
[in] IShellItem *parent_dest,
|
|
[in, unique, string] LPCWSTR new_name,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[out] IShellItem **new_dest);
|
|
HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem);
|
|
HRESULT GetDefaultDestinationName([in] IShellItem *source,
|
|
[in] IShellItem *parent_dest,
|
|
[out, string] LPWSTR *dest_name);
|
|
HRESULT EnterFolder([in] IShellItem *child_folder);
|
|
HRESULT LeaveFolder([in] IShellItem *child_folder);
|
|
}
|
|
|
|
[
|
|
uuid(48addd32-3ca5-4124-abe3-b5a72531b207),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface ITransferDestination : IUnknown
|
|
{
|
|
HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
|
|
HRESULT Unadvise([in] DWORD cookie);
|
|
HRESULT CreateItem([in, string] LPCWSTR name,
|
|
[in] DWORD attr,
|
|
[in] ULONGLONG size,
|
|
[in] TRANSFER_SOURCE_FLAGS flags,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] void **ppv,
|
|
[in] REFIID resources,
|
|
[out, iid_is(riid)] void **presources);
|
|
}
|
|
|
|
[
|
|
uuid(92218cab-ecaa-4335-8133-807fd234c2ee),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssocHandlerInvoker : IUnknown
|
|
{
|
|
HRESULT SupportsSelection();
|
|
HRESULT Invoke();
|
|
}
|
|
|
|
[
|
|
uuid(f04061ac-1659-4a3f-a954-775aa57fc083),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IAssocHandler : IUnknown
|
|
{
|
|
HRESULT GetName([out, string] LPWSTR *name);
|
|
HRESULT GetUIName([out, string] LPWSTR *uiname);
|
|
HRESULT GetIconLocation([out, string] LPWSTR *path,
|
|
[out] int *index);
|
|
HRESULT IsRecommended();
|
|
HRESULT MakeDefault([in, string] LPCWSTR description);
|
|
HRESULT Invoke([in] IDataObject *object);
|
|
HRESULT CreateInvoker([in] IDataObject *object,
|
|
[out] IAssocHandlerInvoker **invoker);
|
|
}
|
|
|
|
[
|
|
uuid(973810ae-9599-4b88-9e4d-6ee98c9552da),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumAssocHandlers : IUnknown
|
|
{
|
|
HRESULT Next([in] ULONG count,
|
|
[out, size_is(count), length_is(*fetched)] IAssocHandler **handlers,
|
|
[out] ULONG *fetched);
|
|
}
|
|
|
|
typedef enum ASSOC_FILTER
|
|
{
|
|
ASSOC_FILTER_NONE = 0,
|
|
ASSOC_FILTER_RECOMMENDED
|
|
} ASSOC_FILTER;
|
|
cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);")
|
|
|
|
typedef [v1_enum] enum ACTIVATEOPTIONS
|
|
{
|
|
AO_NONE = 0x00000000,
|
|
AO_DESIGNMODE = 0x00000001,
|
|
AO_NOERRORUI = 0x00000002,
|
|
AO_NOSPLASHSCREEN = 0x00000004
|
|
} ACTIVATEOPTIONS;
|
|
|
|
[
|
|
uuid(2e941141-7f97-4756-ba1d-9decde894a3d),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IApplicationActivationManager : IUnknown
|
|
{
|
|
HRESULT ActivateApplication([in] LPCWSTR appusermodelid,
|
|
[in, unique] LPCWSTR arguments,
|
|
[in] ACTIVATEOPTIONS options,
|
|
[out] DWORD *processid);
|
|
HRESULT ActivateForFile([in] LPCWSTR appusermodelid,
|
|
[in] IShellItemArray *itemarray,
|
|
[in, unique] LPCWSTR verb,
|
|
[out] DWORD *processid);
|
|
HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid,
|
|
[in] IShellItemArray *itemarray,
|
|
[out] DWORD *processid);
|
|
}
|
|
|
|
/*****************************************************************************
|
|
* 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;
|
|
}
|
|
|
|
[
|
|
uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a)
|
|
]
|
|
coclass QueryCancelAutoPlay
|
|
{
|
|
interface IQueryCancelAutoPlay;
|
|
}
|
|
|
|
[
|
|
uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917)
|
|
]
|
|
coclass ShellItem {
|
|
interface IShellItem2;
|
|
}
|
|
|
|
[
|
|
uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c)
|
|
]
|
|
coclass ApplicationActivationManager
|
|
{
|
|
interface IApplicationActivationManager;
|
|
}
|
|
|
|
#ifdef __REACTOS__
|
|
[
|
|
uuid(0010890e-8789-413c-adbc-48f5b511b3af)
|
|
]
|
|
coclass UserNotification
|
|
{
|
|
interface IUserNotification;
|
|
}
|
|
#endif // __REACTOS__
|
|
|
|
}
|
|
|
|
enum _OPPROGDLGF
|
|
{
|
|
OPPROGDLG_DEFAULT = 0,
|
|
OPPROGDLG_ENABLEPAUSE = 0x80,
|
|
OPPROGDLG_ALLOWUNDO = 0x100,
|
|
OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
|
|
OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
|
|
OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
|
|
OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
|
|
};
|
|
typedef DWORD OPPROGDLGF;
|
|
|
|
enum _PDMODE
|
|
{
|
|
PDM_DEFAULT = 0,
|
|
PDM_RUN = 0x1,
|
|
PDM_PREFLIGHT = 0x2,
|
|
PDM_UNDOING = 0x4,
|
|
PDM_ERRORSBLOCKING = 0x8,
|
|
PDM_INDETERMINATE = 0x10
|
|
};
|
|
typedef DWORD PDMODE;
|
|
|
|
typedef enum PDOPSTATUS
|
|
{
|
|
PDOPS_RUNNING = 1,
|
|
PDOPS_PAUSED = 2,
|
|
PDOPS_CANCELLED = 3,
|
|
PDOPS_STOPPED = 4,
|
|
PDOPS_ERRORS = 5
|
|
} PDOPSTATUS;
|
|
|
|
typedef enum _SPACTION
|
|
{
|
|
SPACTION_NONE = 0,
|
|
SPACTION_MOVING = 1,
|
|
SPACTION_COPYING = 2,
|
|
SPACTION_RECYCLING = 3,
|
|
SPACTION_APPLYINGATTRIBS = 4,
|
|
SPACTION_DOWNLOADING = 5,
|
|
SPACTION_SEARCHING_INTERNET = 6,
|
|
SPACTION_CALCULATING = 7,
|
|
SPACTION_UPLOADING = 8,
|
|
SPACTION_SEARCHING_FILES = 9,
|
|
SPACTION_DELETING = 10,
|
|
SPACTION_RENAMING = 11,
|
|
SPACTION_FORMATTING = 12,
|
|
SPACTION_COPY_MOVING = 13
|
|
} SPACTION;
|
|
|
|
[
|
|
uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IOperationsProgressDialog : IUnknown
|
|
{
|
|
HRESULT StartProgressDialog(
|
|
[in] HWND hwndOwner,
|
|
[in] OPPROGDLGF flags);
|
|
HRESULT StopProgressDialog();
|
|
HRESULT SetOperation(
|
|
[in] SPACTION action);
|
|
HRESULT SetMode(
|
|
[in] PDMODE mode);
|
|
HRESULT UpdateProgress(
|
|
[in] ULONGLONG ullPointsCurrent,
|
|
[in] ULONGLONG ullPointsTotal,
|
|
[in] ULONGLONG ullSizeCurrent,
|
|
[in] ULONGLONG ullSizeTotal,
|
|
[in] ULONGLONG ullItemsCurrent,
|
|
[in] ULONGLONG ullItemsTotal);
|
|
HRESULT UpdateLocations(
|
|
[in, optional] IShellItem *psiSource,
|
|
[in, optional] IShellItem *psiTarget,
|
|
[in, optional] IShellItem *psiItem);
|
|
HRESULT ResetTimer();
|
|
HRESULT PauseTimer();
|
|
HRESULT ResumeTimer();
|
|
HRESULT GetMilliseconds(
|
|
[out] ULONGLONG *pullElapsed,
|
|
[out] ULONGLONG *pullRemaining);
|
|
HRESULT GetOperationStatus(
|
|
[out] PDOPSTATUS *popstatus);
|
|
};
|
|
|
|
[
|
|
uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IFileOperation : IUnknown
|
|
{
|
|
HRESULT Advise(
|
|
[in] IFileOperationProgressSink *pfops,
|
|
[out] DWORD *pdwCookie);
|
|
HRESULT Unadvise(
|
|
[in] DWORD dwCookie);
|
|
HRESULT SetOperationFlags(
|
|
[in] DWORD dwOperationFlags);
|
|
HRESULT SetProgressMessage(
|
|
[in] LPCWSTR pszMessage);
|
|
HRESULT SetProgressDialog(
|
|
[in] IOperationsProgressDialog *popd);
|
|
HRESULT SetProperties(
|
|
[in] IPropertyChangeArray *pproparray);
|
|
HRESULT SetOwnerWindow(
|
|
[in] HWND hwndOwner);
|
|
HRESULT ApplyPropertiesToItem(
|
|
[in] IShellItem *psiItem);
|
|
HRESULT ApplyPropertiesToItems(
|
|
[in] IUnknown *punkItems);
|
|
HRESULT RenameItem(
|
|
[in] IShellItem *psiItem,
|
|
[in] LPCWSTR pszNewName,
|
|
[in] IFileOperationProgressSink *pfopsItem);
|
|
HRESULT RenameItems(
|
|
[in] IUnknown *pUnkItems,
|
|
[in] LPCWSTR pszNewName);
|
|
HRESULT MoveItem(
|
|
[in] IShellItem *psiItem,
|
|
[in] IShellItem *psiDestinationFolder,
|
|
[in] LPCWSTR pszNewName,
|
|
[in] IFileOperationProgressSink *pfopsItem);
|
|
HRESULT MoveItems(
|
|
[in] IUnknown *punkItems,
|
|
[in] IShellItem *psiDestinationFolder);
|
|
HRESULT CopyItem(
|
|
[in] IShellItem *psiItem,
|
|
[in] IShellItem *psiDestinationFolder,
|
|
[in] LPCWSTR pszCopyName,
|
|
[in] IFileOperationProgressSink *pfopsItem);
|
|
HRESULT CopyItems(
|
|
[in] IUnknown *punkItems,
|
|
[in] IShellItem *psiDestinationFolder);
|
|
HRESULT DeleteItem(
|
|
[in] IShellItem *psiItem,
|
|
[in] IFileOperationProgressSink *pfopsItem);
|
|
HRESULT DeleteItems(
|
|
[in] IUnknown *punkItems);
|
|
HRESULT NewItem(
|
|
[in] IShellItem *psiDestinationFolder,
|
|
[in] DWORD dwFileAttributes,
|
|
[in] LPCWSTR pszName,
|
|
[in] LPCWSTR pszTemplateName,
|
|
[in] IFileOperationProgressSink *pfopsItem);
|
|
HRESULT PerformOperations();
|
|
HRESULT GetAnyOperationsAborted(
|
|
[out] BOOL *pfAnyOperationsAborted);
|
|
};
|
|
|
|
[
|
|
uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC),
|
|
object,
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IShellTaskScheduler : IUnknown
|
|
{
|
|
HRESULT AddTask(
|
|
[in] IRunnableTask *pTask,
|
|
[in] REFGUID rtoid,
|
|
[in] DWORD_PTR lParam,
|
|
[in] DWORD dwPriority);
|
|
HRESULT RemoveTasks(
|
|
[in] REFGUID rtoid,
|
|
[in] DWORD_PTR lParam,
|
|
[in] BOOL fWaitIfRunning);
|
|
UINT CountTasks(
|
|
[in] REFGUID rtoid);
|
|
HRESULT Status(
|
|
[in] DWORD dwReleaseStatus,
|
|
[in] DWORD dwThreadTimeout);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(47c01f95-e185-412c-b5c5-4f27df965aea),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IFolderBandPriv : IUnknown
|
|
{
|
|
HRESULT SetCascade([in] BOOL fCascade);
|
|
|
|
HRESULT SetAccelerators([in] BOOL fAccelerators);
|
|
|
|
HRESULT SetNoIcons([in] BOOL fNoIcons);
|
|
|
|
HRESULT SetNoText([in] BOOL fNoText);
|
|
}
|
|
|
|
|
|
#ifdef __REACTOS__
|
|
/*****************************************************************************
|
|
* IQueryContinue interface
|
|
*/
|
|
|
|
[
|
|
uuid(7307055c-b24a-486b-9f25-163e597a28a9),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IQueryContinue : IUnknown
|
|
{
|
|
// Returns S_OK if the operation should continue, and S_FALSE if not.
|
|
HRESULT QueryContinue();
|
|
}
|
|
|
|
|
|
/*****************************************************************************
|
|
* IUserNotification interface
|
|
*/
|
|
|
|
[
|
|
uuid(ba9711ba-5893-4787-a7e1-41277151550b),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IUserNotification : IUnknown
|
|
{
|
|
HRESULT SetBalloonInfo(
|
|
[in, unique, string] LPCWSTR pszTitle,
|
|
[in, unique, string] LPCWSTR pszText,
|
|
[in] DWORD dwInfoFlags);
|
|
|
|
HRESULT SetBalloonRetry(
|
|
[in] DWORD dwShowTime, // Time intervals in milliseconds
|
|
[in] DWORD dwInterval,
|
|
[in] UINT cRetryCount);
|
|
|
|
HRESULT SetIconInfo(
|
|
[in, unique] HICON hIcon,
|
|
[in, unique, string] LPCWSTR pszToolTip);
|
|
|
|
// Blocks until the notification times out.
|
|
HRESULT Show(
|
|
[in, unique] IQueryContinue *pqc,
|
|
[in] DWORD dwContinuePollInterval);
|
|
|
|
HRESULT PlaySound(
|
|
[in, string] LPCWSTR pszSoundName);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IUserNotificationCallback interface (Vista+)
|
|
*/
|
|
|
|
[
|
|
uuid(19108294-0441-4aff-8013-fa0a730b0bea),
|
|
object
|
|
]
|
|
interface IUserNotificationCallback : IUnknown
|
|
{
|
|
HRESULT OnBalloonUserClick([in] POINT * pt);
|
|
HRESULT OnLeftClick([in] POINT * pt);
|
|
HRESULT OnContextMenu([in] POINT * pt);
|
|
};
|
|
|
|
|
|
/*****************************************************************************
|
|
* IUserNotification2 interface (Vista+)
|
|
*/
|
|
|
|
[
|
|
uuid(215913cc-57eb-4fab-ab5a-e5fa7bea2a6c),
|
|
object,
|
|
pointer_default(unique)
|
|
]
|
|
interface IUserNotification2 : IUnknown
|
|
{
|
|
HRESULT SetBalloonInfo(
|
|
[in, unique, string] LPCWSTR pszTitle,
|
|
[in, unique, string] LPCWSTR pszText,
|
|
[in] DWORD dwInfoFlags);
|
|
|
|
HRESULT SetBalloonRetry(
|
|
[in] DWORD dwShowTime, // Time intervals in milliseconds
|
|
[in] DWORD dwInterval,
|
|
[in] UINT cRetryCount);
|
|
|
|
HRESULT SetIconInfo(
|
|
[in, unique] HICON hIcon,
|
|
[in, unique, string] LPCWSTR pszToolTip);
|
|
|
|
// Blocks until the notification times out.
|
|
HRESULT Show(
|
|
[in, unique] IQueryContinue *pqc,
|
|
[in] DWORD dwContinuePollInterval,
|
|
[in, unique] IUserNotificationCallback *pSink);
|
|
|
|
HRESULT PlaySound(
|
|
[in, string] LPCWSTR pszSoundName);
|
|
};
|
|
|
|
/*****************************************************************************
|
|
* IItemNameLimits interface
|
|
*/
|
|
|
|
[
|
|
uuid(1df0d7f1-b267-4d28-8b10-12e23202a5c4)
|
|
]
|
|
interface IItemNameLimits : IUnknown
|
|
{
|
|
HRESULT GetValidCharacters(
|
|
[out, string] LPWSTR *ppwszValidChars,
|
|
[out, string] LPWSTR *ppwszInvalidChars);
|
|
|
|
HRESULT GetMaxLength(
|
|
[in, string] LPCWSTR pszName,
|
|
[out] int *piMaxNameLen);
|
|
};
|
|
|
|
/*****************************************************************************
|
|
* IUserAssist interface
|
|
*/
|
|
[
|
|
uuid(dd313e05-feff-11d1-8ecd-0000f87a470c),
|
|
object,
|
|
local,
|
|
pointer_default(unique)
|
|
]
|
|
interface IUserAssist : IUnknown
|
|
{
|
|
HRESULT FireEvent(
|
|
GUID const *guid,
|
|
INT param1,
|
|
ULONG param2,
|
|
WPARAM wparam,
|
|
LPARAM lparam);
|
|
|
|
HRESULT QueryEvent(
|
|
GUID const *guid,
|
|
INT param,
|
|
WPARAM wparam,
|
|
LPARAM lparam,
|
|
PVOID ptr);
|
|
|
|
HRESULT SetEvent(
|
|
GUID const *guid,
|
|
INT param,
|
|
WPARAM wparam,
|
|
LPARAM lparam,
|
|
PVOID ptr);
|
|
|
|
HRESULT Enable(
|
|
BOOL bEnable);
|
|
};
|
|
|
|
#endif // __REACTOS__
|