source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/shobjidl.idl

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 186.4 KB
RevLine 
[1166]1cpp_quote("/**")
2cpp_quote(" * This file is part of the mingw-w64 runtime package.")
3cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
4cpp_quote(" */")
5cpp_quote("")
6cpp_quote("#include <winapifamily.h>")
7cpp_quote("")
8cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
9cpp_quote("")
10cpp_quote("#include <_mingw_unicode.h>")
11cpp_quote("")
12
13import "objidl.idl";
14import "oleidl.idl";
15import "oaidl.idl";
16import "docobj.idl";
17import "shtypes.idl";
18import "servprov.idl";
19import "comcat.idl";
20import "propidl.idl";
21import "prsht.idl";
22import "msxml.idl";
23import "wtypes.idl";
24import "propsys.idl";
25import "objectarray.idl";
26import "structuredquerycondition.idl";
27
28cpp_quote("")
29cpp_quote("#include <sherrors.h>")
30cpp_quote("")
31cpp_quote("#ifndef SHSTDAPI")
32cpp_quote("#ifdef _SHELL32_")
33cpp_quote("#define SHSTDAPI STDAPI")
34cpp_quote("#define SHSTDAPI_(type) STDAPI_(type)")
35cpp_quote("#else")
36cpp_quote("#define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE")
37cpp_quote("#define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE")
38cpp_quote("#endif")
39cpp_quote("#endif")
40
41cpp_quote("")
42cpp_quote("#define CMF_NORMAL 0x0")
43cpp_quote("#define CMF_DEFAULTONLY 0x1")
44cpp_quote("#define CMF_VERBSONLY 0x2")
45cpp_quote("#define CMF_EXPLORE 0x4")
46cpp_quote("#define CMF_NOVERBS 0x8")
47cpp_quote("#define CMF_CANRENAME 0x10")
48cpp_quote("#define CMF_NODEFAULT 0x20")
49cpp_quote("#if NTDDI_VERSION < NTDDI_VISTA")
50cpp_quote("#define CMF_INCLUDESTATIC 0x40")
51cpp_quote("#endif")
52cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
53cpp_quote("#define CMF_ITEMMENU 0x80")
54cpp_quote("#endif")
55cpp_quote("#define CMF_EXTENDEDVERBS 0x100")
56cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
57cpp_quote("#define CMF_DISABLEDVERBS 0x200")
58cpp_quote("#endif")
59cpp_quote("#define CMF_ASYNCVERBSTATE 0x400")
60cpp_quote("#define CMF_OPTIMIZEFORINVOKE 0x800")
61cpp_quote("#define CMF_SYNCCASCADEMENU 0x1000")
62cpp_quote("#define CMF_DONOTPICKDEFAULT 0x2000")
63cpp_quote("#define CMF_RESERVED 0xffff0000")
64cpp_quote("")
65cpp_quote("#define GCS_VERBA 0x0")
66cpp_quote("#define GCS_HELPTEXTA 0x1")
67cpp_quote("#define GCS_VALIDATEA 0x2")
68cpp_quote("#define GCS_VERBW 0x4")
69cpp_quote("#define GCS_HELPTEXTW 0x5")
70cpp_quote("#define GCS_VALIDATEW 0x6")
71cpp_quote("#define GCS_VERBICONW 0x14")
72cpp_quote("#define GCS_UNICODE 0x4")
73cpp_quote("")
74cpp_quote("#define GCS_VERB __MINGW_NAME_AW(GCS_VERB)")
75cpp_quote("#define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)")
76cpp_quote("#define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)")
77cpp_quote("")
78cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")
79cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")
80cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")
81cpp_quote("#define CMDSTR_NEWFOLDERW L\"NewFolder\"")
82cpp_quote("#define CMDSTR_VIEWLISTW L\"ViewList\"")
83cpp_quote("#define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")
84cpp_quote("")
85cpp_quote("#define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)")
86cpp_quote("#define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)")
87cpp_quote("#define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)")
88cpp_quote("")
89cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
90cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
91cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
92cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
93cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
94cpp_quote("#if NTDDI_VERSION < NTDDI_VISTA")
95cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
96cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
97cpp_quote("#endif")
98cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
99cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
100cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
101cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
102cpp_quote("#endif")
103cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
104cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
105cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")
106cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS")
107cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
108cpp_quote("")
109cpp_quote("#include <pshpack8.h>")
110typedef struct _CMINVOKECOMMANDINFO {
111 DWORD cbSize;
112 DWORD fMask;
113 HWND hwnd;
114 LPCSTR lpVerb;
115 LPCSTR lpParameters;
116 LPCSTR lpDirectory;
117 int nShow;
118 DWORD dwHotKey;
119 HANDLE hIcon;
120} CMINVOKECOMMANDINFO;
121
122cpp_quote("")
123typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
124typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
125
126cpp_quote("")
127typedef struct _CMINVOKECOMMANDINFOEX {
128 DWORD cbSize;
129 DWORD fMask;
130 HWND hwnd;
131 LPCSTR lpVerb;
132 LPCSTR lpParameters;
133 LPCSTR lpDirectory;
134 int nShow;
135 DWORD dwHotKey;
136 HANDLE hIcon;
137 LPCSTR lpTitle;
138 LPCWSTR lpVerbW;
139 LPCWSTR lpParametersW;
140 LPCWSTR lpDirectoryW;
141 LPCWSTR lpTitleW;
142 POINT ptInvoke;
143} CMINVOKECOMMANDINFOEX;
144
145cpp_quote("")
146typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
147typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
148cpp_quote("#include <poppack.h>")
149
150cpp_quote("")
151[local, uuid (000214e4-0000-0000-c000-000000000046), pointer_default (unique)]
152interface IContextMenu : IUnknown {
153 HRESULT QueryContextMenu ([in] HMENU hmenu,[in] UINT indexMenu,[in] UINT idCmdFirst,[in] UINT idCmdLast,[in] UINT uFlags);
154 HRESULT InvokeCommand ([in] CMINVOKECOMMANDINFO *pici);
155 HRESULT GetCommandString ([in] UINT_PTR idCmd,[in] UINT uType,[in] UINT *pReserved,[out] CHAR *pszName,[in] UINT cchMax);
156}
157typedef IContextMenu *LPCONTEXTMENU;
158
159cpp_quote("")
160[local, uuid (000214f4-0000-0000-c000-000000000046), pointer_default (unique)]
161interface IContextMenu2 : IContextMenu {
162 HRESULT HandleMenuMsg ([in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam);
163}
164typedef IContextMenu2 *LPCONTEXTMENU2;
165
166cpp_quote("")
167[local, uuid (BCFCE0A0-EC17-11d0-8d10-00a0c90f2719), pointer_default (unique),]
168interface IContextMenu3 : IContextMenu2 {
169 HRESULT HandleMenuMsg2 ([in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *plResult);
170}
171typedef IContextMenu3 *LPCONTEXTMENU3;
172
173cpp_quote("")
174[object, uuid (7f9185b0-CB92-43c5-80a9-92277a4f7b54), pointer_default (unique)]
175interface IExecuteCommand : IUnknown {
176 HRESULT SetKeyState ([in] DWORD grfKeyState);
177 HRESULT SetParameters ([in, string] LPCWSTR pszParameters);
178 HRESULT SetPosition ([in] POINT pt);
179 HRESULT SetShowWindow ([in] int nShow);
180 HRESULT SetNoShowUI ([in] BOOL fNoShowUI);
181 HRESULT SetDirectory ([in, string] LPCWSTR pszDirectory);
182 HRESULT Execute ();
183}
184
185cpp_quote("")
186[object, uuid (000214ea-0000-0000-C000-000000000046), pointer_default (unique)]
187interface IPersistFolder : IPersist {
188 HRESULT Initialize ([in] PCIDLIST_ABSOLUTE pidl);
189}
190typedef IPersistFolder *LPPERSISTFOLDER;
191
192cpp_quote("")
193cpp_quote("#define IRTIR_TASK_NOT_RUNNING 0")
194cpp_quote("#define IRTIR_TASK_RUNNING 1")
195cpp_quote("#define IRTIR_TASK_SUSPENDED 2")
196cpp_quote("#define IRTIR_TASK_PENDING 3")
197cpp_quote("#define IRTIR_TASK_FINISHED 4")
198
199cpp_quote("")
200[object, local, uuid (85788d00-6807-11d0-b810-00c04fd706ec)]
201interface IRunnableTask : IUnknown {
202 HRESULT Run ();
203 HRESULT Kill ([in] BOOL bWait);
204 HRESULT Suspend ();
205 HRESULT Resume ();
206 ULONG IsRunning ();
207}
208
209cpp_quote("")
210cpp_quote("#define TOID_NULL GUID_NULL")
211cpp_quote("#define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)")
212cpp_quote("")
213cpp_quote("#define ITSAT_DEFAULT_PRIORITY 0x10000000")
214cpp_quote("#define ITSAT_MAX_PRIORITY 0x7fffffff")
215cpp_quote("#define ITSAT_MIN_PRIORITY 0x00000000")
216cpp_quote("")
217cpp_quote("#define ITSSFLAG_COMPLETE_ON_DESTROY 0x0")
218cpp_quote("#define ITSSFLAG_KILL_ON_DESTROY 0x1")
219cpp_quote("")
220cpp_quote("#define ITSSFLAG_FLAGS_MASK 0x3")
221cpp_quote("")
222cpp_quote("#define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)")
223cpp_quote("#define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)")
224cpp_quote("#define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)")
225
226cpp_quote("")
227[object, local, uuid (6ccb7be0-6807-11d0-B810-00c04fd706ec)]
228interface IShellTaskScheduler : IUnknown {
229 HRESULT AddTask ([in] IRunnableTask *prt,[in] REFTASKOWNERID rtoid,[in] DWORD_PTR lParam,[in] DWORD dwPriority);
230 HRESULT RemoveTasks ([in] REFTASKOWNERID rtoid,[in] DWORD_PTR lParam,[in] BOOL bWaitIfRunning);
231 UINT CountTasks ([in] REFTASKOWNERID rtoid);
232 HRESULT Status ([in] DWORD dwReleaseStatus,[in] DWORD dwThreadTimeout);
233}
234
235cpp_quote("")
236cpp_quote("#define SID_ShellTaskScheduler IID_IShellTaskScheduler")
237
238cpp_quote("")
239[object, local, uuid ("C7B236CE-EE80-11D0-985F-006008059382"), pointer_default (unique)]
240interface IQueryCodePage : IUnknown {
241 HRESULT GetCodePage ([out] UINT *puiCodePage);
242 HRESULT SetCodePage ([in] UINT uiCodePage);
243};
244
245cpp_quote("")
246[object, uuid (1ac3d9f0-175c-11d1-95be-00609797ea4f), pointer_default (unique)]
247interface IPersistFolder2 : IPersistFolder {
248 HRESULT GetCurFolder ([out] PIDLIST_ABSOLUTE *ppidl);
249}
250
251cpp_quote("")
252cpp_quote("#define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY")
253
254#ifndef MAX_PATH
255#define MAX_PATH 260
256#endif
257
258cpp_quote("")
259cpp_quote("#include <pshpack8.h>")
260typedef struct _PERSIST_FOLDER_TARGET_INFO {
261 PIDLIST_ABSOLUTE pidlTargetFolder;
262 WCHAR szTargetParsingName[MAX_PATH];
263 WCHAR szNetworkProvider[MAX_PATH];
264 DWORD dwAttributes;
265 int csidl;
266} PERSIST_FOLDER_TARGET_INFO;
267cpp_quote("#include <poppack.h>")
268
269cpp_quote("")
270[object, uuid (CEF04FDF-FE72-11d2-87a5-00c04f6837cf), pointer_default (unique)]
271interface IPersistFolder3 : IPersistFolder2 {
272 HRESULT InitializeEx ([in, unique] IBindCtx *pbc,[in] PCIDLIST_ABSOLUTE pidlRoot,[in, unique] const PERSIST_FOLDER_TARGET_INFO *ppfti);
273 HRESULT GetFolderTargetInfo ([out] PERSIST_FOLDER_TARGET_INFO *ppfti);
274}
275
276cpp_quote("")
277[object, uuid (1079acfc-29bd-11d3-8e0d-00c04f6837d5), pointer_default (unique),]
278interface IPersistIDList : IPersist {
279 HRESULT SetIDList ([in] PCIDLIST_ABSOLUTE pidl);
280 HRESULT GetIDList ([out] PIDLIST_ABSOLUTE *ppidl);
281}
282
283cpp_quote("")
284[object, uuid (000214f2-0000-0000-C000-000000000046), pointer_default (unique)]
285interface IEnumIDList : IUnknown {
286 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] PITEMID_CHILD *rgelt,[out] ULONG *pceltFetched);
287 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] PITEMID_CHILD *rgelt,[out] ULONG *pceltFetched);
288 HRESULT Skip ([in] ULONG celt);
289 HRESULT Reset ();
290 HRESULT Clone ([out] IEnumIDList **ppenum);
291}
292typedef IEnumIDList *LPENUMIDLIST;
293
294cpp_quote("")
295[object, uuid (d0191542-7954-4908-bc06-b2360bbe45ba), pointer_default (unique)]
296interface IEnumFullIDList : IUnknown {
297 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] PIDLIST_ABSOLUTE *rgelt,[out] ULONG *pceltFetched);
298 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] PIDLIST_ABSOLUTE *rgelt,[out] ULONG *pceltFetched);
299 HRESULT Skip ([in] ULONG celt);
300 HRESULT Reset ();
301 HRESULT Clone ([out] IEnumFullIDList **ppenum);
302}
303
304cpp_quote("")
305[v1_enum] enum _SHGDNF {
306 SHGDN_NORMAL = 0x0000,
307 SHGDN_INFOLDER = 0x0001,
308 SHGDN_FOREDITING = 0x1000,
309 SHGDN_FORADDRESSBAR = 0x4000,
310 SHGDN_FORPARSING = 0x8000,
311};
312
313cpp_quote("")
314typedef DWORD SHGDNF;
315
316cpp_quote("")
317[v1_enum] enum _SHCONTF {
318 SHCONTF_CHECKING_FOR_CHILDREN = 0x00010,
319 SHCONTF_FOLDERS = 0x00020,
320 SHCONTF_NONFOLDERS = 0x00040,
321 SHCONTF_INCLUDEHIDDEN = 0x00080,
322 SHCONTF_INIT_ON_FIRST_NEXT = 0x00100,
323 SHCONTF_NETPRINTERSRCH = 0x00200,
324 SHCONTF_SHAREABLE = 0x00400,
325 SHCONTF_STORAGE = 0x00800,
326 SHCONTF_NAVIGATION_ENUM = 0x01000,
327 SHCONTF_FASTITEMS = 0x02000,
328 SHCONTF_FLATLIST = 0x04000,
329 SHCONTF_ENABLE_ASYNC = 0x08000,
330 SHCONTF_INCLUDESUPERHIDDEN = 0x10000
331};
332
333cpp_quote("")
334typedef DWORD SHCONTF;
335
336cpp_quote("")
337cpp_quote("#define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)")
338cpp_quote("#define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)")
339cpp_quote("#define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)")
340cpp_quote("#define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)")
341cpp_quote("")
342cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
343cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
344cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
345cpp_quote("#define SFGAO_STORAGE __MSABI_LONG(0x8)")
346cpp_quote("#define SFGAO_CANRENAME __MSABI_LONG(0x10)")
347cpp_quote("#define SFGAO_CANDELETE __MSABI_LONG(0x20)")
348cpp_quote("#define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)")
349cpp_quote("#define SFGAO_DROPTARGET __MSABI_LONG(0x100)")
350cpp_quote("")
351cpp_quote("#define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)")
352cpp_quote("")
353cpp_quote("#define SFGAO_SYSTEM __MSABI_LONG(0x1000)")
354cpp_quote("#define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)")
355cpp_quote("#define SFGAO_ISSLOW __MSABI_LONG(0x4000)")
356cpp_quote("#define SFGAO_GHOSTED __MSABI_LONG(0x8000)")
357cpp_quote("#define SFGAO_LINK __MSABI_LONG(0x10000)")
358cpp_quote("#define SFGAO_SHARE __MSABI_LONG(0x20000)")
359cpp_quote("#define SFGAO_READONLY __MSABI_LONG(0x40000)")
360cpp_quote("#define SFGAO_HIDDEN __MSABI_LONG(0x80000)")
361cpp_quote("")
362cpp_quote("#define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)")
363cpp_quote("")
364cpp_quote("#define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)")
365cpp_quote("#define SFGAO_FOLDER __MSABI_LONG(0x20000000)")
366cpp_quote("#define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)")
367cpp_quote("#define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)")
368cpp_quote("")
369cpp_quote("#define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)")
370cpp_quote("")
371cpp_quote("#define SFGAO_VALIDATE __MSABI_LONG(0x1000000)")
372cpp_quote("#define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)")
373cpp_quote("#define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)")
374cpp_quote("#define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)")
375cpp_quote("#define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)")
376cpp_quote("#define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)")
377cpp_quote("#define SFGAO_CANMONIKER __MSABI_LONG(0x400000)")
378cpp_quote("#define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)")
379cpp_quote("#define SFGAO_STREAM __MSABI_LONG(0x400000)")
380cpp_quote("#define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)")
381cpp_quote("")
382cpp_quote("#define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)")
383cpp_quote("#define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)")
384
385cpp_quote("")
386typedef ULONG SFGAOF;
387
388cpp_quote("")
389cpp_quote("#define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L\"Force Folder Shortcut Resolve\"")
390cpp_quote("#define STR_AVOID_DRIVE_RESTRICTION_POLICY L\"Avoid Drive Restriction Policy\"")
391cpp_quote("#define STR_AVOID_DRIVE_RESTRICTION_POLICY L\"Avoid Drive Restriction Policy\"")
392cpp_quote("#define STR_SKIP_BINDING_CLSID L\"Skip Binding CLSID\"")
393cpp_quote("#define STR_PARSE_PREFER_FOLDER_BROWSING L\"Parse Prefer Folder Browsing\"")
394cpp_quote("#define STR_DONT_PARSE_RELATIVE L\"Don't Parse Relative\"")
395cpp_quote("#define STR_PARSE_TRANSLATE_ALIASES L\"Parse Translate Aliases\"")
396cpp_quote("#define STR_PARSE_SKIP_NET_CACHE L\"Skip Net Resource Cache\"")
397cpp_quote("#define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L\"Parse Shell Protocol To File Objects\"")
398cpp_quote("#if _WIN32_IE >= 0x0700")
399cpp_quote("#define STR_TRACK_CLSID L\"Track the CLSID\"")
400cpp_quote("#define STR_INTERNAL_NAVIGATE L\"Internal Navigation\"")
401cpp_quote("#define STR_PARSE_PROPERTYSTORE L\"DelegateNamedProperties\"")
402cpp_quote("#define STR_NO_VALIDATE_FILENAME_CHARS L\"NoValidateFilenameChars\"")
403cpp_quote("#define STR_BIND_DELEGATE_CREATE_OBJECT L\"Delegate Object Creation\"")
404cpp_quote("#define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L\"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING\"")
405cpp_quote("#define STR_PARSE_PREFER_WEB_BROWSING L\"Do not bind to Internet shell folder handlers\"")
406cpp_quote("#define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L\"Show network diagnostics UI\"")
407cpp_quote("#define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L\"Do not require validated URLs\"")
408cpp_quote("#define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L\"Validate URL\"")
409cpp_quote("#endif")
410
411cpp_quote("")
412cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN8")
413cpp_quote("#define BIND_INTERRUPTABLE 0xffffffff")
414cpp_quote("#endif")
415cpp_quote("")
416cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
417cpp_quote("#define STR_BIND_FOLDERS_READ_ONLY L\"Folders As Read Only\"")
418cpp_quote("#define STR_BIND_FOLDER_ENUM_MODE L\"Folder Enum Mode\"")
419
420cpp_quote("")
421typedef [v1_enum] enum FOLDER_ENUM_MODE {
422 FEM_VIEWRESULT = 0,
423 FEM_NAVIGATION = 1,
424} FOLDER_ENUM_MODE;
425
426cpp_quote("")
427[object, uuid (6a9d9026-0e6e-464c-b000-42ecc07de673), pointer_default (unique)]
428interface IObjectWithFolderEnumMode : IUnknown {
429 HRESULT SetMode ([in] FOLDER_ENUM_MODE feMode);
430 HRESULT GetMode ([out] FOLDER_ENUM_MODE *pfeMode);
431}
432
433cpp_quote("")
434cpp_quote("#define STR_PARSE_WITH_EXPLICIT_PROGID L\"ExplicitProgid\"")
435cpp_quote("#define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L\"ExplicitAssociationApp\"")
436cpp_quote("#define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L\"ExplicitAssociationSuccessful\"")
437cpp_quote("#define STR_PARSE_AND_CREATE_ITEM L\"ParseAndCreateItem\"")
438cpp_quote("#define STR_PROPERTYBAG_PARAM L\"SHBindCtxPropertyBag\"")
439cpp_quote("#define STR_ENUM_ITEMS_FLAGS L\"SHCONTF\"")
440
441cpp_quote("")
442interface IShellItem;
443
444cpp_quote("")
445[object, local, uuid (67efed0e-e827-4408-b493-78f3982b685c), pointer_default (unique)]
446interface IParseAndCreateItem : IUnknown {
447 HRESULT SetItem ([in] IShellItem *psi);
448 HRESULT GetItem ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
449}
450
451cpp_quote("")
452cpp_quote("#define STR_ITEM_CACHE_CONTEXT L\"ItemCacheContext\"")
453cpp_quote("#endif")
454
455cpp_quote("")
456interface IShellFolder;
457
458cpp_quote("")
459[object, uuid (000214e6-0000-0000-C000-000000000046), pointer_default (unique)]
460interface IShellFolder : IUnknown {
461 HRESULT ParseDisplayName ([in, unique] HWND hwnd,[in, unique] IBindCtx *pbc,[in, string] LPWSTR pszDisplayName,[in, out, unique] ULONG *pchEaten,[out] PIDLIST_RELATIVE *ppidl,[in, out, unique] ULONG *pdwAttributes);
462 HRESULT EnumObjects ([in, unique] HWND hwnd,[in] SHCONTF grfFlags,[out] IEnumIDList **ppenumIDList);
463 HRESULT BindToObject ([in] PCUIDLIST_RELATIVE pidl,[in, unique] IBindCtx *pbc,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
464 HRESULT BindToStorage ([in] PCUIDLIST_RELATIVE pidl,[in, unique] IBindCtx *pbc,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
465 HRESULT CompareIDs ([in] LPARAM lParam,[in] PCUIDLIST_RELATIVE pidl1,[in] PCUIDLIST_RELATIVE pidl2);
466 HRESULT CreateViewObject ([in, unique] HWND hwndOwner,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
467 HRESULT GetAttributesOf ([in] UINT cidl,[in, size_is (cidl), unique] PCUITEMID_CHILD_ARRAY apidl,[in, out] SFGAOF *rgfInOut);
468 HRESULT GetUIObjectOf ([in, unique] HWND hwndOwner,[in] UINT cidl,[in, size_is (cidl), unique] PCUITEMID_CHILD_ARRAY apidl,[in] REFIID riid,[in, out, unique] UINT *rgfReserved,[out, iid_is (riid)] void **ppv);
469 HRESULT GetDisplayNameOf ([in, unique] PCUITEMID_CHILD pidl,[in] SHGDNF uFlags,[out] STRRET *pName);
470 [local] HRESULT SetNameOf ([in, unique] HWND hwnd,[in] PCUITEMID_CHILD pidl,[in, string] LPCWSTR pszName,[in] SHGDNF uFlags,[out] PITEMID_CHILD *ppidlOut);
471 [call_as (SetNameOf)] HRESULT RemoteSetNameOf ([in, unique] HWND hwnd,[in] PCUITEMID_CHILD pidl,[in, string] LPCWSTR pszName,[in] SHGDNF uFlags,[out] PITEMID_CHILD *ppidlOut);
472}
473typedef IShellFolder *LPSHELLFOLDER;
474
475cpp_quote("")
476typedef struct EXTRASEARCH {
477 GUID guidSearch;
478 WCHAR wszFriendlyName[80];
479 WCHAR wszUrl[2084];
480} EXTRASEARCH,*LPEXTRASEARCH;
481
482cpp_quote("")
483[object, uuid (0e700be1-9db6-11d1-A1CE-00c04fd75d13), pointer_default (unique)]
484interface IEnumExtraSearch : IUnknown {
485 HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] EXTRASEARCH *rgelt,[out] ULONG *pceltFetched);
486 HRESULT Skip ([in] ULONG celt);
487 HRESULT Reset ();
488 HRESULT Clone ([out] IEnumExtraSearch **ppenum);
489}
490typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
491
492cpp_quote("")
493[object, uuid (93f2f68c-1d1b-11d3-A30E-00c04f79abd1), pointer_default (unique)]
494interface IShellFolder2 : IShellFolder {
495 HRESULT GetDefaultSearchGUID ([out] GUID *pguid);
496 HRESULT EnumSearches ([out] IEnumExtraSearch **ppenum);
497 HRESULT GetDefaultColumn ([in] DWORD dwRes,[out] ULONG *pSort,[out] ULONG *pDisplay);
498 HRESULT GetDefaultColumnState ([in] UINT iColumn,[out] SHCOLSTATEF *pcsFlags);
499 HRESULT GetDetailsEx ([in, unique] PCUITEMID_CHILD pidl,[in] const SHCOLUMNID *pscid,[out] VARIANT *pv);
500 HRESULT GetDetailsOf ([in, unique] PCUITEMID_CHILD pidl,[in] UINT iColumn,[out] SHELLDETAILS *psd);
501 HRESULT MapColumnToSCID ([in] UINT iColumn,[out] SHCOLUMNID *pscid);
502}
503typedef char *LPVIEWSETTINGS;
504
505cpp_quote("")
506typedef [v1_enum] enum FOLDERFLAGS {
507 FWF_NONE = 0x00000000,
508 FWF_AUTOARRANGE = 0x00000001,
509 FWF_ABBREVIATEDNAMES = 0x00000002,
510 FWF_SNAPTOGRID = 0x00000004,
511 FWF_OWNERDATA = 0x00000008,
512 FWF_BESTFITWINDOW = 0x00000010,
513 FWF_DESKTOP = 0x00000020,
514 FWF_SINGLESEL = 0x00000040,
515 FWF_NOSUBFOLDERS = 0x00000080,
516 FWF_TRANSPARENT = 0x00000100,
517 FWF_NOCLIENTEDGE = 0x00000200,
518 FWF_NOSCROLL = 0x00000400,
519 FWF_ALIGNLEFT = 0x00000800,
520 FWF_NOICONS = 0x00001000,
521 FWF_SHOWSELALWAYS = 0x00002000,
522 FWF_NOVISIBLE = 0x00004000,
523 FWF_SINGLECLICKACTIVATE = 0x00008000,
524 FWF_NOWEBVIEW = 0x00010000,
525 FWF_HIDEFILENAMES = 0x00020000,
526 FWF_CHECKSELECT = 0x00040000,
527 FWF_NOENUMREFRESH = 0x00080000,
528 FWF_NOGROUPING = 0x00100000,
529 FWF_FULLROWSELECT = 0x00200000,
530 FWF_NOFILTERS = 0x00400000,
531 FWF_NOCOLUMNHEADER = 0x00800000,
532 FWF_NOHEADERINALLVIEWS = 0x01000000,
533 FWF_EXTENDEDTILES = 0x02000000,
534 FWF_TRICHECKSELECT = 0x04000000,
535 FWF_AUTOCHECKSELECT = 0x08000000,
536 FWF_NOBROWSERVIEWSTATE = 0x10000000,
537 FWF_SUBSETGROUPS = 0x20000000,
538 FWF_USESEARCHFOLDER = 0x40000000,
539 FWF_ALLOWRTLREADING = 0x80000000,
540} FOLDERFLAGS;
541cpp_quote("")
542cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)")
543
544cpp_quote("")
545typedef [v1_enum] enum FOLDERVIEWMODE {
546 FVM_AUTO = -1,
547 FVM_FIRST = 1,
548 FVM_ICON = 1,
549 FVM_SMALLICON = 2,
550 FVM_LIST = 3,
551 FVM_DETAILS = 4,
552 FVM_THUMBNAIL = 5,
553 FVM_TILE = 6,
554 FVM_THUMBSTRIP = 7,
555 FVM_CONTENT = 8,
556 FVM_LAST = 8,
557} FOLDERVIEWMODE;
558
559cpp_quote("")
560cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
561typedef [v1_enum] enum FOLDERLOGICALVIEWMODE {
562 FLVM_UNSPECIFIED = -1,
563 FLVM_FIRST = 1,
564 FLVM_DETAILS = 1,
565 FLVM_TILES = 2,
566 FLVM_ICONS = 3,
567 FLVM_LIST = 4,
568 FLVM_CONTENT = 5,
569 FLVM_LAST = 5
570} FOLDERLOGICALVIEWMODE;
571cpp_quote("#endif")
572
573typedef struct FOLDERSETTINGS {
574 UINT ViewMode;
575 UINT fFlags;
576} FOLDERSETTINGS;
577
578cpp_quote("")
579typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
580typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
581typedef FOLDERSETTINGS *PFOLDERSETTINGS;
582
583cpp_quote("")
584[object, uuid (3cc974d2-b302-4d36-ad3e-06d93f695d3f), pointer_default (unique)]
585interface IFolderViewOptions : IUnknown {
586 typedef [v1_enum] enum FOLDERVIEWOPTIONS {
587 FVO_DEFAULT = 0x00000000,
588 FVO_VISTALAYOUT = 0x00000001,
589 FVO_CUSTOMPOSITION = 0x00000002,
590 FVO_CUSTOMORDERING = 0x00000004,
591 FVO_SUPPORTHYPERLINKS = 0x00000008,
592 FVO_NOANIMATIONS = 0x00000010,
593 FVO_NOSCROLLTIPS = 0x00000020,
594 } FOLDERVIEWOPTIONS;
595cpp_quote("")
596 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)")
597cpp_quote("")
598 HRESULT SetFolderViewOptions ([in] FOLDERVIEWOPTIONS fvoMask,[in] FOLDERVIEWOPTIONS fvoFlags);
599 HRESULT GetFolderViewOptions ([out] FOLDERVIEWOPTIONS *pfvoFlags);
600}
601
602typedef [v1_enum] enum _SVSIF {
603 SVSI_DESELECT = 0x00000000,
604 SVSI_SELECT = 0x00000001,
605 SVSI_EDIT = 0x00000003,
606 SVSI_DESELECTOTHERS = 0x00000004,
607 SVSI_ENSUREVISIBLE = 0x00000008,
608 SVSI_FOCUSED = 0x00000010,
609 SVSI_TRANSLATEPT = 0x00000020,
610 SVSI_SELECTIONMARK = 0x00000040,
611 SVSI_POSITIONITEM = 0x00000080,
612 SVSI_CHECK = 0x00000100,
613 SVSI_CHECK2 = 0x00000200,
614 SVSI_KEYBOARDSELECT = 0x00000401,
615 SVSI_NOTAKEFOCUS = 0x40000000
616} _SVSIF;
617cpp_quote("")
618cpp_quote("#define SVSI_NOSTATECHANGE ((UINT)0x80000000)")
619
620cpp_quote("")
621typedef UINT SVSIF;
622
623cpp_quote("")
624typedef [v1_enum] enum _SVGIO {
625 SVGIO_BACKGROUND = 0x00000000,
626 SVGIO_SELECTION = 0x00000001,
627 SVGIO_ALLVIEW = 0x00000002,
628 SVGIO_CHECKED = 0x00000003,
629 SVGIO_TYPE_MASK = 0x0000000f,
630 SVGIO_FLAG_VIEWORDER = 0x80000000
631} _SVGIO;
632
633cpp_quote("")
634cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)")
635
636cpp_quote("")
637typedef int SVGIO;
638
639cpp_quote("")
640typedef [v1_enum] enum SVUIA_STATUS {
641 SVUIA_DEACTIVATE = 0,
642 SVUIA_ACTIVATE_NOFOCUS = 1,
643 SVUIA_ACTIVATE_FOCUS = 2,
644 SVUIA_INPLACEACTIVATE = 3
645} SVUIA_STATUS;
646
647cpp_quote("")
648cpp_quote("#ifdef _FIX_ENABLEMODELESS_CONFLICT")
649cpp_quote("#define EnableModeless EnableModelessSV")
650cpp_quote("#endif")
651cpp_quote("")
652cpp_quote("#if 0")
653typedef LPARAM LPFNSVADDPROPSHEETPAGE;
654cpp_quote("#else")
655cpp_quote("#include <prsht.h>")
656cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
657cpp_quote("#endif")
658
659cpp_quote("")
660interface IShellBrowser;
661
662cpp_quote("")
663[object, uuid (000214e3-0000-0000-C000-000000000046), pointer_default (unique)]
664interface IShellView : IOleWindow {
665 HRESULT TranslateAccelerator ([in] MSG *pmsg);
666 HRESULT EnableModeless ([in] BOOL fEnable);
667 HRESULT UIActivate ([in] UINT uState);
668 HRESULT Refresh ();
669 HRESULT CreateViewWindow ([in, unique] IShellView *psvPrevious,[in] LPCFOLDERSETTINGS pfs,[in] IShellBrowser *psb,[in] RECT *prcView,[out] HWND *phWnd);
670 HRESULT DestroyViewWindow ();
671 HRESULT GetCurrentInfo ([out] LPFOLDERSETTINGS pfs);
672 [local] HRESULT AddPropertySheetPages ([in] DWORD dwReserved,[in] LPFNSVADDPROPSHEETPAGE pfn,[in] LPARAM lparam);
673 HRESULT SaveViewState ();
674 HRESULT SelectItem ([in, unique] PCUITEMID_CHILD pidlItem,[in] SVSIF uFlags);
675 HRESULT GetItemObject ([in] UINT uItem,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
676}
677typedef IShellView *LPSHELLVIEW;
678
679cpp_quote("")
680[object, uuid (88e39e80-3578-11cf-AE69-08002b2e1262), pointer_default (unique)]
681interface IShellView2 : IShellView {
682 typedef GUID SHELLVIEWID;
683cpp_quote("")
684cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")
685cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")
686cpp_quote("")
687cpp_quote("#include <pshpack8.h>")
688 typedef struct _SV2CVW2_PARAMS {
689 DWORD cbSize;
690 IShellView *psvPrev;
691 LPCFOLDERSETTINGS pfs;
692 IShellBrowser *psbOwner;
693 RECT *prcView;
694 SHELLVIEWID const *pvid;
695 HWND hwndView;
696 } SV2CVW2_PARAMS,*LPSV2CVW2_PARAMS;
697cpp_quote("#include <poppack.h>")
698cpp_quote("")
699 HRESULT GetView ([in, out] SHELLVIEWID *pvid,[in] ULONG uView);
700 HRESULT CreateViewWindow2 ([in] LPSV2CVW2_PARAMS lpParams);
701 HRESULT HandleRename ([in, unique] PCUITEMID_CHILD pidlNew);
702 HRESULT SelectAndPositionItem ([in, unique] PCUITEMID_CHILD pidlItem,[in] UINT uFlags,[in, unique] POINT *ppt);
703}
704
705cpp_quote("")
706cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
707[object, uuid (ec39fa88-f8af-41c5-8421-38bed28f4673), pointer_default (unique)]
708interface IShellView3 : IShellView2 {
709 [v1_enum] enum _SV3CVW3_FLAGS {
710 SV3CVW3_DEFAULT = 0x00000000,
711 SV3CVW3_NONINTERACTIVE = 0x00000001,
712 SV3CVW3_FORCEVIEWMODE = 0x00000002,
713 SV3CVW3_FORCEFOLDERFLAGS = 0x00000004,
714 };
715cpp_quote("")
716 typedef DWORD SV3CVW3_FLAGS;
717cpp_quote("")
718 HRESULT CreateViewWindow3 ([in] IShellBrowser *psbOwner,[in, unique] IShellView *psvPrev,[in] SV3CVW3_FLAGS dwViewFlags,[in] FOLDERFLAGS dwMask,[in] FOLDERFLAGS dwFlags,[in] FOLDERVIEWMODE fvMode,[in, unique] const SHELLVIEWID *pvid,[in] const RECT *prcView,[out] HWND *phwndView);
719}
720cpp_quote("#endif")
721
722cpp_quote("#ifdef _FIX_ENABLEMODELESS_CONFLICT")
723cpp_quote("#undef EnableModeless")
724cpp_quote("#endif")
725
726cpp_quote("")
727[object, uuid (cde725b0-ccc9-4519-917e-325d72fab4ce), pointer_default (unique)]
728interface IFolderView : IUnknown {
729 HRESULT GetCurrentViewMode ([out] UINT *pViewMode);
730 HRESULT SetCurrentViewMode ([in] UINT ViewMode);
731 HRESULT GetFolder ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
732 HRESULT Item ([in] int iItemIndex,[out] PITEMID_CHILD *ppidl);
733 HRESULT ItemCount ([in] UINT uFlags,[out] int *pcItems);
734 HRESULT Items ([in] UINT uFlags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
735 HRESULT GetSelectionMarkedItem ([out] int *piItem);
736 HRESULT GetFocusedItem ([out] int *piItem);
737 HRESULT GetItemPosition ([in] PCUITEMID_CHILD pidl,[out] POINT *ppt);
738 HRESULT GetSpacing ([in, out, unique] POINT *ppt);
739 HRESULT GetDefaultSpacing ([out] POINT *ppt);
740 HRESULT GetAutoArrange ();
741 HRESULT SelectItem ([in] int iItem,[in] DWORD dwFlags);
742 HRESULT SelectAndPositionItems ([in] UINT cidl,[in, size_is (cidl)] PCUITEMID_CHILD_ARRAY apidl,[in, unique, size_is (cidl)] POINT *apt,[in] DWORD dwFlags);
743}
744cpp_quote("")
745cpp_quote("#define SID_SFolderView IID_IFolderView")
746cpp_quote("")
747cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
748[object, uuid (6af6e03f-d664-4ef4-9626-f7e0ed36755e)]
749interface ISearchBoxInfo : IUnknown {
750 HRESULT GetCondition ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
751 HRESULT GetText ([out, string] LPWSTR *ppsz);
752}
753cpp_quote("#endif")
754cpp_quote("")
755cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70")
756cpp_quote("#ifndef NO_SHOBJIDL_SORTDIRECTION")
757[v1_enum] enum tagSORTDIRECTION {
758 SORT_DESCENDING = -1,
759 SORT_ASCENDING = 1
760};
761cpp_quote("#endif")
762cpp_quote("")
763typedef int SORTDIRECTION;
764cpp_quote("")
765typedef struct SORTCOLUMN {
766 PROPERTYKEY propkey;
767 SORTDIRECTION direction;
768} SORTCOLUMN;
769
770cpp_quote("")
771typedef [v1_enum] enum FVTEXTTYPE {
772 FVST_EMPTYTEXT = 0,
773} FVTEXTTYPE;
774
775cpp_quote("")
776interface IShellItemArray;
777cpp_quote("")
778typedef HRESULT DEPRECATED_HRESULT;
779cpp_quote("")
780cpp_quote("#ifdef __cplusplus")
781cpp_quote("#define DEPRECATED_HRESULT HRESULT")
782cpp_quote("#endif")
783
784cpp_quote("")
785[object, uuid (1af3a467-214f-4298-908e-06b03e0b39f9), pointer_default (unique)]
786interface IFolderView2 : IFolderView {
787 HRESULT SetGroupBy ([in] REFPROPERTYKEY key,[in] BOOL fAscending);
788 [local] HRESULT GetGroupBy ([out] PROPERTYKEY *pkey,[out] BOOL *pfAscending);
789 [call_as (GetGroupBy)] HRESULT RemoteGetGroupBy ([out] PROPERTYKEY *pkey,[out] BOOL *pfAscending);
790 HRESULT SetViewProperty ([in] PCUITEMID_CHILD pidl,[in] REFPROPERTYKEY propkey,[in] REFPROPVARIANT propvar);
791 HRESULT GetViewProperty ([in] PCUITEMID_CHILD pidl,[in] REFPROPERTYKEY propkey,[out] PROPVARIANT *ppropvar);
792 HRESULT SetTileViewProperties ([in] PCUITEMID_CHILD pidl,[in, string] LPCWSTR pszPropList);
793 HRESULT SetExtendedTileViewProperties ([in] PCUITEMID_CHILD pidl,[in, string] LPCWSTR pszPropList);
794 HRESULT SetText ([in] FVTEXTTYPE iType,[in] LPCWSTR pwszText);
795 HRESULT SetCurrentFolderFlags ([in] DWORD dwMask,[in] DWORD dwFlags);
796 HRESULT GetCurrentFolderFlags ([out] DWORD *pdwFlags);
797 HRESULT GetSortColumnCount ([out] int *pcColumns);
798 HRESULT SetSortColumns ([in, size_is (cColumns)] const SORTCOLUMN *rgSortColumns,[in] int cColumns);
799 HRESULT GetSortColumns ([out, size_is (cColumns)] SORTCOLUMN *rgSortColumns,[in] int cColumns);
800 HRESULT GetItem ([in] int iItem,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
801 HRESULT GetVisibleItem ([in] int iStart,[in] BOOL fPrevious,[out] int *piItem);
802 HRESULT GetSelectedItem ([in] int iStart,[out] int *piItem);
803 HRESULT GetSelection ([in] BOOL fNoneImpliesFolder,[out] IShellItemArray **ppsia);
804 HRESULT GetSelectionState ([in] PCUITEMID_CHILD pidl,[out] DWORD *pdwFlags);
805 HRESULT InvokeVerbOnSelection ([in, unique, string] LPCSTR pszVerb);
806 HRESULT SetViewModeAndIconSize ([in] FOLDERVIEWMODE uViewMode,[in] int iImageSize);
807 HRESULT GetViewModeAndIconSize ([out] FOLDERVIEWMODE *puViewMode,[out] int *piImageSize);
808 HRESULT SetGroupSubsetCount ([in] UINT cVisibleRows);
809 HRESULT GetGroupSubsetCount ([out] UINT *pcVisibleRows);
810 HRESULT SetRedraw ([in] BOOL fRedrawOn);
811 HRESULT IsMoveInSameFolder ();
812 HRESULT DoRename ();
813}
814
815cpp_quote("")
816cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
817[object, uuid (ae8c987d-8797-4ed3-be72-2a47dd938db0)]
818interface IFolderViewSettings : IUnknown {
819 HRESULT GetColumnPropertyList ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
820 HRESULT GetGroupByProperty ([out] PROPERTYKEY *pkey,[out] BOOL *pfGroupAscending);
821 HRESULT GetViewMode ([out] FOLDERLOGICALVIEWMODE *plvm);
822 HRESULT GetIconSize ([out] UINT *puIconSize);
823 HRESULT GetFolderFlags ([out] FOLDERFLAGS *pfolderMask,[out] FOLDERFLAGS *pfolderFlags);
824 HRESULT GetSortColumns ([out, size_is (cColumnsIn), length_is (*pcColumnsOut)] SORTCOLUMN *rgSortColumns,[in] UINT cColumnsIn,[out] UINT *pcColumnsOut);
825 HRESULT GetGroupSubsetCount ([out] UINT *pcVisibleRows);
826}
827cpp_quote("#endif")
828cpp_quote("#endif")
829
830cpp_quote("")
831cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
832[object, uuid (196bf9a5-b346-4ef0-aa1e-5dcdb76768b1), pointer_default (unique)]
833interface IPreviewHandlerVisuals : IUnknown {
834 HRESULT SetBackgroundColor ([in] COLORREF color);
835 HRESULT SetFont ([in] const LOGFONTW *plf);
836 HRESULT SetTextColor ([in] COLORREF color);
837}
838
839cpp_quote("")
840[object, uuid (e693cf68-d967-4112-8763-99172aee5e5a), pointer_default (unique)]
841interface IVisualProperties : IUnknown {
842 typedef [v1_enum] enum VPWATERMARKFLAGS {
843 VPWF_DEFAULT = 0x0,
844 VPWF_ALPHABLEND = 0x1
845 } VPWATERMARKFLAGS;
846cpp_quote("")
847 typedef [v1_enum] enum VPCOLORFLAGS {
848 VPCF_TEXT = 1,
849 VPCF_BACKGROUND = 2,
850 VPCF_SORTCOLUMN = 3,
851 VPCF_SUBTEXT = 4,
852 VPCF_TEXTBACKGROUND = 5
853 } VPCOLORFLAGS;
854cpp_quote("")
855cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)")
856cpp_quote("")
857 HRESULT SetWatermark ([in, unique] HBITMAP hbmp,[in] VPWATERMARKFLAGS vpwf);
858 HRESULT SetColor ([in] VPCOLORFLAGS vpcf,[in] COLORREF cr);
859 HRESULT GetColor ([in] VPCOLORFLAGS vpcf,[out] COLORREF *pcr);
860 HRESULT SetItemHeight ([in] int cyItemInPixels);
861 HRESULT GetItemHeight ([out] int *cyItemInPixels);
862 HRESULT SetFont ([in] const LOGFONTW *plf,[in] BOOL bRedraw);
863 HRESULT GetFont ([out] LOGFONTW *plf);
864 HRESULT SetTheme ([in, unique, string] LPCWSTR pszSubAppName,[in, unique, string] LPCWSTR pszSubIdList);
865}
866cpp_quote("#endif")
867
868cpp_quote("")
869cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")
870cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")
871cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")
872cpp_quote("#define CDBOSC_RENAME 0x00000003")
873cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
874
875cpp_quote("")
876[object, uuid (000214f1-0000-0000-C000-000000000046), pointer_default (unique)]
877interface ICommDlgBrowser : IUnknown {
878 HRESULT OnDefaultCommand ([in] IShellView *ppshv);
879 HRESULT OnStateChange ([in] IShellView *ppshv,[in] ULONG uChange);
880 HRESULT IncludeObject ([in, unique] IShellView *ppshv,[in] PCUITEMID_CHILD pidl);
881}
882typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
883
884cpp_quote("")
885cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
886cpp_quote("")
887cpp_quote("#define CDB2N_CONTEXTMENU_DONE 0x00000001")
888cpp_quote("#define CDB2N_CONTEXTMENU_START 0x00000002")
889cpp_quote("")
890cpp_quote("#define CDB2GVF_SHOWALLFILES 0x1")
891cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
892cpp_quote("#define CDB2GVF_ISFILESAVE 0x2")
893cpp_quote("#define CDB2GVF_ALLOWPREVIEWPANE 0x4")
894cpp_quote("#define CDB2GVF_NOSELECTVERB 0x8")
895cpp_quote("#define CDB2GVF_NOINCLUDEITEM 0x10")
896cpp_quote("#define CDB2GVF_ISFOLDERPICKER 0x20")
897cpp_quote("#define CDB2GVF_ADDSHIELD 0x40")
898cpp_quote("#endif")
899
900cpp_quote("")
901[object, uuid (10339516-2894-11d2-9039-00c04f8eeb3e), pointer_default (unique)]
902interface ICommDlgBrowser2 : ICommDlgBrowser {
903 HRESULT Notify ([in] IShellView *ppshv,[in] DWORD dwNotifyType);
904 HRESULT GetDefaultMenuText ([in] IShellView *ppshv,[out, string, size_is (cchMax)] LPWSTR pszText,[in] int cchMax);
905 HRESULT GetViewFlags ([out] DWORD *pdwFlags);
906}
907typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
908
909cpp_quote("")
910cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
911[object, uuid (c8ad25a1-3294-41ee-8165-71174bd01c57), pointer_default (unique)]
912interface ICommDlgBrowser3 : ICommDlgBrowser2 {
913 HRESULT OnColumnClicked ([in] IShellView *ppshv,[in] int iColumn);
914 HRESULT GetCurrentFilter ([out, string, size_is (cchFileSpec)] LPWSTR pszFileSpec,[in] int cchFileSpec);
915 HRESULT OnPreViewCreated ([in] IShellView *ppshv);
916}
917
918cpp_quote("")
919typedef [v1_enum] enum CM_MASK {
920 CM_MASK_WIDTH = 0x1,
921 CM_MASK_DEFAULTWIDTH = 0x2,
922 CM_MASK_IDEALWIDTH = 0x4,
923 CM_MASK_NAME = 0x8,
924 CM_MASK_STATE = 0x10
925} CM_MASK;
926
927cpp_quote("")
928cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)")
929
930cpp_quote("")
931typedef [v1_enum] enum CM_STATE {
932 CM_STATE_NONE = 0x0,
933 CM_STATE_VISIBLE = 0x1,
934 CM_STATE_FIXEDWIDTH = 0x2,
935 CM_STATE_NOSORTBYFOLDERNESS = 0x4,
936 CM_STATE_ALWAYSVISIBLE = 0x8
937} CM_STATE;
938
939cpp_quote("")
940cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)")
941
942cpp_quote("")
943typedef [v1_enum] enum CM_ENUM_FLAGS {
944 CM_ENUM_ALL = 0x1,
945 CM_ENUM_VISIBLE = 0x2
946} CM_ENUM_FLAGS;
947
948cpp_quote("")
949cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)")
950
951cpp_quote("")
952typedef [v1_enum] enum CM_SET_WIDTH_VALUE {
953 CM_WIDTH_USEDEFAULT = -1,
954 CM_WIDTH_AUTOSIZE = -2
955} CM_SET_WIDTH_VALUE;
956
957#define MAX_COLUMN_NAME_LEN 80
958
959cpp_quote("")
960typedef struct CM_COLUMNINFO {
961 DWORD cbSize;
962 DWORD dwMask;
963 DWORD dwState;
964 UINT uWidth;
965 UINT uDefaultWidth;
966 UINT uIdealWidth;
967 WCHAR wszName[MAX_COLUMN_NAME_LEN];
968} CM_COLUMNINFO;
969
970cpp_quote("")
971[object, uuid (d8ec27bb-3f3b-4042-b10a-4acfd924d453), pointer_default (unique)]
972interface IColumnManager : IUnknown {
973 HRESULT SetColumnInfo ([in] REFPROPERTYKEY propkey,[in] const CM_COLUMNINFO *pcmci);
974 HRESULT GetColumnInfo ([in] REFPROPERTYKEY propkey,[in, out] CM_COLUMNINFO *pcmci);
975 HRESULT GetColumnCount ([in] CM_ENUM_FLAGS dwFlags,[out] UINT *puCount);
976 HRESULT GetColumns ([in] CM_ENUM_FLAGS dwFlags,[out, size_is (cColumns)] PROPERTYKEY *rgkeyOrder,[in] UINT cColumns);
977 HRESULT SetColumns ([in, size_is (cVisible)] const PROPERTYKEY *rgkeyOrder,[in] UINT cVisible);
978}
979cpp_quote("#endif")
980
981cpp_quote("")
982[object, uuid (C0A651F5-B48B-11d2-B5ED-006097c686f6), pointer_default (unique)]
983interface IFolderFilterSite : IUnknown {
984 HRESULT SetFilter ([in]IUnknown *punk);
985}
986
987cpp_quote("")
988[object, uuid (9cc22886-DC8E-11d2-B1D0-00c04f8eeb3e), pointer_default (unique)]
989interface IFolderFilter : IUnknown {
990 HRESULT ShouldShow ([in] IShellFolder *psf,[in, unique] PCIDLIST_ABSOLUTE pidlFolder,[in] PCUITEMID_CHILD pidlItem);
991 HRESULT GetEnumFlags ([in] IShellFolder *psf,[in] PCIDLIST_ABSOLUTE pidlFolder,[out] HWND *phwnd,[in, out] DWORD *pgrfFlags);
992}
993
994cpp_quote("")
995[object, uuid (F1DB8392-7331-11d0-8c99-00a0c92dbfe8), pointer_default (unique),]
996interface IInputObjectSite: IUnknown {
997 HRESULT OnFocusChangeIS ([in, unique] IUnknown *punkObj,[in] BOOL fSetFocus);
998}
999
1000cpp_quote("")
1001[object, uuid (68284faa-6a48-11d0-8c78-00c04fd918b4), pointer_default (unique)]
1002interface IInputObject: IUnknown {
1003 HRESULT UIActivateIO ([in] BOOL fActivate,[in, unique] MSG *pMsg);
1004 HRESULT HasFocusIO ();
1005 HRESULT TranslateAcceleratorIO ([in] MSG *pMsg);
1006}
1007
1008cpp_quote("")
1009[object, uuid (6915c085-510b-44cd-94af-28dfa56cf92b), pointer_default (unique), local]
1010interface IInputObject2 : IInputObject {
1011 HRESULT TranslateAcceleratorGlobal ([in] MSG *pMsg);
1012}
1013
1014cpp_quote("")
1015[object, uuid (000214e5-0000-0000-C000-000000000046), pointer_default (unique)]
1016interface IShellIcon : IUnknown {
1017 HRESULT GetIconOf ([in] PCUITEMID_CHILD pidl,[in] UINT flags,[out] int *pIconIndex);
1018}
1019
1020cpp_quote("")
1021cpp_quote("#define SBSP_DEFBROWSER 0x0000")
1022cpp_quote("#define SBSP_SAMEBROWSER 0x0001")
1023cpp_quote("#define SBSP_NEWBROWSER 0x0002")
1024cpp_quote("")
1025cpp_quote("#define SBSP_DEFMODE 0x0000")
1026cpp_quote("#define SBSP_OPENMODE 0x0010")
1027cpp_quote("#define SBSP_EXPLOREMODE 0x0020")
1028cpp_quote("#define SBSP_HELPMODE 0x0040")
1029cpp_quote("#define SBSP_NOTRANSFERHIST 0x0080")
1030cpp_quote("")
1031cpp_quote("#define SBSP_ABSOLUTE 0x0000")
1032cpp_quote("#define SBSP_RELATIVE 0x1000")
1033cpp_quote("#define SBSP_PARENT 0x2000")
1034cpp_quote("#define SBSP_NAVIGATEBACK 0x4000")
1035cpp_quote("#define SBSP_NAVIGATEFORWARD 0x8000")
1036cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
1037cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1038cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")
1039cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")
1040cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")
1041cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")
1042cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")
1043cpp_quote("#endif")
1044cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60SP2")
1045cpp_quote("#define SBSP_CALLERUNTRUSTED 0x00800000")
1046cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")
1047cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")
1048cpp_quote("#endif")
1049cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
1050cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
1051cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60SP2")
1052cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")
1053cpp_quote("#endif")
1054cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1055cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")
1056cpp_quote("#endif")
1057cpp_quote("#define SBSP_REDIRECT 0x40000000")
1058cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
1059cpp_quote("")
1060cpp_quote("#define FCW_STATUS 0x0001")
1061cpp_quote("#define FCW_TOOLBAR 0x0002")
1062cpp_quote("#define FCW_TREE 0x0003")
1063cpp_quote("#define FCW_INTERNETBAR 0x0006")
1064cpp_quote("#define FCW_PROGRESS 0x0008")
1065
1066cpp_quote("")
1067cpp_quote("#define FCT_MERGE 0x0001")
1068cpp_quote("#define FCT_CONFIGABLE 0x0002")
1069cpp_quote("#define FCT_ADDTOEND 0x0004")
1070
1071cpp_quote("")
1072cpp_quote("#if 0")
1073typedef LPARAM LPTBBUTTONSB;
1074cpp_quote("#else")
1075cpp_quote("#include <commctrl.h>")
1076cpp_quote("")
1077cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
1078cpp_quote("#endif")
1079
1080cpp_quote("")
1081[object, uuid (000214e2-0000-0000-C000-000000000046), pointer_default (unique)]
1082interface IShellBrowser : IOleWindow {
1083 HRESULT InsertMenusSB ([in] HMENU hmenuShared,[in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
1084 HRESULT SetMenuSB ([in, unique] HMENU hmenuShared,[in, unique] HOLEMENU holemenuRes,[in, unique] HWND hwndActiveObject);
1085 HRESULT RemoveMenusSB ([in] HMENU hmenuShared);
1086 HRESULT SetStatusTextSB ([in, unique] LPCWSTR pszStatusText);
1087 HRESULT EnableModelessSB ([in] BOOL fEnable);
1088 HRESULT TranslateAcceleratorSB ([in] MSG *pmsg,[in] WORD wID);
1089 HRESULT BrowseObject ([in, unique] PCUIDLIST_RELATIVE pidl,[in] UINT wFlags);
1090 HRESULT GetViewStateStream ([in] DWORD grfMode,[out] IStream **ppStrm);
1091 HRESULT GetControlWindow ([in] UINT id,[out] HWND *phwnd);
1092 [local] HRESULT SendControlMsg ([in] UINT id,[in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam,[out] LRESULT *pret);
1093 HRESULT QueryActiveShellView ([out] IShellView **ppshv);
1094 HRESULT OnViewWindowActive ([in] IShellView *pshv);
1095 [local] HRESULT SetToolbarItems ([in] LPTBBUTTONSB lpButtons,[in] UINT nButtons,[in] UINT uFlags);
1096}
1097
1098cpp_quote("")
1099typedef IShellBrowser *LPSHELLBROWSER;
1100
1101cpp_quote("")
1102[object, uuid (cb728b20-f786-11ce-92ad-00aa00a74cd0), pointer_default (unique)]
1103interface IProfferService : IUnknown {
1104 HRESULT ProfferService ([in] REFGUID guidService,[in] IServiceProvider *psp,[out] DWORD *pdwCookie);
1105 HRESULT RevokeService ([in] DWORD dwCookie);
1106}
1107
1108cpp_quote("")
1109cpp_quote("#define SID_SProfferService IID_IProfferService")
1110cpp_quote("#define STR_DONT_RESOLVE_LINK L\"Don't Resolve Link\"")
1111cpp_quote("#define STR_GET_ASYNC_HANDLER L\"GetAsyncHandler\"")
1112
1113cpp_quote("")
1114[object, uuid (43826d1e-e718-42ee-bc55-a1e261c37bfe), pointer_default (unique)]
1115interface IShellItem : IUnknown {
1116 typedef [v1_enum] enum _SIGDN {
1117 SIGDN_NORMALDISPLAY = 0x00000000,
1118 SIGDN_PARENTRELATIVEPARSING = (int) 0x80018001,
1119 SIGDN_DESKTOPABSOLUTEPARSING = (int) 0x80028000,
1120 SIGDN_PARENTRELATIVEEDITING = (int) 0x80031001,
1121 SIGDN_DESKTOPABSOLUTEEDITING = (int) 0x8004c000,
1122 SIGDN_FILESYSPATH = (int) 0x80058000,
1123 SIGDN_URL = (int) 0x80068000,
1124 SIGDN_PARENTRELATIVEFORADDRESSBAR = (int) 0x8007c001,
1125 SIGDN_PARENTRELATIVE = (int) 0x80080001,
1126 SIGDN_PARENTRELATIVEFORUI = (int) 0x80094001,
1127 } SIGDN;
1128
1129cpp_quote("")
1130 [v1_enum] enum _SICHINTF {
1131 SICHINT_DISPLAY = 0x00000000,
1132 SICHINT_ALLFIELDS = (int) 0x80000000,
1133 SICHINT_CANONICAL = 0x10000000,
1134 SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
1135 };
1136
1137cpp_quote("")
1138 typedef DWORD SICHINTF;
1139cpp_quote("")
1140 HRESULT BindToHandler ([in, unique] IBindCtx *pbc,[in] REFGUID bhid,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1141 HRESULT GetParent ([out] IShellItem **ppsi);
1142 HRESULT GetDisplayName ([in] SIGDN sigdnName,[out, string] LPWSTR *ppszName);
1143 HRESULT GetAttributes ([in] SFGAOF sfgaoMask,[out] SFGAOF *psfgaoAttribs);
1144 HRESULT Compare ([in] IShellItem *psi,[in] SICHINTF hint,[out] int *piOrder);
1145}
1146
1147cpp_quote("")
1148cpp_quote("SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);")
1149
1150cpp_quote("")
1151cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1152cpp_quote(" SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);")
1153cpp_quote(" SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);")
1154cpp_quote(" SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);")
1155cpp_quote(" SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);")
1156cpp_quote("#endif")
1157cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1158cpp_quote(" SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);")
1159cpp_quote(" SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);")
1160cpp_quote(" SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
1161cpp_quote(" SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);")
1162cpp_quote(" SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);")
1163cpp_quote(" SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);")
1164cpp_quote("#endif")
1165cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
1166typedef [v1_enum] enum DATAOBJ_GET_ITEM_FLAGS {
1167 DOGIF_DEFAULT = 0x0000,
1168 DOGIF_TRAVERSE_LINK = 0x0001,
1169 DOGIF_NO_HDROP = 0x0002,
1170 DOGIF_NO_URL = 0x0004,
1171 DOGIF_ONLY_IF_ONE = 0x0008,
1172} DATAOBJ_GET_ITEM_FLAGS;
1173
1174cpp_quote("")
1175cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")
1176cpp_quote("")
1177cpp_quote(" STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);")
1178cpp_quote("#endif")
1179
1180cpp_quote("")
1181cpp_quote("#define STR_GPS_HANDLERPROPERTIESONLY L\"GPS_HANDLERPROPERTIESONLY\"")
1182cpp_quote("#define STR_GPS_FASTPROPERTIESONLY L\"GPS_FASTPROPERTIESONLY\"")
1183cpp_quote("#define STR_GPS_OPENSLOWITEM L\"GPS_OPENSLOWITEM\"")
1184cpp_quote("#define STR_GPS_DELAYCREATION L\"GPS_DELAYCREATION\"")
1185cpp_quote("#define STR_GPS_BESTEFFORT L\"GPS_BESTEFFORT\"")
1186cpp_quote("#define STR_GPS_NO_OPLOCK L\"GPS_NO_OPLOCK\"")
1187
1188cpp_quote("")
1189[object, uuid (7e9fb0d3-919f-4307-ab2e-9b1860310c93), pointer_default (unique)]
1190interface IShellItem2 : IShellItem {
1191 HRESULT GetPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1192 HRESULT GetPropertyStoreWithCreateObject ([in] GETPROPERTYSTOREFLAGS flags,[in] IUnknown *punkCreateObject,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1193 HRESULT GetPropertyStoreForKeys ([in, size_is (cKeys)] const PROPERTYKEY *rgKeys,[in] UINT cKeys,[in] GETPROPERTYSTOREFLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1194 HRESULT GetPropertyDescriptionList ([in] REFPROPERTYKEY keyType,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1195 HRESULT Update ([in, unique] IBindCtx *pbc);
1196 HRESULT GetProperty ([in] REFPROPERTYKEY key,[out] PROPVARIANT *ppropvar);
1197 HRESULT GetCLSID ([in] REFPROPERTYKEY key,[out] CLSID *pclsid);
1198 HRESULT GetFileTime ([in] REFPROPERTYKEY key,[out] FILETIME *pft);
1199 HRESULT GetInt32 ([in] REFPROPERTYKEY key,[out] int *pi);
1200 HRESULT GetString ([in] REFPROPERTYKEY key,[out, string] LPWSTR *ppsz);
1201 HRESULT GetUInt32 ([in] REFPROPERTYKEY key,[out] ULONG *pui);
1202 HRESULT GetUInt64 ([in] REFPROPERTYKEY key,[out] ULONGLONG *pull);
1203 HRESULT GetBool ([in] REFPROPERTYKEY key,[out] BOOL *pf);
1204}
1205
1206cpp_quote("")
1207[v1_enum] enum _SIIGBF {
1208 SIIGBF_RESIZETOFIT = 0x00000000,
1209 SIIGBF_BIGGERSIZEOK = 0x00000001,
1210 SIIGBF_MEMORYONLY = 0x00000002,
1211 SIIGBF_ICONONLY = 0x00000004,
1212 SIIGBF_THUMBNAILONLY = 0x00000008,
1213 SIIGBF_INCACHEONLY = 0x00000010,
1214 SIIGBF_CROPTOSQUARE = 0x00000020,
1215 SIIGBF_WIDETHUMBNAILS = 0x00000040,
1216 SIIGBF_ICONBACKGROUND = 0x00000080,
1217 SIIGBF_SCALEUP = 0x00000100,
1218};
1219
1220cpp_quote("")
1221typedef int SIIGBF;
1222
1223cpp_quote("")
1224[object, uuid (bcc18b79-ba16-442f-80c4-8a59c30c463b), pointer_default (unique)]
1225interface IShellItemImageFactory : IUnknown {
1226 HRESULT GetImage ([in] SIZE size,[in] SIIGBF flags,[out] HBITMAP *phbm);
1227}
1228
1229cpp_quote("")
1230[object, uuid (a561e69a-b4b8-4113-91a5-64c6bcca3430), version (1.0)]
1231interface IUserAccountChangeCallback : IUnknown {
1232 HRESULT OnPictureChange ([in, string] LPCWSTR pszUserName);
1233}
1234
1235cpp_quote("")
1236[object, uuid (70629033-e363-4a28-a567-0db78006e6d7), pointer_default (unique)]
1237interface IEnumShellItems : IUnknown {
1238 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IShellItem **rgelt,[out] ULONG *pceltFetched);
1239 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IShellItem **rgelt,[out] ULONG *pceltFetched);
1240 HRESULT Skip ([in] ULONG celt);
1241 HRESULT Reset ();
1242 HRESULT Clone ([out] IEnumShellItems **ppenum);
1243}
1244
1245cpp_quote("")
1246typedef GUID STGTRANSCONFIRMATION,*LPSTGTRANSCONFIRMATION;
1247
1248cpp_quote("")
1249typedef [v1_enum] enum STGOP {
1250 STGOP_MOVE = 1,
1251 STGOP_COPY = 2,
1252 STGOP_SYNC = 3,
1253 STGOP_REMOVE = 5,
1254 STGOP_RENAME = 6,
1255 STGOP_APPLYPROPERTIES = 8,
1256 STGOP_NEW = 10
1257} STGOP;
1258
1259 cpp_quote("")
1260[v1_enum] enum _TRANSFER_SOURCE_FLAGS {
1261 TSF_NORMAL = 0x0000,
1262 TSF_FAIL_EXIST = 0x0000,
1263 TSF_RENAME_EXIST = 0x0001,
1264 TSF_OVERWRITE_EXIST = 0x0002,
1265 TSF_ALLOW_DECRYPTION = 0x0004,
1266 TSF_NO_SECURITY = 0x0008,
1267 TSF_COPY_CREATION_TIME = 0x0010,
1268 TSF_COPY_WRITE_TIME = 0x0020,
1269 TSF_USE_FULL_ACCESS = 0x0040,
1270 TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x0080,
1271 TSF_COPY_HARD_LINK = 0x0100,
1272 TSF_COPY_LOCALIZED_NAME = 0x0200,
1273 TSF_MOVE_AS_COPY_DELETE = 0x0400,
1274 TSF_SUSPEND_SHELLEVENTS = 0x0800,
1275};
1276cpp_quote("")
1277typedef DWORD TRANSFER_SOURCE_FLAGS;
1278cpp_quote("")
1279cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1280[uuid (d594d0d8-8da7-457b-b3b4-ce5dbaac0b88), pointer_default (unique), local]
1281interface ITransferAdviseSink : IUnknown {
1282 [v1_enum] enum _TRANSFER_ADVISE_STATE {
1283 TS_NONE = 0x00000000,
1284 TS_PERFORMING = 0x00000001,
1285 TS_PREPARING = 0x00000002,
1286 TS_INDETERMINATE = 0x00000004
1287 };
1288cpp_quote("")
1289 typedef DWORD TRANSFER_ADVISE_STATE;
1290cpp_quote("")
1291 HRESULT UpdateProgress ([in] ULONGLONG ullSizeCurrent,[in] ULONGLONG ullSizeTotal,[in] int nFilesCurrent,[in] int nFilesTotal,[in] int nFoldersCurrent,[in] int nFoldersTotal);
1292 HRESULT UpdateTransferState ([in] TRANSFER_ADVISE_STATE ts);
1293 HRESULT ConfirmOverwrite ([in] IShellItem *psiSource,[in] IShellItem *psiDestParent,[in, string] LPCWSTR pszName);
1294 HRESULT ConfirmEncryptionLoss ([in] IShellItem *psiSource);
1295 HRESULT FileFailure ([in] IShellItem *psi,[in, unique, string] LPCWSTR pszItem,[in] HRESULT hrError,[out, unique, size_is (cchRename)] LPWSTR pszRename,[in] ULONG cchRename);
1296 HRESULT SubStreamFailure ([in] IShellItem *psi,[in, string] LPCWSTR pszStreamName,[in] HRESULT hrError);
1297 HRESULT PropertyFailure ([in] IShellItem *psi,[in, unique] const PROPERTYKEY *pkey,[in] HRESULT hrError);
1298}
1299cpp_quote("#endif")
1300
1301cpp_quote("")
1302cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1303[object, uuid (00adb003-bde9-45c6-8e29-d09f9353e108), pointer_default (unique), local]
1304interface ITransferSource : IUnknown {
1305 HRESULT Advise ([in] ITransferAdviseSink *psink,[out] DWORD *pdwCookie);
1306 HRESULT Unadvise ([in] DWORD dwCookie);
1307 HRESULT SetProperties ([in] IPropertyChangeArray *pproparray);
1308 HRESULT OpenItem ([in] IShellItem *psi,[in] TRANSFER_SOURCE_FLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1309 HRESULT MoveItem ([in] IShellItem *psi,[in] IShellItem *psiParentDst,[in, string] LPCWSTR pszNameDst,[in] TRANSFER_SOURCE_FLAGS flags,[out] IShellItem **ppsiNew);
1310 HRESULT RecycleItem ([in] IShellItem *psiSource,[in] IShellItem *psiParentDest,[in] TRANSFER_SOURCE_FLAGS flags,[out] IShellItem **ppsiNewDest);
1311 HRESULT RemoveItem ([in] IShellItem *psiSource,[in] TRANSFER_SOURCE_FLAGS flags);
1312 HRESULT RenameItem ([in] IShellItem *psiSource,[in, string] LPCWSTR pszNewName,[in] TRANSFER_SOURCE_FLAGS flags,[out] IShellItem **ppsiNewDest);
1313 HRESULT LinkItem ([in] IShellItem *psiSource,[in] IShellItem *psiParentDest,[in, unique, string] LPCWSTR pszNewName,[in] TRANSFER_SOURCE_FLAGS flags,[out] IShellItem **ppsiNewDest);
1314 HRESULT ApplyPropertiesToItem ([in] IShellItem *psiSource,[out] IShellItem **ppsiNew);
1315 HRESULT GetDefaultDestinationName ([in] IShellItem *psiSource,[in] IShellItem *psiParentDest,[out, string] LPWSTR *ppszDestinationName);
1316 HRESULT EnterFolder ([in] IShellItem *psiChildFolderDest);
1317 HRESULT LeaveFolder ([in] IShellItem *psiChildFolderDest);
1318}
1319cpp_quote("#endif")
1320
1321cpp_quote("")
1322typedef struct SHELL_ITEM_RESOURCE {
1323 GUID guidType;
1324 WCHAR szName[260];
1325} SHELL_ITEM_RESOURCE;
1326
1327cpp_quote("")
1328[object, uuid (2dd81fe3-a83c-4da9-a330-47249d345ba1), pointer_default (unique)]
1329interface IEnumResources : IUnknown {
1330 HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] SHELL_ITEM_RESOURCE *psir,[out] ULONG *pceltFetched);
1331 HRESULT Skip ([in] ULONG celt);
1332 HRESULT Reset ();
1333 HRESULT Clone ([out] IEnumResources **ppenumr);
1334}
1335
1336cpp_quote("")
1337[object, uuid (ff5693be-2ce0-4d48-b5c5-40817d1acdb9), pointer_default (unique)]
1338interface IShellItemResources : IUnknown {
1339 HRESULT GetAttributes ([out] DWORD *pdwAttributes);
1340 HRESULT GetSize ([out] ULONGLONG *pullSize);
1341 HRESULT GetTimes ([out] FILETIME *pftCreation,[out] FILETIME *pftWrite,[out] FILETIME *pftAccess);
1342 HRESULT SetTimes ([in, unique] const FILETIME *pftCreation,[in, unique] const FILETIME *pftWrite,[in, unique] const FILETIME *pftAccess);
1343 HRESULT GetResourceDescription ([in] const SHELL_ITEM_RESOURCE *pcsir,[out, string] LPWSTR *ppszDescription);
1344 HRESULT EnumResources ([out] IEnumResources **ppenumr);
1345 HRESULT SupportsResource ([in] const SHELL_ITEM_RESOURCE *pcsir);
1346 HRESULT OpenResource ([in] const SHELL_ITEM_RESOURCE *pcsir,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1347 HRESULT CreateResource ([in] const SHELL_ITEM_RESOURCE *pcsir,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1348 HRESULT MarkForDelete ();
1349}
1350
1351cpp_quote("")
1352[object, uuid (48addd32-3ca5-4124-abe3-b5a72531b207), pointer_default (unique), local]
1353interface ITransferDestination : IUnknown {
1354 HRESULT Advise ([in] ITransferAdviseSink *psink,[out] DWORD *pdwCookie);
1355 HRESULT Unadvise ([in] DWORD dwCookie);
1356 HRESULT CreateItem ([in, string] LPCWSTR pszName,[in] DWORD dwAttributes,[in] ULONGLONG ullSize,[in] TRANSFER_SOURCE_FLAGS flags,[in] REFIID riidItem,[out, iid_is (riidItem)] void **ppvItem,[in] REFIID riidResources,[out, iid_is (riidResources)] void **ppvResources);
1357}
1358cpp_quote("#if 0")
1359typedef struct _OVERLAPPED {
1360 ULONG_PTR Internal;
1361 ULONG_PTR InternalHigh;
1362 union {
1363 struct {
1364 DWORD Offset;
1365 DWORD OffsetHigh;
1366 };
1367 PVOID Pointer;
1368 };
1369 HANDLE hEvent;
1370} OVERLAPPED,*LPOVERLAPPED;
1371cpp_quote("#endif")
1372
1373cpp_quote("")
1374[object, uuid (fe0b6665-e0ca-49b9-a178-2b5cb48d92a5), pointer_default (unique), local]
1375interface IStreamAsync : IStream {
1376 HRESULT ReadAsync ([out, size_is (cb), length_is (*pcbRead)] void *pv,[in] DWORD cb,[out] LPDWORD pcbRead,[in] LPOVERLAPPED lpOverlapped);
1377 HRESULT WriteAsync ([in, size_is (cb)] void const *lpBuffer,[in] DWORD cb,[out] LPDWORD pcbWritten,[in] LPOVERLAPPED lpOverlapped);
1378 HRESULT OverlappedResult ([in] LPOVERLAPPED lpOverlapped,[out] LPDWORD lpNumberOfBytesTransferred,[in] BOOL bWait);
1379 HRESULT CancelIo ();
1380}
1381
1382cpp_quote("")
1383[object, uuid (8a68fdda-1fdc-4c20-8ceb-416643b5a625), pointer_default (unique), local]
1384interface IStreamUnbufferedInfo : IUnknown {
1385 HRESULT GetSectorSize ([out] ULONG *pcbSectorSize);
1386}
1387
1388cpp_quote("")
1389cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1390[object, uuid (04b0f1a7-9490-44bc-96e1-4296a31252e2), pointer_default (unique),]
1391interface IFileOperationProgressSink : IUnknown {
1392 HRESULT StartOperations ();
1393 HRESULT FinishOperations ([in] HRESULT hrResult);
1394 HRESULT PreRenameItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in, unique, string] LPCWSTR pszNewName);
1395 HRESULT PostRenameItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in, string] LPCWSTR pszNewName,[in] HRESULT hrRename,[in] IShellItem *psiNewlyCreated);
1396 HRESULT PreMoveItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName);
1397 HRESULT PostMoveItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName,[in] HRESULT hrMove,[in] IShellItem *psiNewlyCreated);
1398 HRESULT PreCopyItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName);
1399 HRESULT PostCopyItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName,[in] HRESULT hrCopy,[in] IShellItem *psiNewlyCreated);
1400 HRESULT PreDeleteItem ([in] DWORD dwFlags,[in] IShellItem *psiItem);
1401 HRESULT PostDeleteItem ([in] DWORD dwFlags,[in] IShellItem *psiItem,[in] HRESULT hrDelete,[in] IShellItem *psiNewlyCreated);
1402 HRESULT PreNewItem ([in] DWORD dwFlags,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName);
1403 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);
1404 HRESULT UpdateProgress ([in] UINT iWorkTotal,[in] UINT iWorkSoFar);
1405 HRESULT ResetTimer ();
1406 HRESULT PauseTimer ();
1407 HRESULT ResumeTimer ();
1408}
1409cpp_quote("#endif")
1410
1411cpp_quote("")
1412[object, uuid (b63ea76d-1f85-456f-a19c-48159efa858b), pointer_default (unique)]
1413interface IShellItemArray : IUnknown {
1414 typedef [v1_enum] enum SIATTRIBFLAGS {
1415 SIATTRIBFLAGS_AND = 0x00000001,
1416 SIATTRIBFLAGS_OR = 0x00000002,
1417 SIATTRIBFLAGS_APPCOMPAT = 0x00000003,
1418 SIATTRIBFLAGS_MASK = 0x00000003,
1419 SIATTRIBFLAGS_ALLITEMS = 0x00004000
1420 } SIATTRIBFLAGS;
1421cpp_quote("")
1422cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
1423cpp_quote("")
1424 HRESULT BindToHandler ([in, unique] IBindCtx *pbc,[in] REFGUID bhid,[in] REFIID riid,[out, iid_is (riid)] void **ppvOut);
1425 HRESULT GetPropertyStore ([in] GETPROPERTYSTOREFLAGS flags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1426 HRESULT GetPropertyDescriptionList ([in] REFPROPERTYKEY keyType,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1427 HRESULT GetAttributes ([in] SIATTRIBFLAGS AttribFlags,[in] SFGAOF sfgaoMask,[out] SFGAOF *psfgaoAttribs);
1428 HRESULT GetCount ([out] DWORD *pdwNumItems);
1429 HRESULT GetItemAt ([in] DWORD dwIndex,[out] IShellItem **ppsi);
1430 HRESULT EnumItems ([out] IEnumShellItems **ppenumShellItems);
1431}
1432
1433cpp_quote("")
1434cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1435cpp_quote(" SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
1436cpp_quote(" SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")
1437cpp_quote(" SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);")
1438cpp_quote(" SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")
1439cpp_quote("#endif")
1440
1441cpp_quote("")
1442[object, uuid (7f73be3f-fb79-493c-a6c7-7ee14e245841), pointer_default (unique)]
1443interface IInitializeWithItem : IUnknown {
1444 HRESULT Initialize ([in] IShellItem *psi,[in] DWORD grfMode);
1445}
1446
1447cpp_quote("")
1448[object, uuid (1c9cd5bb-98e9-4491-a60f-31aacc72b83c), pointer_default (unique)]
1449interface IObjectWithSelection : IUnknown {
1450 HRESULT SetSelection ([in] IShellItemArray *psia);
1451 HRESULT GetSelection ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
1452}
1453
1454cpp_quote("")
1455[object, uuid (321a6a6a-d61f-4bf3-97ae-14be2986bb36), pointer_default (unique)]
1456interface IObjectWithBackReferences : IUnknown {
1457 HRESULT RemoveBackReferences ();
1458}
1459
1460cpp_quote("")
1461[v1_enum] enum _PROPERTYUI_NAME_FLAGS {
1462 PUIFNF_DEFAULT = 0x00000000,
1463 PUIFNF_MNEMONIC = 0x00000001,
1464};
1465
1466cpp_quote("")
1467typedef DWORD PROPERTYUI_NAME_FLAGS;
1468
1469cpp_quote("")
1470[v1_enum] enum _PROPERTYUI_FLAGS {
1471 PUIF_DEFAULT = 0x00000000,
1472 PUIF_RIGHTALIGN = 0x00000001,
1473 PUIF_NOLABELININFOTIP = 0x00000002,
1474};
1475
1476cpp_quote("")
1477typedef DWORD PROPERTYUI_FLAGS;
1478
1479cpp_quote("")
1480[v1_enum] enum _PROPERTYUI_FORMAT_FLAGS {
1481 PUIFFDF_DEFAULT = 0x00000000,
1482 PUIFFDF_RIGHTTOLEFT = 0x00000001,
1483 PUIFFDF_SHORTFORMAT = 0x00000002,
1484 PUIFFDF_NOTIME = 0x00000004,
1485 PUIFFDF_FRIENDLYDATE = 0x00000008
1486};
1487
1488cpp_quote("")
1489typedef DWORD PROPERTYUI_FORMAT_FLAGS;
1490
1491cpp_quote("")
1492[object, uuid (757a7d9f-919a-4118-99d7-dbb208c8cc66), pointer_default (unique)]
1493interface IPropertyUI : IUnknown {
1494 HRESULT ParsePropertyName ([in, string] LPCWSTR pszName,[out] FMTID *pfmtid,[out] PROPID *ppid,[in, out] ULONG *pchEaten);
1495 HRESULT GetCannonicalName ([in] REFFMTID fmtid,[in] PROPID pid,[out, string, size_is (cchText)] LPWSTR pwszText,[in] DWORD cchText);
1496 HRESULT GetDisplayName ([in] REFFMTID fmtid,[in] PROPID pid,[in] PROPERTYUI_NAME_FLAGS flags,[out, size_is (cchText)] LPWSTR pwszText,[in] DWORD cchText);
1497 HRESULT GetPropertyDescription ([in] REFFMTID fmtid,[in] PROPID pid,[out, size_is (cchText)] LPWSTR pwszText,[in] DWORD cchText);
1498 HRESULT GetDefaultWidth ([in] REFFMTID fmtid,[in] PROPID pid,[out] ULONG *pcxChars);
1499 HRESULT GetFlags ([in] REFFMTID fmtid,[in] PROPID pid,[out] PROPERTYUI_FLAGS *pflags);
1500 HRESULT FormatForDisplay ([in] REFFMTID fmtid,[in] PROPID pid,[in] const PROPVARIANT *ppropvar,[in] PROPERTYUI_FORMAT_FLAGS puiff,[out, string, size_is (cchText)] LPWSTR pwszText,[in] DWORD cchText);
1501 HRESULT GetHelpInfo ([in] REFFMTID fmtid,[in] PROPID pid,[out, string, size_is (cch)] LPWSTR pwszHelpFile,[in] DWORD cch,[out] UINT *puHelpID);
1502}
1503
1504cpp_quote("")
1505cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
1506cpp_quote(" SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);")
1507cpp_quote(" SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);")
1508cpp_quote(" SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);")
1509cpp_quote(" SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);")
1510cpp_quote("#endif")
1511
1512cpp_quote("")
1513[object, uuid (9af64809-5864-4c26-a720-c1f78c086ee3), pointer_default (unique)]
1514interface ICategoryProvider : IUnknown {
1515 HRESULT CanCategorizeOnSCID ([in] const SHCOLUMNID *pscid);
1516 HRESULT GetDefaultCategory ([out] GUID *pguid,[out] SHCOLUMNID *pscid);
1517 HRESULT GetCategoryForSCID ([in] const SHCOLUMNID *pscid,[out] GUID *pguid);
1518 HRESULT EnumCategories ([out] IEnumGUID **penum);
1519 HRESULT GetCategoryName ([in] const GUID *pguid,[out, string, size_is (cch)] LPWSTR pszName,[in] UINT cch);
1520 HRESULT CreateCategory ([in] const GUID *pguid,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1521}
1522
1523cpp_quote("")
1524typedef [v1_enum] enum CATEGORYINFO_FLAGS {
1525 CATINFO_NORMAL = 0x00000000,
1526 CATINFO_COLLAPSED = 0x00000001,
1527 CATINFO_HIDDEN = 0x00000002,
1528 CATINFO_EXPANDED = 0x00000004,
1529 CATINFO_NOHEADER = 0x00000008,
1530 CATINFO_NOTCOLLAPSIBLE = 0x00000010,
1531 CATINFO_NOHEADERCOUNT = 0x00000020,
1532 CATINFO_SUBSETTED = 0x00000040
1533} CATEGORYINFO_FLAGS;
1534
1535cpp_quote("")
1536cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)")
1537
1538cpp_quote("")
1539typedef [v1_enum] enum CATSORT_FLAGS {
1540 CATSORT_DEFAULT = 0x00000000,
1541 CATSORT_NAME = 0x00000001,
1542} CATSORT_FLAGS;
1543cpp_quote("")
1544cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)")
1545
1546cpp_quote("")
1547typedef struct CATEGORY_INFO {
1548 CATEGORYINFO_FLAGS cif;
1549 WCHAR wszName[260];
1550} CATEGORY_INFO;
1551
1552cpp_quote("")
1553[object, uuid (a3b14589-9174-49a8-89a3-06a1ae2b9ba7), pointer_default (unique)]
1554interface ICategorizer : IUnknown {
1555 HRESULT GetDescription ([out, string, size_is (cch)] LPWSTR pszDesc,[in] UINT cch);
1556 HRESULT GetCategory ([in] UINT cidl,[in, size_is (cidl)] PCUITEMID_CHILD_ARRAY apidl,[out, size_is (cidl)] DWORD *rgCategoryIds);
1557 HRESULT GetCategoryInfo ([in] DWORD dwCategoryId,[out] CATEGORY_INFO *pci);
1558 HRESULT CompareCategory ([in] CATSORT_FLAGS csfFlags,[in] DWORD dwCategoryId1,[in] DWORD dwCategoryId2);
1559}
1560
1561cpp_quote("")
1562cpp_quote("#include <pshpack8.h>")
1563typedef struct SHDRAGIMAGE {
1564 SIZE sizeDragImage;
1565 POINT ptOffset;
1566 HBITMAP hbmpDragImage;
1567 COLORREF crColorKey;
1568} SHDRAGIMAGE,*LPSHDRAGIMAGE;
1569cpp_quote("#include <poppack.h>")
1570
1571cpp_quote("")
1572cpp_quote("#define DI_GETDRAGIMAGE TEXT(\"ShellGetDragImage\")")
1573
1574cpp_quote("")
1575[local, uuid (4657278b-411b-11d2-839a-00c04fd918d0), pointer_default (unique)]
1576interface IDropTargetHelper : IUnknown {
1577 HRESULT DragEnter ([in] HWND hwndTarget,[in] IDataObject *pDataObject,[in] POINT *ppt,[in] DWORD dwEffect);
1578 HRESULT DragLeave ();
1579 HRESULT DragOver ([in] POINT *ppt,[in] DWORD dwEffect);
1580 HRESULT Drop ([in] IDataObject *pDataObject,[in] POINT *ppt,[in] DWORD dwEffect);
1581 HRESULT Show ([in] BOOL fShow);
1582}
1583
1584cpp_quote("")
1585[local, uuid (DE5BF786-477a-11d2-839d-00c04fd918d0), pointer_default (unique)]
1586interface IDragSourceHelper: IUnknown {
1587 HRESULT InitializeFromBitmap ([in] LPSHDRAGIMAGE pshdi,[in] IDataObject *pDataObject);
1588 HRESULT InitializeFromWindow ([in, unique] HWND hwnd,[in, unique] POINT *ppt,[in] IDataObject *pDataObject);
1589}
1590
1591cpp_quote("")
1592cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1593typedef [v1_enum] enum DSH_FLAGS {
1594 DSH_ALLOWDROPDESCRIPTIONTEXT = 0x0001,
1595} DSH_FLAGS;
1596cpp_quote("")
1597cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)")
1598
1599cpp_quote("")
1600[uuid (83e07d0d-0c5f-4163-BF1A-60b274051e40), local, pointer_default (unique)]
1601interface IDragSourceHelper2 : IDragSourceHelper {
1602 HRESULT SetFlags ([in] DWORD dwFlags);
1603}
1604cpp_quote("#endif")
1605
1606cpp_quote("")
1607cpp_quote("#define IShellLink __MINGW_NAME_AW(IShellLink)")
1608
1609cpp_quote("")
1610typedef [v1_enum] enum SLR_FLAGS {
1611 SLR_NO_UI = 0x0001,
1612 SLR_ANY_MATCH = 0x0002,
1613 SLR_UPDATE = 0x0004,
1614 SLR_NOUPDATE = 0x0008,
1615 SLR_NOSEARCH = 0x0010,
1616 SLR_NOTRACK = 0x0020,
1617 SLR_NOLINKINFO = 0x0040,
1618 SLR_INVOKE_MSI = 0x0080,
1619 SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
1620 SLR_OFFER_DELETE_WITHOUT_FILE = 0x0200,
1621 SLR_KNOWNFOLDER = 0x0400,
1622 SLR_MACHINE_IN_LOCAL_TARGET = 0x0800,
1623 SLR_UPDATE_MACHINE_AND_SID = 0x1000
1624} SLR_FLAGS;
1625cpp_quote("")
1626cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)")
1627
1628cpp_quote("")
1629typedef [v1_enum] enum SLGP_FLAGS {
1630 SLGP_SHORTPATH = 0x0001,
1631 SLGP_UNCPRIORITY = 0x0002,
1632 SLGP_RAWPATH = 0x0004,
1633 SLGP_RELATIVEPRIORITY = 0x0008
1634} SLGP_FLAGS;
1635cpp_quote("")
1636cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)")
1637
1638cpp_quote("")
1639[object, uuid (000214ee-0000-0000-C000-000000000046), pointer_default (unique)]
1640interface IShellLinkA : IUnknown {
1641 HRESULT GetPath ([out, string, size_is (cch)] LPSTR pszFile,[in] int cch,[in, out, unique] WIN32_FIND_DATAA *pfd,[in] DWORD fFlags);
1642 HRESULT GetIDList ([out] PIDLIST_ABSOLUTE *ppidl);
1643 HRESULT SetIDList ([in] PCIDLIST_ABSOLUTE pidl);
1644 HRESULT GetDescription ([out, string, size_is (cch)] LPSTR pszName,[in] int cch);
1645 HRESULT SetDescription ([in, string] LPCSTR pszName);
1646 HRESULT GetWorkingDirectory ([out, string, size_is (cch)] LPSTR pszDir,[in] int cch);
1647 HRESULT SetWorkingDirectory ([in, string] LPCSTR pszDir);
1648 HRESULT GetArguments ([out, string, size_is (cch)] LPSTR pszArgs,[in] int cch);
1649 HRESULT SetArguments ([in, string] LPCSTR pszArgs);
1650 HRESULT GetHotkey ([out] WORD *pwHotkey);
1651 HRESULT SetHotkey ([in] WORD wHotkey);
1652 HRESULT GetShowCmd ([out] int *piShowCmd);
1653 HRESULT SetShowCmd ([in] int iShowCmd);
1654 HRESULT GetIconLocation ([out, string, size_is (cch)] LPSTR pszIconPath,[in] int cch,[out] int *piIcon);
1655 HRESULT SetIconLocation ([in, string] LPCSTR pszIconPath,[in] int iIcon);
1656 HRESULT SetRelativePath ([in, string] LPCSTR pszPathRel,[in] DWORD dwReserved);
1657 HRESULT Resolve ([in, unique] HWND hwnd,[in] DWORD fFlags);
1658 HRESULT SetPath ([in, string] LPCSTR pszFile);
1659}
1660
1661cpp_quote("")
1662[object, uuid (000214f9-0000-0000-C000-000000000046), pointer_default (unique)]
1663interface IShellLinkW : IUnknown {
1664 HRESULT GetPath ([out, string, size_is (cch)] LPWSTR pszFile,[in] int cch,[in, out, unique] WIN32_FIND_DATAW *pfd,[in] DWORD fFlags);
1665 HRESULT GetIDList ([out] PIDLIST_ABSOLUTE *ppidl);
1666 HRESULT SetIDList ([in, unique] PCIDLIST_ABSOLUTE pidl);
1667 HRESULT GetDescription ([out, string, size_is (cch)] LPWSTR pszName, int cch);
1668 HRESULT SetDescription ([in, string] LPCWSTR pszName);
1669 HRESULT GetWorkingDirectory ([out, string, size_is (cch)] LPWSTR pszDir, int cch);
1670 HRESULT SetWorkingDirectory ([in, string] LPCWSTR pszDir);
1671 HRESULT GetArguments ([out, string, size_is (cch)] LPWSTR pszArgs,[in] int cch);
1672 HRESULT SetArguments ([in, string] LPCWSTR pszArgs);
1673 HRESULT GetHotkey ([out] WORD *pwHotkey);
1674 HRESULT SetHotkey ([in] WORD wHotkey);
1675 HRESULT GetShowCmd ([out] int *piShowCmd);
1676 HRESULT SetShowCmd ([in] int iShowCmd);
1677 HRESULT GetIconLocation ([out, string, size_is (cch)] LPWSTR pszIconPath,[in] int cch,[out] int *piIcon);
1678 HRESULT SetIconLocation ([in, string] LPCWSTR pszIconPath,[in] int iIcon);
1679 HRESULT SetRelativePath ([in, string] LPCWSTR pszPathRel,[in] DWORD dwReserved);
1680 HRESULT Resolve ([in, unique] HWND hwnd,[in] DWORD fFlags);
1681 HRESULT SetPath ([in, string] LPCWSTR pszFile);
1682}
1683
1684cpp_quote("")
1685[object, uuid (45e2b4ae-b1c3-11d0-b92f-00a0c90312e1), pointer_default (unique)]
1686interface IShellLinkDataList : IUnknown {
1687 [local] HRESULT AddDataBlock ([in] void *pDataBlock);
1688 [local] HRESULT CopyDataBlock ([in] DWORD dwSig,[out] void **ppDataBlock);
1689 HRESULT RemoveDataBlock ([in] DWORD dwSig);
1690 HRESULT GetFlags ([out] DWORD *pdwFlags);
1691 HRESULT SetFlags ([in] DWORD dwFlags);
1692}
1693
1694cpp_quote("")
1695[object, uuid (5cd52983-9449-11d2-963a-00c04f79adf0), pointer_default (unique)]
1696interface IResolveShellLink : IUnknown {
1697 HRESULT ResolveShellLink ([in] IUnknown *punkLink,[in, unique] HWND hwnd,[in] DWORD fFlags);
1698}
1699
1700cpp_quote("")
1701[object, uuid (49ff1172-eadc-446d-9285-156453a6431c), pointer_default (unique)]
1702interface IActionProgressDialog : IUnknown {
1703 [v1_enum] enum _SPINITF {
1704 SPINITF_NORMAL = 0x00000000,
1705 SPINITF_MODAL = 0x00000001,
1706 SPINITF_NOMINIMIZE = 0x00000008,
1707 };
1708cpp_quote("")
1709 typedef DWORD SPINITF;
1710cpp_quote("")
1711 HRESULT Initialize ([in] SPINITF flags,[in, unique, string] LPCWSTR pszTitle,[in, unique, string] LPCWSTR pszCancel);
1712 HRESULT Stop ();
1713}
1714
1715cpp_quote("")
1716[object, uuid (C1FB73D0-EC3A-4ba2-B512-8cdb9187b6d1), pointer_default (unique)]
1717interface IHWEventHandler : IUnknown {
1718 HRESULT Initialize ([in, string] LPCWSTR pszParams);
1719 HRESULT HandleEvent ([in, string] LPCWSTR pszDeviceID,[in, string] LPCWSTR pszAltDeviceID,[in, string] LPCWSTR pszEventType);
1720 HRESULT HandleEventWithContent ([in, string] LPCWSTR pszDeviceID,[in, string] LPCWSTR pszAltDeviceID,[in, string] LPCWSTR pszEventType,[in, string] LPCWSTR pszContentTypeHandler,[in] IDataObject *pdataobject);
1721}
1722
1723cpp_quote("")
1724[object, uuid (CFCC809F-295d-42e8-9ffc-424b33c487e6), pointer_default (unique)]
1725interface IHWEventHandler2 : IHWEventHandler {
1726 HRESULT HandleEventWithHWND ([in, string] LPCWSTR pszDeviceID,[in, string] LPCWSTR pszAltDeviceID,[in, string] LPCWSTR pszEventType,[in] HWND hwndOwner);
1727}
1728
1729cpp_quote("")
1730cpp_quote("#define ARCONTENT_AUTORUNINF 0x00000002")
1731cpp_quote("#define ARCONTENT_AUDIOCD 0x00000004")
1732cpp_quote("#define ARCONTENT_DVDMOVIE 0x00000008")
1733cpp_quote("#define ARCONTENT_BLANKCD 0x00000010")
1734cpp_quote("#define ARCONTENT_BLANKDVD 0x00000020")
1735cpp_quote("#define ARCONTENT_UNKNOWNCONTENT 0x00000040")
1736cpp_quote("#define ARCONTENT_AUTOPLAYPIX 0x00000080")
1737cpp_quote("#define ARCONTENT_AUTOPLAYMUSIC 0x00000100")
1738cpp_quote("#define ARCONTENT_AUTOPLAYVIDEO 0x00000200")
1739
1740cpp_quote("")
1741cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1742cpp_quote("#define ARCONTENT_VCD 0x00000400")
1743cpp_quote("#define ARCONTENT_SVCD 0x00000800")
1744cpp_quote("#define ARCONTENT_DVDAUDIO 0x00001000")
1745cpp_quote("#define ARCONTENT_BLANKBD 0x00002000")
1746cpp_quote("#define ARCONTENT_BLURAY 0x00004000")
1747cpp_quote("#define ARCONTENT_CAMERASTORAGE 0x00008000")
1748cpp_quote("#define ARCONTENT_CUSTOMEVENT 0x00010000")
1749cpp_quote("#define ARCONTENT_NONE 0x00000000")
1750cpp_quote("#define ARCONTENT_MASK 0x0001FFFE")
1751cpp_quote("")
1752cpp_quote("#define ARCONTENT_PHASE_UNKNOWN 0x00000000")
1753cpp_quote("#define ARCONTENT_PHASE_PRESNIFF 0x10000000")
1754cpp_quote("#define ARCONTENT_PHASE_SNIFFING 0x20000000")
1755cpp_quote("#define ARCONTENT_PHASE_FINAL 0x40000000")
1756cpp_quote("#define ARCONTENT_PHASE_MASK 0x70000000")
1757cpp_quote("#endif")
1758
1759cpp_quote("")
1760[object, uuid (DDEFE873-6997-4e68-BE26-39b633adbe12), pointer_default (unique)]
1761interface IQueryCancelAutoPlay : IUnknown {
1762 HRESULT AllowAutoPlay ([in, string] LPCWSTR pszPath,[in] DWORD dwContentType,[in, string] LPCWSTR pszLabel,[in] DWORD dwSerialNumber);
1763}
1764
1765cpp_quote("")
1766cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1767[object, uuid (DC2601D7-059e-42fc-A09D-2afd21b6d5f7), pointer_default (unique)]
1768interface IDynamicHWHandler : IUnknown {
1769 HRESULT GetDynamicInfo ([in, string] LPCWSTR pszDeviceID,[in] DWORD dwContentType,[out, string] LPWSTR *ppszAction);
1770}
1771cpp_quote("#endif")
1772
1773cpp_quote("")
1774[object, uuid (49ff1173-eadc-446d-9285-156453a6431c), pointer_default (unique)]
1775interface IActionProgress : IUnknown {
1776 [v1_enum] enum _SPBEGINF {
1777 SPBEGINF_NORMAL = 0x00000000,
1778 SPBEGINF_AUTOTIME = 0x00000002,
1779 SPBEGINF_NOPROGRESSBAR = 0x00000010,
1780 SPBEGINF_MARQUEEPROGRESS = 0x00000020,
1781 SPBEGINF_NOCANCELBUTTON = 0x00000040
1782 };
1783cpp_quote("")
1784 typedef DWORD SPBEGINF;
1785cpp_quote("")
1786 typedef [v1_enum] enum _SPACTION {
1787 SPACTION_NONE = 0,
1788 SPACTION_MOVING,
1789 SPACTION_COPYING,
1790 SPACTION_RECYCLING,
1791 SPACTION_APPLYINGATTRIBS,
1792 SPACTION_DOWNLOADING,
1793 SPACTION_SEARCHING_INTERNET,
1794 SPACTION_CALCULATING,
1795 SPACTION_UPLOADING,
1796 SPACTION_SEARCHING_FILES,
1797 SPACTION_DELETING,
1798 SPACTION_RENAMING,
1799 SPACTION_FORMATTING,
1800 SPACTION_COPY_MOVING
1801 } SPACTION;
1802cpp_quote("")
1803 typedef [v1_enum] enum _SPTEXT {
1804 SPTEXT_ACTIONDESCRIPTION = 1,
1805 SPTEXT_ACTIONDETAIL
1806 } SPTEXT;
1807cpp_quote("")
1808 HRESULT Begin ([in] SPACTION action,[in] SPBEGINF flags);
1809 HRESULT UpdateProgress ([in] ULONGLONG ulCompleted,[in] ULONGLONG ulTotal);
1810 HRESULT UpdateText ([in] SPTEXT sptext,[in, string] LPCWSTR pszText,[in] BOOL fMayCompact);
1811 HRESULT QueryCancel ([out] BOOL *pfCancelled);
1812 HRESULT ResetCancel ();
1813 HRESULT End ();
1814}
1815
1816cpp_quote("")
1817[object, local, uuid (000214e8-0000-0000-c000-000000000046), pointer_default (unique)]
1818interface IShellExtInit : IUnknown {
1819 HRESULT Initialize ([in, unique] PCIDLIST_ABSOLUTE pidlFolder,[in, unique] IDataObject *pdtobj,[in, unique] HKEY hkeyProgID);
1820}
1821typedef IShellExtInit *LPSHELLEXTINIT;
1822
1823cpp_quote("")
1824[object, local, uuid (000214e9-0000-0000-c000-000000000046), pointer_default (unique)]
1825interface IShellPropSheetExt : IUnknown {
1826 [v1_enum] enum _EXPPS {
1827 EXPPS_FILETYPES = 0x00000001,
1828 };
1829cpp_quote("")
1830 typedef UINT EXPPS;
1831cpp_quote("")
1832 HRESULT AddPages ([in] LPFNSVADDPROPSHEETPAGE pfnAddPage,[in] LPARAM lParam);
1833 HRESULT ReplacePage ([in] EXPPS uPageID,[in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith,[in] LPARAM lParam);
1834}
1835typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
1836
1837cpp_quote("")
1838[object, uuid (000214fe-0000-0000-C000-000000000046), pointer_default (unique)]
1839interface IRemoteComputer : IUnknown {
1840 HRESULT Initialize ([in, string] LPCWSTR pszMachine,[in] BOOL bEnumerating);
1841}
1842
1843cpp_quote("")
1844[object, uuid (7307055c-b24a-486b-9f25-163e597a28a9), pointer_default (unique)]
1845interface IQueryContinue : IUnknown {
1846 HRESULT QueryContinue ();
1847}
1848
1849cpp_quote("")
1850[object, local, uuid (F279B885-0ae9-4b85-ac06-ddecf9408941), pointer_default (unique)]
1851interface IObjectWithCancelEvent : IUnknown {
1852 HRESULT GetCancelEvent ([out] HANDLE *phEvent);
1853}
1854
1855cpp_quote("")
1856[object, uuid (ba9711ba-5893-4787-a7e1-41277151550b), pointer_default (unique)]
1857interface IUserNotification : IUnknown {
1858 HRESULT SetBalloonInfo ([in, unique, string] LPCWSTR pszTitle,[in, unique, string] LPCWSTR pszText,[in] DWORD dwInfoFlags);
1859 HRESULT SetBalloonRetry ([in] DWORD dwShowTime,[in] DWORD dwInterval,[in] UINT cRetryCount);
1860 HRESULT SetIconInfo ([in, unique] HICON hIcon,[in, unique, string] LPCWSTR pszToolTip);
1861 HRESULT Show ([in, unique] IQueryContinue *pqc,[in] DWORD dwContinuePollInterval);
1862 HRESULT PlaySound ([in, string] LPCWSTR pszSoundName);
1863}
1864
1865cpp_quote("")
1866[object, uuid (19108294-0441-4aff-8013-FA0A730B0BEA)]
1867interface IUserNotificationCallback : IUnknown {
1868 HRESULT OnBalloonUserClick ([in] POINT *pt);
1869 HRESULT OnLeftClick ([in] POINT *pt);
1870 HRESULT OnContextMenu ([in] POINT *pt);
1871}
1872
1873cpp_quote("")
1874[object, uuid (215913cc-57eb-4fab-AB5A-E5FA7BEA2A6C), pointer_default (unique)]
1875interface IUserNotification2 : IUnknown {
1876 HRESULT SetBalloonInfo ([in, unique, string] LPCWSTR pszTitle,[in, unique, string] LPCWSTR pszText,[in] DWORD dwInfoFlags);
1877 HRESULT SetBalloonRetry ([in] DWORD dwShowTime,[in] DWORD dwInterval,[in] UINT cRetryCount);
1878 HRESULT SetIconInfo ([in, unique] HICON hIcon,[in, unique, string] LPCWSTR pszToolTip);
1879 HRESULT Show ([in, unique] IQueryContinue *pqc,[in] DWORD dwContinuePollInterval,[in, unique] IUserNotificationCallback *pSink);
1880 HRESULT PlaySound ([in, string] LPCWSTR pszSoundName);
1881}
1882
1883cpp_quote("")
1884[uuid (1df0d7f1-b267-4d28-8b10-12e23202a5c4)]
1885interface IItemNameLimits : IUnknown {
1886 HRESULT GetValidCharacters ([out, string] LPWSTR *ppwszValidChars,[out, string] LPWSTR *ppwszInvalidChars);
1887 HRESULT GetMaxLength ([in, string] LPCWSTR pszName,[out] int *piMaxNameLen);
1888}
1889
1890cpp_quote("")
1891cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
1892
1893interface ICondition;
1894
1895cpp_quote("")
1896[object, uuid (a0ffbc28-5482-4366-be27-3e81e78e06c2), pointer_default (unique)]
1897interface ISearchFolderItemFactory : IUnknown {
1898 HRESULT SetDisplayName ([in, string] LPCWSTR pszDisplayName);
1899 HRESULT SetFolderTypeID ([in] FOLDERTYPEID ftid);
1900 HRESULT SetFolderLogicalViewMode ([in] FOLDERLOGICALVIEWMODE flvm);
1901 HRESULT SetIconSize ([in] int iIconSize);
1902 HRESULT SetVisibleColumns ([in] UINT cVisibleColumns,[in, size_is (cVisibleColumns)] PROPERTYKEY *rgKey);
1903 HRESULT SetSortColumns ([in] UINT cSortColumns,[in, size_is (cSortColumns)] SORTCOLUMN *rgSortColumns);
1904 HRESULT SetGroupColumn ([in] REFPROPERTYKEY keyGroup);
1905 HRESULT SetStacks ([in] UINT cStackKeys,[in, size_is (cStackKeys)] PROPERTYKEY *rgStackKeys);
1906 HRESULT SetScope ([in] IShellItemArray *psiaScope);
1907 HRESULT SetCondition ([in] ICondition *pCondition);
1908 HRESULT GetShellItem ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
1909 HRESULT GetIDList ([out] PIDLIST_ABSOLUTE *ppidl);
1910}
1911cpp_quote("#endif")
1912
1913cpp_quote("")
1914cpp_quote("#define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY")
1915cpp_quote("#define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY")
1916cpp_quote("#define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY")
1917cpp_quote("")
1918cpp_quote("#define IEIFLAG_ASYNC 0x0001")
1919cpp_quote("#define IEIFLAG_CACHE 0x0002")
1920cpp_quote("#define IEIFLAG_ASPECT 0x0004")
1921cpp_quote("#define IEIFLAG_OFFLINE 0x0008")
1922cpp_quote("#define IEIFLAG_GLEAM 0x0010")
1923cpp_quote("#define IEIFLAG_SCREEN 0x0020")
1924cpp_quote("#define IEIFLAG_ORIGSIZE 0x0040")
1925cpp_quote("#define IEIFLAG_NOSTAMP 0x0080")
1926cpp_quote("#define IEIFLAG_NOBORDER 0x0100")
1927cpp_quote("#define IEIFLAG_QUALITY 0x0200")
1928cpp_quote("#define IEIFLAG_REFRESH 0x0400")
1929
1930cpp_quote("")
1931[object, uuid (bb2E617c-0920-11d1-9a0b-00c04fc2d6c1), pointer_default (unique)]
1932interface IExtractImage : IUnknown {
1933 HRESULT GetLocation ([out, string, size_is (cch)] LPWSTR pszPathBuffer,[in] DWORD cch,[in, out, unique] DWORD *pdwPriority,[in] const SIZE *prgSize,[in] DWORD dwRecClrDepth,[in, out] DWORD *pdwFlags);
1934 HRESULT Extract ([out] HBITMAP *phBmpThumbnail);
1935}
1936typedef IExtractImage *LPEXTRACTIMAGE;
1937
1938cpp_quote("")
1939[object, uuid (953bb1ee-93b4-11d1-98a3-00c04fb687da), pointer_default (unique)]
1940interface IExtractImage2 : IExtractImage {
1941 HRESULT GetDateStamp ([out] FILETIME *pDateStamp);
1942}
1943typedef IExtractImage2 *LPEXTRACTIMAGE2;
1944
1945cpp_quote("")
1946[object, uuid (e35b4b2e-00da-4bc1-9f13-38bc11f5d417), pointer_default (unique)]
1947interface IThumbnailHandlerFactory : IUnknown {
1948 HRESULT GetThumbnailHandler ([in] PCUITEMID_CHILD pidlChild,[in, unique] IBindCtx *pbc,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
1949}
1950
1951cpp_quote("")
1952[object, uuid (b3a4b685-b685-4805-99d9-5dead2873236), pointer_default (unique)]
1953interface IParentAndItem : IUnknown {
1954 HRESULT SetParentAndItem ([in, unique] PCIDLIST_ABSOLUTE pidlParent,[in, unique] IShellFolder *psf,[in] PCUITEMID_CHILD pidlChild);
1955 [local]
1956 HRESULT GetParentAndItem ([out] PIDLIST_ABSOLUTE *ppidlParent,[out] IShellFolder **ppsf,[out] PITEMID_CHILD *ppidlChild);
1957 [call_as (GetParentAndItem)]
1958 HRESULT RemoteGetParentAndItem ([out] PIDLIST_ABSOLUTE *ppidlParent,[out] IShellFolder **ppsf,[out] PITEMID_CHILD *ppidlChild);
1959}
1960
1961cpp_quote("")
1962[object, uuid (012dd920-7b26-11d0-8ca9-00a0c92dbfe8)]
1963interface IDockingWindow : IOleWindow {
1964 HRESULT ShowDW ([in] BOOL fShow);
1965 HRESULT CloseDW ([in] DWORD dwReserved);
1966 HRESULT ResizeBorderDW ([in, unique] LPCRECT prcBorder,[in, unique] IUnknown *punkToolbarSite,[in] BOOL fReserved);
1967}
1968
1969cpp_quote("")
1970cpp_quote("#define DBIM_MINSIZE 0x0001")
1971cpp_quote("#define DBIM_MAXSIZE 0x0002")
1972cpp_quote("#define DBIM_INTEGRAL 0x0004")
1973cpp_quote("#define DBIM_ACTUAL 0x0008")
1974cpp_quote("#define DBIM_TITLE 0x0010")
1975cpp_quote("#define DBIM_MODEFLAGS 0x0020")
1976cpp_quote("#define DBIM_BKCOLOR 0x0040")
1977
1978cpp_quote("")
1979cpp_quote("#include <pshpack8.h>")
1980typedef struct DESKBANDINFO {
1981 DWORD dwMask;
1982 POINTL ptMinSize;
1983 POINTL ptMaxSize;
1984 POINTL ptIntegral;
1985 POINTL ptActual;
1986 WCHAR wszTitle[256];
1987 DWORD dwModeFlags;
1988 COLORREF crBkgnd;
1989} DESKBANDINFO;
1990cpp_quote("#include <poppack.h>")
1991
1992cpp_quote("")
1993cpp_quote("#define DBIMF_NORMAL 0x0000")
1994cpp_quote("#define DBIMF_FIXED 0x0001")
1995cpp_quote("#define DBIMF_FIXEDBMP 0x0004")
1996cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008")
1997cpp_quote("#define DBIMF_UNDELETEABLE 0x0010")
1998cpp_quote("#define DBIMF_DEBOSSED 0x0020")
1999cpp_quote("#define DBIMF_BKCOLOR 0x0040")
2000cpp_quote("#define DBIMF_USECHEVRON 0x0080")
2001cpp_quote("#define DBIMF_BREAK 0x0100")
2002cpp_quote("#define DBIMF_ADDTOFRONT 0x0200")
2003cpp_quote("#define DBIMF_TOPALIGN 0x0400")
2004cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
2005cpp_quote("#define DBIMF_NOGRIPPER 0x0800")
2006cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000")
2007cpp_quote("#define DBIMF_NOMARGINS 0x2000")
2008cpp_quote("#endif")
2009cpp_quote("")
2010cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000")
2011cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001")
2012cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002")
2013cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004")
2014
2015cpp_quote("")
2016enum tagDESKBANDCID {
2017 DBID_BANDINFOCHANGED = 0,
2018 DBID_SHOWONLY = 1,
2019 DBID_MAXIMIZEBAND = 2,
2020 DBID_PUSHCHEVRON = 3,
2021 DBID_DELAYINIT = 4,
2022 DBID_FINISHINIT = 5,
2023 DBID_SETWINDOWTHEME = 6,
2024 DBID_PERMITAUTOHIDE = 7,
2025};
2026
2027cpp_quote("")
2028cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1")
2029cpp_quote("#define DBPC_SELECTLAST (DWORD)-2")
2030cpp_quote("")
2031cpp_quote("#define CGID_DeskBand IID_IDeskBand")
2032
2033cpp_quote("")
2034[object, uuid (EB0FE172-1a3a-11d0-89b3-00a0c90a90ac)]
2035interface IDeskBand : IDockingWindow {
2036 HRESULT GetBandInfo ([in] DWORD dwBandID,[in] DWORD dwViewMode,[in, out] DESKBANDINFO *pdbi);
2037}
2038
2039cpp_quote("")
2040cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
2041[object, uuid (77e425fc-CBF9-4307-BA6A-BB5727745661)]
2042interface IDeskBandInfo : IUnknown {
2043 HRESULT GetDefaultBandWidth ([in] DWORD dwBandID,[in] DWORD dwViewMode,[out] int *pnWidth);
2044}
2045
2046cpp_quote("")
2047[object, uuid (79d16de4-ABEE-4021-8d9d-9169b261d657)]
2048interface IDeskBand2 : IDeskBand {
2049 HRESULT CanRenderComposited ([out] BOOL *pfCanRenderComposited);
2050 HRESULT SetCompositionState ([in] BOOL fCompositionEnabled);
2051 HRESULT GetCompositionState ([out] BOOL *pfCompositionEnabled);
2052}
2053cpp_quote("#endif")
2054
2055cpp_quote("")
2056[object, uuid (56fdf342-FD6D-11d0-958a-006097c9a090)]
2057interface ITaskbarList : IUnknown {
2058 HRESULT HrInit ();
2059 HRESULT AddTab ([in] HWND hwnd);
2060 HRESULT DeleteTab ([in] HWND hwnd);
2061 HRESULT ActivateTab ([in] HWND hwnd);
2062 HRESULT SetActiveAlt ([in] HWND hwnd);
2063}
2064
2065cpp_quote("")
2066[object, uuid (602d4995-B13A-429b-A66E-1935e44f4317)]
2067interface ITaskbarList2 : ITaskbarList {
2068 HRESULT MarkFullscreenWindow ([in] HWND hwnd,[in] BOOL fFullscreen);
2069}
2070
2071cpp_quote("")
2072cpp_quote("#if 0")
2073typedef IUnknown *HIMAGELIST;
2074cpp_quote("#endif")
2075
2076cpp_quote("")
2077typedef [v1_enum] enum THUMBBUTTONFLAGS {
2078 THBF_ENABLED = 0x00000000,
2079 THBF_DISABLED = 0x00000001,
2080 THBF_DISMISSONCLICK = 0x00000002,
2081 THBF_NOBACKGROUND = 0x00000004,
2082 THBF_HIDDEN = 0x00000008,
2083 THBF_NONINTERACTIVE = 0x00000010,
2084} THUMBBUTTONFLAGS;
2085cpp_quote("")
2086cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
2087cpp_quote("")
2088
2089cpp_quote("")
2090typedef [v1_enum] enum THUMBBUTTONMASK {
2091 THB_BITMAP = 0x00000001,
2092 THB_ICON = 0x00000002,
2093 THB_TOOLTIP = 0x00000004,
2094 THB_FLAGS = 0x00000008,
2095} THUMBBUTTONMASK;
2096cpp_quote("")
2097cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
2098
2099cpp_quote("")
2100cpp_quote("#include <pshpack8.h>")
2101typedef struct THUMBBUTTON {
2102 THUMBBUTTONMASK dwMask;
2103 UINT iId;
2104 UINT iBitmap;
2105 HICON hIcon;
2106 WCHAR szTip[260];
2107 THUMBBUTTONFLAGS dwFlags;
2108} THUMBBUTTON,*LPTHUMBBUTTON;
2109cpp_quote("#include <poppack.h>")
2110
2111cpp_quote("")
2112cpp_quote("#define THBN_CLICKED 0x1800")
2113
2114cpp_quote("")
2115[object, uuid (ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf)]
2116interface ITaskbarList3 : ITaskbarList2 {
2117 typedef [v1_enum] enum TBPFLAG {
2118 TBPF_NOPROGRESS = 0x00000000,
2119 TBPF_INDETERMINATE = 0x00000001,
2120 TBPF_NORMAL = 0x00000002,
2121 TBPF_ERROR = 0x00000004,
2122 TBPF_PAUSED = 0x00000008
2123 } TBPFLAG;
2124cpp_quote("")
2125cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
2126
2127cpp_quote("")
2128 HRESULT SetProgressValue ([in] HWND hwnd,[in] ULONGLONG ullCompleted,[in] ULONGLONG ullTotal);
2129 HRESULT SetProgressState ([in] HWND hwnd,[in] TBPFLAG tbpFlags);
2130 HRESULT RegisterTab ([in] HWND hwndTab,[in] HWND hwndMDI);
2131 HRESULT UnregisterTab ([in] HWND hwndTab);
2132 HRESULT SetTabOrder ([in] HWND hwndTab,[in] HWND hwndInsertBefore);
2133 HRESULT SetTabActive ([in] HWND hwndTab,[in] HWND hwndMDI,[in] DWORD dwReserved);
2134 HRESULT ThumbBarAddButtons ([in] HWND hwnd,[in] UINT cButtons,[in, size_is (cButtons)] LPTHUMBBUTTON pButton);
2135 HRESULT ThumbBarUpdateButtons ([in] HWND hwnd,[in] UINT cButtons,[in, size_is (cButtons)] LPTHUMBBUTTON pButton);
2136 HRESULT ThumbBarSetImageList ([in] HWND hwnd,[in] HIMAGELIST himl);
2137 HRESULT SetOverlayIcon ([in] HWND hwnd,[in] HICON hIcon,[in, unique, string] LPCWSTR pszDescription);
2138 HRESULT SetThumbnailTooltip ([in] HWND hwnd,[in, unique, string] LPCWSTR pszTip);
2139 HRESULT SetThumbnailClip ([in] HWND hwnd,[in] RECT *prcClip);
2140}
2141
2142cpp_quote("")
2143[object, uuid (c43dc798-95d1-4bea-9030-bb99e2983a1a)]
2144interface ITaskbarList4 : ITaskbarList3 {
2145 typedef [v1_enum] enum STPFLAG {
2146 STPF_NONE = 0x00000000,
2147 STPF_USEAPPTHUMBNAILALWAYS = 0x00000001,
2148 STPF_USEAPPTHUMBNAILWHENACTIVE = 0x00000002,
2149 STPF_USEAPPPEEKALWAYS = 0x00000004,
2150 STPF_USEAPPPEEKWHENACTIVE = 0x00000008,
2151 } STPFLAG;
2152cpp_quote("")
2153cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
2154cpp_quote("")
2155 HRESULT SetTabProperties ([in] HWND hwndTab,[in] STPFLAG stpFlags);
2156}
2157
2158cpp_quote("")
2159[object, uuid (4cd19ada-25a5-4a32-B3B7-347bee5be36b)]
2160interface IStartMenuPinnedList : IUnknown {
2161 HRESULT RemoveFromList ([in] IShellItem *pitem);
2162}
2163
2164cpp_quote("")
2165[object, uuid (3d73a659-e5d0-4d42-afc0-5121ba425c8d), pointer_default (unique)]
2166interface ICDBurn : IUnknown {
2167 HRESULT GetRecorderDriveLetter ([out, string, size_is (cch)] LPWSTR pszDrive,[in] UINT cch);
2168 HRESULT Burn ([in] HWND hwnd);
2169 HRESULT HasRecordableDrive ([out] BOOL *pfHasRecorder);
2170}
2171
2172cpp_quote("")
2173cpp_quote("#define IDD_WIZEXTN_FIRST 0x5000")
2174cpp_quote("#define IDD_WIZEXTN_LAST 0x5100")
2175
2176cpp_quote("")
2177[local, uuid (88960f5b-422f-4e7b-8013-73415381c3c3)]
2178interface IWizardSite : IUnknown {
2179 HRESULT GetPreviousPage ([out] HPROPSHEETPAGE *phpage);
2180 HRESULT GetNextPage ([out] HPROPSHEETPAGE *phpage);
2181 HRESULT GetCancelledPage ([out] HPROPSHEETPAGE *phpage);
2182}
2183
2184cpp_quote("")
2185cpp_quote("#define SID_WizardSite IID_IWizardSite")
2186
2187cpp_quote("")
2188[local, uuid (c02ea696-86cc-491e-9b23-74394a0444a8)]
2189interface IWizardExtension : IUnknown {
2190 HRESULT AddPages ([out, size_is (cPages)] HPROPSHEETPAGE *aPages,[in] UINT cPages,[out] UINT *pnPagesAdded);
2191 HRESULT GetFirstPage ([out] HPROPSHEETPAGE *phpage);
2192 HRESULT GetLastPage ([out] HPROPSHEETPAGE *phpage);
2193}
2194
2195cpp_quote("")
2196[local, uuid (0e6b3f66-98d1-48c0-a222-fbde74e2fbc5), pointer_default (unique)]
2197interface IWebWizardExtension : IWizardExtension {
2198 HRESULT SetInitialURL ([in, string] LPCWSTR pszURL);
2199 HRESULT SetErrorURL ([in, string] LPCWSTR pszErrorURL);
2200}
2201
2202cpp_quote("")
2203cpp_quote("#define SID_WebWizardHost IID_IWebWizardExtension")
2204cpp_quote("")
2205cpp_quote("#define SHPWHF_NORECOMPRESS 0x00000001")
2206cpp_quote("#define SHPWHF_NONETPLACECREATE 0x00000002")
2207cpp_quote("#define SHPWHF_NOFILESELECTOR 0x00000004")
2208cpp_quote("#define SHPWHF_USEMRU 0x00000008")
2209cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
2210cpp_quote("#define SHPWHF_ANYLOCATION 0x00000100")
2211cpp_quote("#endif")
2212cpp_quote("#define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000")
2213
2214cpp_quote("")
2215interface IXMLDOMDocument;
2216
2217cpp_quote("")
2218[local, uuid (aa9198bb-ccec-472d-beed-19a4f6733f7a), pointer_default (unique)]
2219interface IPublishingWizard : IWizardExtension {
2220 HRESULT Initialize ([in, unique] IDataObject *pdo,[in] DWORD dwOptions,[in, string] LPCWSTR pszServiceScope);
2221 HRESULT GetTransferManifest ([out] HRESULT *phrFromTransfer,[out] IXMLDOMDocument **pdocManifest);
2222}
2223
2224cpp_quote("")
2225[local, uuid (1ea58f02-d55a-411d-b09e-9e65ac21605b)]
2226interface IFolderViewHost : IUnknown {
2227 HRESULT Initialize ([in] HWND hwndParent,[in] IDataObject *pdo,[in] RECT *prc);
2228}
2229
2230cpp_quote("")
2231cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
2232[object, uuid (361bbdc7-e6ee-4e13-be58-58e2240c810f)]
2233interface IExplorerBrowserEvents : IUnknown {
2234 HRESULT OnNavigationPending ([in] PCIDLIST_ABSOLUTE pidlFolder);
2235 HRESULT OnViewCreated ([in] IShellView *psv);
2236 HRESULT OnNavigationComplete ([in] PCIDLIST_ABSOLUTE pidlFolder);
2237 HRESULT OnNavigationFailed ([in] PCIDLIST_ABSOLUTE pidlFolder);
2238}
2239
2240cpp_quote("")
2241typedef [v1_enum] enum EXPLORER_BROWSER_OPTIONS {
2242 EBO_NONE = 0x00000000,
2243 EBO_NAVIGATEONCE = 0x00000001,
2244 EBO_SHOWFRAMES = 0x00000002,
2245 EBO_ALWAYSNAVIGATE = 0x00000004,
2246 EBO_NOTRAVELLOG = 0x00000008,
2247 EBO_NOWRAPPERWINDOW = 0x00000010,
2248 EBO_HTMLSHAREPOINTVIEW = 0x00000020,
2249 EBO_NOBORDER = 0x00000040,
2250 EBO_NOPERSISTVIEWSTATE = 0x00000080,
2251} EXPLORER_BROWSER_OPTIONS;
2252
2253cpp_quote("")
2254cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)")
2255
2256cpp_quote("")
2257typedef [v1_enum] enum EXPLORER_BROWSER_FILL_FLAGS {
2258 EBF_NONE = 0x0000000,
2259 EBF_SELECTFROMDATAOBJECT = 0x0000100,
2260 EBF_NODROPTARGET = 0x0000200
2261} EXPLORER_BROWSER_FILL_FLAGS;
2262
2263cpp_quote("")
2264cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)")
2265
2266cpp_quote("")
2267[object, uuid (dfd3b6b5-c10c-4be9-85f6-a66969f402f6)]
2268interface IExplorerBrowser : IUnknown {
2269 [local] HRESULT Initialize ([in] HWND hwndParent,[in] const RECT *prc,[in, unique] const FOLDERSETTINGS *pfs);
2270 HRESULT Destroy ();
2271 [local] HRESULT SetRect ([in, out, unique] HDWP *phdwp,[in] RECT rcBrowser);
2272 HRESULT SetPropertyBag ([in, string] LPCWSTR pszPropertyBag);
2273 HRESULT SetEmptyText ([in, string] LPCWSTR pszEmptyText);
2274 HRESULT SetFolderSettings ([in] const FOLDERSETTINGS *pfs);
2275 HRESULT Advise ([in] IExplorerBrowserEvents *psbe,[out] DWORD *pdwCookie);
2276 HRESULT Unadvise ([in] DWORD dwCookie);
2277 HRESULT SetOptions ([in] EXPLORER_BROWSER_OPTIONS dwFlag);
2278 HRESULT GetOptions ([out] EXPLORER_BROWSER_OPTIONS *pdwFlag);
2279 HRESULT BrowseToIDList ([in] PCUIDLIST_RELATIVE pidl,[in] UINT uFlags);
2280 HRESULT BrowseToObject ([in] IUnknown *punk,[in] UINT uFlags);
2281 HRESULT FillFromObject ([in, unique] IUnknown *punk,[in] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
2282 HRESULT RemoveAll ();
2283 HRESULT GetCurrentView ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
2284}
2285
2286cpp_quote("")
2287[object, uuid (95a391c5-9ed4-4c28-8401-AB9E06719E11)]
2288interface IAccessibleObject : IUnknown {
2289 HRESULT SetAccessibleName ([in, string] LPCWSTR pszName);
2290}
2291cpp_quote("#endif")
2292
2293cpp_quote("")
2294[object, uuid (96e5ae6d-6ae1-4b1c-900c-C6480EAA8828), pointer_default (unique)]
2295interface IResultsFolder : IUnknown {
2296 HRESULT AddItem ([in] IShellItem *psi);
2297 [local] HRESULT AddIDList ([in] PCIDLIST_ABSOLUTE pidl,[out] PITEMID_CHILD *ppidlAdded);
2298 [call_as (AddIDList)] HRESULT RemoteAddIDList ([in] PCIDLIST_ABSOLUTE pidl,[out] PITEMID_CHILD *ppidlAdded);
2299 HRESULT RemoveItem ([in] IShellItem *psi);
2300 HRESULT RemoveIDList ([in] PCIDLIST_ABSOLUTE pidl);
2301 HRESULT RemoveAll ();
2302}
2303
2304cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
2305[object, uuid (2c1c7e2e-2d0e-4059-831e-1e6f82335c2e), pointer_default (unique)]
2306interface IEnumObjects : IUnknown {
2307 [local] HRESULT Next ([in] ULONG celt,[in] REFIID riid,[out, size_is (celt), length_is (*pceltFetched), iid_is (riid)] void **rgelt,[out] ULONG *pceltFetched);
2308 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[in] REFIID riid,[out, size_is (celt), length_is (*pceltFetched), iid_is (riid)] void **rgelt,[out] ULONG *pceltFetched);
2309 HRESULT Skip ([in] ULONG celt);
2310 HRESULT Reset ();
2311 HRESULT Clone ([out] IEnumObjects **ppenum);
2312}
2313
2314cpp_quote("")
2315[v1_enum] enum _OPPROGDLGF {
2316 OPPROGDLG_DEFAULT = 0x00000000,
2317 OPPROGDLG_ENABLEPAUSE = 0x00000080,
2318 OPPROGDLG_ALLOWUNDO = 0x00000100,
2319 OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x00000200,
2320 OPPROGDLG_DONTDISPLAYDESTPATH = 0x00000400,
2321 OPPROGDLG_NOMULTIDAYESTIMATES = 0x00000800,
2322 OPPROGDLG_DONTDISPLAYLOCATIONS = 0x00001000,
2323};
2324
2325cpp_quote("")
2326typedef DWORD OPPROGDLGF;
2327
2328cpp_quote("")
2329[object, uuid (0c9fb851-E5C9-43eb-A370-F0677B13874C), pointer_default (unique)]
2330interface IOperationsProgressDialog : IUnknown {
2331 [v1_enum] enum _PDMODE {
2332 PDM_DEFAULT = 0x00000000,
2333 PDM_RUN = 0x00000001,
2334 PDM_PREFLIGHT = 0x00000002,
2335 PDM_UNDOING = 0x00000004,
2336 PDM_ERRORSBLOCKING = 0x00000008,
2337 PDM_INDETERMINATE = 0x00000010,
2338 };
2339cpp_quote("")
2340 typedef DWORD PDMODE;
2341cpp_quote("")
2342 typedef [v1_enum] enum PDOPSTATUS {
2343 PDOPS_RUNNING = 1,
2344 PDOPS_PAUSED = 2,
2345 PDOPS_CANCELLED = 3,
2346 PDOPS_STOPPED = 4,
2347 PDOPS_ERRORS = 5,
2348 } PDOPSTATUS;
2349cpp_quote("")
2350 HRESULT StartProgressDialog ([in, unique] HWND hwndOwner,[in] OPPROGDLGF flags);
2351 HRESULT StopProgressDialog ();
2352 HRESULT SetOperation ([in] SPACTION action);
2353 HRESULT SetMode ([in] PDMODE mode);
2354 HRESULT UpdateProgress ([in] ULONGLONG ullPointsCurrent,[in] ULONGLONG ullPointsTotal,[in] ULONGLONG ullSizeCurrent,[in] ULONGLONG ullSizeTotal,[in] ULONGLONG ullItemsCurrent,[in] ULONGLONG ullItemsTotal);
2355 HRESULT UpdateLocations ([in, unique] IShellItem *psiSource,[in, unique] IShellItem *psiTarget,[in, unique] IShellItem *psiItem);
2356 HRESULT ResetTimer ();
2357 HRESULT PauseTimer ();
2358 HRESULT ResumeTimer ();
2359 HRESULT GetMilliseconds ([out] ULONGLONG *pullElapsed,[out] ULONGLONG *pullRemaining);
2360 HRESULT GetOperationStatus ([out] PDOPSTATUS *popstatus);
2361}
2362
2363cpp_quote("")
2364[object, local, uuid (f5b0bf81-8cb5-4b1b-9449-1a159e0c733c), pointer_default (unique)]
2365interface IIOCancelInformation : IUnknown {
2366 HRESULT SetCancelInformation ([in] DWORD dwThreadID,[in] UINT uMsgCancel);
2367 HRESULT GetCancelInformation ([out] DWORD *pdwThreadID,[out] UINT *puMsgCancel);
2368}
2369
2370cpp_quote("")
2371cpp_quote("#define FOFX_NOSKIPJUNCTIONS 0x00010000")
2372cpp_quote("#define FOFX_PREFERHARDLINK 0x00020000")
2373cpp_quote("#define FOFX_SHOWELEVATIONPROMPT 0x00040000")
2374cpp_quote("#define FOFX_RECYCLEONDELETE 0x00080000")
2375cpp_quote("#define FOFX_EARLYFAILURE 0x00100000")
2376cpp_quote("#define FOFX_PRESERVEFILEEXTENSIONS 0x00200000")
2377cpp_quote("#define FOFX_KEEPNEWERFILE 0x00400000")
2378cpp_quote("#define FOFX_NOCOPYHOOKS 0x00800000")
2379cpp_quote("#define FOFX_NOMINIMIZEBOX 0x01000000")
2380cpp_quote("#define FOFX_MOVEACLSACROSSVOLUMES 0x02000000")
2381cpp_quote("#define FOFX_DONTDISPLAYSOURCEPATH 0x04000000")
2382cpp_quote("#define FOFX_DONTDISPLAYDESTPATH 0x08000000")
2383cpp_quote("#define FOFX_REQUIREELEVATION 0x10000000")
2384cpp_quote("#define FOFX_ADDUNDORECORD 0x20000000")
2385cpp_quote("#define FOFX_COPYASDOWNLOAD 0x40000000")
2386cpp_quote("#define FOFX_DONTDISPLAYLOCATIONS 0x80000000")
2387
2388cpp_quote("")
2389[object, uuid (947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8), pointer_default (unique)]
2390interface IFileOperation : IUnknown {
2391 HRESULT Advise ([in] IFileOperationProgressSink *pfops,[out] DWORD *pdwCookie);
2392 HRESULT Unadvise ([in] DWORD dwCookie);
2393 HRESULT SetOperationFlags ([in] DWORD dwOperationFlags);
2394 HRESULT SetProgressMessage ([in, string] LPCWSTR pszMessage);
2395 HRESULT SetProgressDialog ([in] IOperationsProgressDialog *popd);
2396 HRESULT SetProperties ([in] IPropertyChangeArray *pproparray);
2397 HRESULT SetOwnerWindow ([in] HWND hwndOwner);
2398 HRESULT ApplyPropertiesToItem ([in] IShellItem *psiItem);
2399 HRESULT ApplyPropertiesToItems ([in] IUnknown *punkItems);
2400 HRESULT RenameItem ([in] IShellItem *psiItem,[in, string] LPCWSTR pszNewName,[in, unique] IFileOperationProgressSink *pfopsItem);
2401 HRESULT RenameItems ([in] IUnknown *pUnkItems,[in, string] LPCWSTR pszNewName);
2402 HRESULT MoveItem ([in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszNewName,[in, unique] IFileOperationProgressSink *pfopsItem);
2403 HRESULT MoveItems ([in] IUnknown *punkItems,[in] IShellItem *psiDestinationFolder);
2404 HRESULT CopyItem ([in] IShellItem *psiItem,[in] IShellItem *psiDestinationFolder,[in, unique, string] LPCWSTR pszCopyName,[in, unique] IFileOperationProgressSink *pfopsItem);
2405 HRESULT CopyItems ([in] IUnknown *punkItems,[in] IShellItem *psiDestinationFolder);
2406 HRESULT DeleteItem ([in] IShellItem *psiItem,[in, unique] IFileOperationProgressSink *pfopsItem);
2407 HRESULT DeleteItems ([in] IUnknown *punkItems);
2408 HRESULT NewItem ([in] IShellItem *psiDestinationFolder,[in] DWORD dwFileAttributes,[in, string] LPCWSTR pszName,[in, unique, string] LPCWSTR pszTemplateName,[in, unique] IFileOperationProgressSink *pfopsItem);
2409 HRESULT PerformOperations ();
2410 HRESULT GetAnyOperationsAborted ([out] BOOL *pfAnyOperationsAborted);
2411}
2412
2413cpp_quote("")
2414[object, uuid (a6087428-3be3-4d73-b308-7c04a540bf1a), pointer_default (unique)]
2415interface IObjectProvider : IUnknown {
2416 HRESULT QueryObject ([in] REFGUID guidObject,[in] REFIID riid,[out, iid_is (riid)] void **ppvOut);
2417}
2418cpp_quote("#endif")
2419
2420cpp_quote("")
2421[uuid (d92995f8-cf5e-4a76-bf59-ead39ea2b97e)]
2422interface INamespaceWalkCB : IUnknown {
2423 HRESULT FoundItem ([in] IShellFolder *psf,[in] PCUITEMID_CHILD pidl);
2424 HRESULT EnterFolder ([in] IShellFolder *psf,[in] PCUITEMID_CHILD pidl);
2425 HRESULT LeaveFolder ([in] IShellFolder *psf,[in] PCUITEMID_CHILD pidl);
2426 HRESULT InitializeProgressDialog ([out, string] LPWSTR *ppszTitle,[out, string] LPWSTR *ppszCancel);
2427}
2428
2429cpp_quote("")
2430cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
2431[uuid (7ac7492b-c38e-438a-87db-68737844ff70)]
2432interface INamespaceWalkCB2 : INamespaceWalkCB {
2433 HRESULT WalkComplete ([in] HRESULT hr);
2434}
2435cpp_quote("#endif")
2436
2437cpp_quote("")
2438[uuid (57ced8a7-3f4a-432c-9350-30f24483f74f)]
2439interface INamespaceWalk : IUnknown {
2440 typedef [v1_enum] enum NAMESPACEWALKFLAG {
2441 NSWF_DEFAULT = 0x00000000,
2442 NSWF_NONE_IMPLIES_ALL = 0x00000001,
2443 NSWF_ONE_IMPLIES_ALL = 0x00000002,
2444 NSWF_DONT_TRAVERSE_LINKS = 0x00000004,
2445 NSWF_DONT_ACCUMULATE_RESULT = 0x00000008,
2446 NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x00000010,
2447 NSWF_FILESYSTEM_ONLY = 0x00000020,
2448 NSWF_SHOW_PROGRESS = 0x00000040,
2449 NSWF_FLAG_VIEWORDER = 0x00000080,
2450 NSWF_IGNORE_AUTOPLAY_HIDA = 0x00000100,
2451 NSWF_ASYNC = 0x00000200,
2452 NSWF_DONT_RESOLVE_LINKS = 0x00000400,
2453 NSWF_ACCUMULATE_FOLDERS = 0x00000800,
2454 NSWF_DONT_SORT = 0x00001000,
2455 NSWF_USE_TRANSFER_MEDIUM = 0x00002000,
2456 NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x00004000,
2457 NSWF_ANY_IMPLIES_ALL = 0x00008000,
2458 } NAMESPACEWALKFLAG;
2459
2460cpp_quote("")
2461cpp_quote("#define NSWF_ENUMERATE_BEST_EFFORT 0x00010000")
2462cpp_quote("#define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000")
2463cpp_quote("")
2464cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)")
2465cpp_quote("")
2466 HRESULT Walk ([in] IUnknown *punkToWalk,[in] DWORD dwFlags,[in] int cDepth,[in, unique] INamespaceWalkCB *pnswcb);
2467 HRESULT GetIDArrayResult ([out] UINT *pcItems,[out, size_is (,*pcItems)] PIDLIST_ABSOLUTE **prgpidl);
2468}
2469
2470cpp_quote("")
2471cpp_quote(" __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {")
2472cpp_quote(" UINT i;")
2473cpp_quote(" for (i = 0; i < cItems; i++) {")
2474cpp_quote(" CoTaskMemFree(ppidls[i]);")
2475cpp_quote(" }")
2476cpp_quote(" CoTaskMemFree(ppidls);")
2477cpp_quote(" }")
2478cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)")
2479cpp_quote(" __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {")
2480cpp_quote(" UINT i;")
2481cpp_quote(" for (i = 0; i < cItems; i++)")
2482cpp_quote(" CoTaskMemFree(ppidls[i]);")
2483cpp_quote(" CoTaskMemFree(ppidls);")
2484cpp_quote(" }")
2485cpp_quote(" __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {")
2486cpp_quote(" UINT i;")
2487cpp_quote(" for (i = 0; i < cItems; i++)")
2488cpp_quote(" CoTaskMemFree(ppidls[i]);")
2489cpp_quote(" CoTaskMemFree(ppidls);")
2490cpp_quote(" }")
2491cpp_quote("#else")
2492cpp_quote("#define FreeIDListArrayFull FreeIDListArray")
2493cpp_quote("#define FreeIDListArrayChild FreeIDListArray")
2494cpp_quote("#endif")
2495
2496cpp_quote("")
2497cpp_quote("#define ACDD_VISIBLE 0x1")
2498
2499cpp_quote("")
2500[object, uuid (3cd141f4-3c6a-11d2-BCAA-00c04fd929db), pointer_default (unique)]
2501interface IAutoCompleteDropDown : IUnknown {
2502 HRESULT GetDropDownStatus ([out] DWORD *pdwFlags,[out, string] LPWSTR *ppwszString);
2503 HRESULT ResetEnumerator ();
2504}
2505
2506cpp_quote("")
2507cpp_quote("#include <pshpack8.h>")
2508typedef struct tagBANDSITEINFO {
2509 DWORD dwMask;
2510 DWORD dwState;
2511 DWORD dwStyle;
2512} BANDSITEINFO;
2513cpp_quote("#include <poppack.h>")
2514
2515enum tagBANDSITECID {
2516 BSID_BANDADDED,
2517 BSID_BANDREMOVED,
2518};
2519
2520cpp_quote("")
2521cpp_quote("#define BSIM_STATE 0x00000001")
2522cpp_quote("#define BSIM_STYLE 0x00000002")
2523cpp_quote("")
2524cpp_quote("#define BSSF_VISIBLE 0x00000001")
2525cpp_quote("#define BSSF_NOTITLE 0x00000002")
2526cpp_quote("#define BSSF_UNDELETEABLE 0x00001000")
2527cpp_quote("")
2528cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000")
2529cpp_quote("#define BSIS_NOGRIPPER 0x00000001")
2530cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002")
2531cpp_quote("#define BSIS_LEFTALIGN 0x00000004")
2532cpp_quote("#define BSIS_SINGLECLICK 0x00000008")
2533cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010")
2534cpp_quote("#define BSIS_NODROPTARGET 0x00000020")
2535cpp_quote("#define BSIS_NOCAPTION 0x00000040")
2536cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080")
2537cpp_quote("#define BSIS_LOCKED 0x00000100")
2538cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
2539cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200")
2540cpp_quote("#define BSIS_FIXEDORDER 0x00000400")
2541cpp_quote("#endif")
2542
2543cpp_quote("")
2544cpp_quote("#define SID_SBandSite IID_IBandSite")
2545cpp_quote("#define CGID_BandSite IID_IBandSite")
2546
2547cpp_quote("")
2548[object, uuid (4cf504b0-DE96-11d0-8b3f-00a0c911e8e5)]
2549interface IBandSite : IUnknown {
2550 HRESULT AddBand ([in] IUnknown *punk);
2551 HRESULT EnumBands ([in] UINT uBand,[out] DWORD *pdwBandID);
2552 [local] HRESULT QueryBand ([in] DWORD dwBandID,[out] IDeskBand **ppstb,[out] DWORD *pdwState,[out, string, size_is (cchName)] LPWSTR pszName,[in] int cchName);
2553 [call_as (QueryBand)] HRESULT RemoteQueryBand ([in] DWORD dwBandID,[out] IDeskBand **ppstb,[out] DWORD *pdwState,[out, string, size_is (cchName)] LPWSTR pszName,[in] int cchName);
2554 HRESULT SetBandState ([in] DWORD dwBandID,[in] DWORD dwMask,[in] DWORD dwState);
2555 HRESULT RemoveBand ([in] DWORD dwBandID);
2556 HRESULT GetBandObject ([in] DWORD dwBandID,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
2557 HRESULT SetBandSiteInfo ([in] const BANDSITEINFO *pbsinfo);
2558 HRESULT GetBandSiteInfo ([in, out] BANDSITEINFO *pbsinfo);
2559}
2560
2561cpp_quote("")
2562[object, uuid (b4db1657-70d7-485e-8e3e-6fcb5a5c1802), pointer_default (unique)]
2563interface IModalWindow : IUnknown {
2564 [local] HRESULT Show ([in, unique] HWND hwndOwner);
2565 [call_as (Show)] HRESULT RemoteShow ([in, unique] HWND hwndOwner);
2566}
2567
2568cpp_quote("")
2569cpp_quote("#define PROPSTR_EXTENSIONCOMPLETIONSTATE L\"ExtensionCompletionState\"")
2570
2571cpp_quote("")
2572enum tagCDBURNINGEXTENSIONRET {
2573 CDBE_RET_DEFAULT = 0x00000000,
2574 CDBE_RET_DONTRUNOTHEREXTS = 0x00000001,
2575 CDBE_RET_STOPWIZARD = 0x00000002
2576};
2577
2578cpp_quote("")
2579cpp_quote("#define SID_CDWizardHost IID_ICDBurnExt")
2580
2581cpp_quote("")
2582[v1_enum] enum _CDBE_ACTIONS {
2583 CDBE_TYPE_MUSIC = 0x00000001,
2584 CDBE_TYPE_DATA = 0x00000002,
2585 CDBE_TYPE_ALL = (int) 0xffffffff
2586};
2587
2588cpp_quote("")
2589typedef DWORD CDBE_ACTIONS;
2590
2591cpp_quote("")
2592[uuid (2271dcca-74fc-4414-8fb7-c56b05ace2d7)]
2593interface ICDBurnExt : IUnknown {
2594 HRESULT GetSupportedActionTypes ([out] CDBE_ACTIONS *pdwActions);
2595}
2596
2597cpp_quote("")
2598[object, uuid (0811aebe-0b87-4c54-9e72-548cf649016b), pointer_default (unique)]
2599interface IContextMenuSite : IUnknown {
2600 HRESULT DoContextMenuPopup ([in] IUnknown *punkContextMenu,[in] UINT fFlags,[in] POINT pt);
2601}
2602
2603cpp_quote("")
2604[object, local, uuid (61e00d45-8fff-4e60-924e-6537b61612dd), pointer_default (unique)]
2605interface IEnumReadyCallback : IUnknown {
2606 HRESULT EnumReady ();
2607}
2608
2609cpp_quote("")
2610[uuid (8c8bf236-1aec-495f-9894-91d57c3c686f), local]
2611interface IEnumerableView : IUnknown {
2612 HRESULT SetEnumReadyCallback ([in] IEnumReadyCallback *percb);
2613 HRESULT CreateEnumIDListFromContents ([in] PCIDLIST_ABSOLUTE pidlFolder,[in] DWORD dwEnumFlags,[out] IEnumIDList **ppEnumIDList);
2614}
2615
2616cpp_quote("")
2617cpp_quote("#define SID_EnumerableView IID_IEnumerableView")
2618
2619cpp_quote("")
2620[object, local, uuid (D2B57227-3d23-4b95-93c0-492bd454c356)]
2621interface IInsertItem : IUnknown {
2622 HRESULT InsertItem ([in] PCUIDLIST_RELATIVE pidl);
2623}
2624
2625cpp_quote("")
2626[object, local, uuid (568804cd-CBD7-11d0-9816-00c04fd91972), pointer_default (unique)]
2627interface IMenuBand : IUnknown {
2628 enum tagMENUBANDHANDLERCID {
2629 MBHANDCID_PIDLSELECT = 0,
2630 };
2631cpp_quote("")
2632 HRESULT IsMenuMessage ([in] MSG *pmsg);
2633 HRESULT TranslateMenuMessage ([in, out] MSG *pmsg,[out] LRESULT *plRet);
2634}
2635
2636cpp_quote("")
2637[object, uuid (47c01f95-e185-412c-b5c5-4f27df965aea), pointer_default (unique)]
2638interface IFolderBandPriv : IUnknown {
2639 HRESULT SetCascade ([in] BOOL fCascade);
2640 HRESULT SetAccelerators ([in] BOOL fAccelerators);
2641 HRESULT SetNoIcons ([in] BOOL fNoIcons);
2642 HRESULT SetNoText ([in] BOOL fNoText);
2643}
2644
2645cpp_quote("")
2646[local, uuid (A9521922-0812-4d44-9ec3-7fd38c726f3d)]
2647interface IRegTreeItem : IUnknown {
2648 HRESULT GetCheckState ([out] BOOL *pbCheck);
2649 HRESULT SetCheckState ([in] BOOL bCheck);
2650}
2651
2652cpp_quote("")
2653[object, uuid (505f1513-6b3e-4892-a272-59f8889a4d3e), pointer_default (unique)]
2654interface IImageRecompress : IUnknown {
2655 HRESULT RecompressImage ([in] IShellItem *psi,[in] int cx,[in] int cy,[in] int iQuality,[in] IStorage *pstg,[out] IStream **ppstrmOut);
2656}
2657
2658cpp_quote("")
2659cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60")
2660[object, local, uuid (EB0FE173-1a3a-11d0-89b3-00a0c90a90ac), pointer_default (unique)]
2661interface IDeskBar : IOleWindow {
2662 HRESULT SetClient ([in, unique] IUnknown *punkClient);
2663 HRESULT GetClient ([out] IUnknown **ppunkClient);
2664 HRESULT OnPosRectChangeDB ([in] RECT *prc);
2665}
2666
2667cpp_quote("")
2668[object, local, uuid (D1E7AFEB-6a2e-11d0-8c78-00c04fd918b4), pointer_default (unique)]
2669interface IMenuPopup : IDeskBar {
2670 enum tagMENUPOPUPSELECT {
2671 MPOS_EXECUTE = 0,
2672 MPOS_FULLCANCEL,
2673 MPOS_CANCELLEVEL,
2674 MPOS_SELECTLEFT,
2675 MPOS_SELECTRIGHT,
2676 MPOS_CHILDTRACKING
2677 };
2678cpp_quote("")
2679 enum tagMENUPOPUPPOPUPFLAGS {
2680 MPPF_SETFOCUS = 0x00000001,
2681 MPPF_INITIALSELECT = 0x00000002,
2682 MPPF_NOANIMATE = 0x00000004,
2683 MPPF_KEYBOARD = 0x00000010,
2684 MPPF_REPOSITION = 0x00000020,
2685 MPPF_FORCEZORDER = 0x00000040,
2686 MPPF_FINALSELECT = 0x00000080,
2687 MPPF_TOP = 0x20000000,
2688 MPPF_LEFT = 0x40000000,
2689 MPPF_RIGHT = 0x60000000,
2690 MPPF_BOTTOM = (int) 0x80000000,
2691 MPPF_POS_MASK = (int) 0xe0000000,
2692 MPPF_ALIGN_LEFT = 0x02000000,
2693 MPPF_ALIGN_RIGHT = 0x04000000
2694 };
2695cpp_quote("")
2696 typedef int MP_POPUPFLAGS;
2697cpp_quote("")
2698 HRESULT Popup ([in] POINTL *ppt,[in, unique] RECTL *prcExclude,[in] MP_POPUPFLAGS dwFlags);
2699 HRESULT OnSelect ([in] DWORD dwSelectType);
2700 HRESULT SetSubMenu ([in] IMenuPopup *pmp,[in] BOOL fSet);
2701}
2702
2703cpp_quote("#endif")
2704
2705cpp_quote("")
2706cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
2707typedef [v1_enum] enum FILE_USAGE_TYPE {
2708 FUT_PLAYING,
2709 FUT_EDITING,
2710 FUT_GENERIC
2711} FILE_USAGE_TYPE;
2712
2713cpp_quote("")
2714cpp_quote("#define OF_CAP_CANSWITCHTO 0x0001")
2715cpp_quote("#define OF_CAP_CANCLOSE 0x0002")
2716
2717cpp_quote("")
2718[uuid (64a1cbf0-3a1a-4461-9158-376969693950), pointer_default (unique)]
2719interface IFileIsInUse : IUnknown {
2720 HRESULT GetAppName ([out, string] LPWSTR *ppszName);
2721 HRESULT GetUsage ([out] FILE_USAGE_TYPE *pfut);
2722 HRESULT GetCapabilities ([out] DWORD *pdwCapFlags);
2723 HRESULT GetSwitchToHWND ([out] HWND *phwnd);
2724 HRESULT CloseFile ();
2725}
2726
2727cpp_quote("")
2728interface IFileDialog;
2729
2730cpp_quote("")
2731typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE {
2732 FDEOR_DEFAULT = 0,
2733 FDEOR_ACCEPT = 1,
2734 FDEOR_REFUSE = 2
2735} FDE_OVERWRITE_RESPONSE;
2736
2737cpp_quote("")
2738typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE {
2739 FDESVR_DEFAULT = 0,
2740 FDESVR_ACCEPT = 1,
2741 FDESVR_REFUSE = 2
2742} FDE_SHAREVIOLATION_RESPONSE;
2743
2744cpp_quote("")
2745typedef [v1_enum] enum FDAP {
2746 FDAP_BOTTOM = 0,
2747 FDAP_TOP = 1
2748} FDAP;
2749
2750cpp_quote("")
2751[object, uuid (973510db-7d7f-452b-8975-74a85828d354), pointer_default (unique)]
2752interface IFileDialogEvents : IUnknown {
2753 HRESULT OnFileOk ([in] IFileDialog *pfd);
2754 HRESULT OnFolderChanging ([in] IFileDialog *pfd,[in] IShellItem *psiFolder);
2755 HRESULT OnFolderChange ([in] IFileDialog *pfd);
2756 HRESULT OnSelectionChange ([in] IFileDialog *pfd);
2757 HRESULT OnShareViolation ([in] IFileDialog *pfd,[in] IShellItem *psi,[out] FDE_SHAREVIOLATION_RESPONSE *pResponse);
2758 HRESULT OnTypeChange ([in] IFileDialog *pfd);
2759 HRESULT OnOverwrite ([in] IFileDialog *pfd,[in] IShellItem *psi,[out] FDE_OVERWRITE_RESPONSE *pResponse);
2760}
2761
2762cpp_quote("")
2763interface IShellItemFilter;
2764
2765cpp_quote("")
2766[object, uuid (42f85136-db7e-439c-85f1-e4075d135fc8), pointer_default (unique)]
2767interface IFileDialog : IModalWindow {
2768 [v1_enum] enum _FILEOPENDIALOGOPTIONS {
2769 FOS_OVERWRITEPROMPT = 0x00000002,
2770 FOS_STRICTFILETYPES = 0x00000004,
2771 FOS_NOCHANGEDIR = 0x00000008,
2772 FOS_PICKFOLDERS = 0x00000020,
2773 FOS_FORCEFILESYSTEM = 0x00000040,
2774 FOS_ALLNONSTORAGEITEMS = 0x00000080,
2775 FOS_NOVALIDATE = 0x00000100,
2776 FOS_ALLOWMULTISELECT = 0x00000200,
2777 FOS_PATHMUSTEXIST = 0x00000800,
2778 FOS_FILEMUSTEXIST = 0x00001000,
2779 FOS_CREATEPROMPT = 0x00002000,
2780 FOS_SHAREAWARE = 0x00004000,
2781 FOS_NOREADONLYRETURN = 0x00008000,
2782 FOS_NOTESTFILECREATE = 0x00010000,
2783 FOS_HIDEMRUPLACES = 0x00020000,
2784 FOS_HIDEPINNEDPLACES = 0x00040000,
2785 FOS_NODEREFERENCELINKS = 0x00100000,
2786 FOS_DONTADDTORECENT = 0x02000000,
2787 FOS_FORCESHOWHIDDEN = 0x10000000,
2788 FOS_DEFAULTNOMINIMODE = 0x20000000,
2789 FOS_FORCEPREVIEWPANEON = 0x40000000,
2790 FOS_SUPPORTSTREAMABLEITEMS = 0x80000000
2791 };
2792cpp_quote("")
2793 typedef DWORD FILEOPENDIALOGOPTIONS;
2794cpp_quote("")
2795 HRESULT SetFileTypes ([in] UINT cFileTypes,[in, size_is (cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec);
2796 HRESULT SetFileTypeIndex ([in] UINT iFileType);
2797 HRESULT GetFileTypeIndex ([out] UINT *piFileType);
2798 HRESULT Advise ([in] IFileDialogEvents *pfde,[out] DWORD *pdwCookie);
2799 HRESULT Unadvise ([in] DWORD dwCookie);
2800 HRESULT SetOptions ([in] FILEOPENDIALOGOPTIONS fos);
2801 HRESULT GetOptions ([out] FILEOPENDIALOGOPTIONS *pfos);
2802 HRESULT SetDefaultFolder ([in] IShellItem *psi);
2803 HRESULT SetFolder ([in] IShellItem *psi);
2804 HRESULT GetFolder ([out] IShellItem **ppsi);
2805 HRESULT GetCurrentSelection ([out] IShellItem **ppsi);
2806 HRESULT SetFileName ([in, string] LPCWSTR pszName);
2807 HRESULT GetFileName ([out, string] LPWSTR *pszName);
2808 HRESULT SetTitle ([in, string] LPCWSTR pszTitle);
2809 HRESULT SetOkButtonLabel ([in, string] LPCWSTR pszText);
2810 HRESULT SetFileNameLabel ([in, string] LPCWSTR pszLabel);
2811 HRESULT GetResult ([out] IShellItem **ppsi);
2812 HRESULT AddPlace ([in] IShellItem *psi,[in] FDAP fdap);
2813 HRESULT SetDefaultExtension ([in, string] LPCWSTR pszDefaultExtension);
2814 HRESULT Close ([in] HRESULT hr);
2815 HRESULT SetClientGuid ([in] REFGUID guid);
2816 HRESULT ClearClientData ();
2817 HRESULT SetFilter ([in] IShellItemFilter *pFilter);
2818}
2819
2820cpp_quote("")
2821[object, uuid (84bccd23-5fde-4cdb-aea4-af64b83d78ab), pointer_default (unique)]
2822interface IFileSaveDialog : IFileDialog {
2823 HRESULT SetSaveAsItem ([in] IShellItem *psi);
2824 HRESULT SetProperties ([in] IPropertyStore *pStore);
2825 HRESULT SetCollectedProperties ([in] IPropertyDescriptionList *pList,[in] BOOL fAppendDefault);
2826 HRESULT GetProperties ([out] IPropertyStore **ppStore);
2827 HRESULT ApplyProperties ([in] IShellItem *psi,[in] IPropertyStore *pStore,[in, unique] HWND hwnd,[in, unique] IFileOperationProgressSink *pSink);
2828}
2829
2830cpp_quote("")
2831[object, uuid (d57c7288-d4ad-4768-be02-9d969532d960), pointer_default (unique)]
2832interface IFileOpenDialog : IFileDialog {
2833 HRESULT GetResults ([out] IShellItemArray **ppenum);
2834 HRESULT GetSelectedItems ([out] IShellItemArray **ppsai);
2835}
2836
2837cpp_quote("")
2838typedef [v1_enum] enum CDCONTROLSTATEF {
2839 CDCS_INACTIVE = 0x00000000,
2840 CDCS_ENABLED = 0x00000001,
2841 CDCS_VISIBLE = 0x00000002,
2842 CDCS_ENABLEDVISIBLE = 0x00000003,
2843} CDCONTROLSTATEF;
2844
2845cpp_quote("")
2846cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")
2847
2848cpp_quote("")
2849[object, uuid (e6fdd21a-163f-4975-9c8c-a69f1ba37034), pointer_default (unique)]
2850interface IFileDialogCustomize : IUnknown {
2851 HRESULT EnableOpenDropDown ([in] DWORD dwIDCtl);
2852 HRESULT AddMenu ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszLabel);
2853 HRESULT AddPushButton ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszLabel);
2854 HRESULT AddComboBox ([in] DWORD dwIDCtl);
2855 HRESULT AddRadioButtonList ([in] DWORD dwIDCtl);
2856 HRESULT AddCheckButton ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszLabel,[in] BOOL bChecked);
2857 HRESULT AddEditBox ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszText);
2858 HRESULT AddSeparator ([in] DWORD dwIDCtl);
2859 HRESULT AddText ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszText);
2860 HRESULT SetControlLabel ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszLabel);
2861 HRESULT GetControlState ([in] DWORD dwIDCtl,[out] CDCONTROLSTATEF *pdwState);
2862 HRESULT SetControlState ([in] DWORD dwIDCtl,[in] CDCONTROLSTATEF dwState);
2863 HRESULT GetEditBoxText ([in] DWORD dwIDCtl,[out, string] WCHAR **ppszText);
2864 HRESULT SetEditBoxText ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszText);
2865 HRESULT GetCheckButtonState ([in] DWORD dwIDCtl,[out] BOOL *pbChecked);
2866 HRESULT SetCheckButtonState ([in] DWORD dwIDCtl,[in] BOOL bChecked);
2867 HRESULT AddControlItem ([in] DWORD dwIDCtl,[in] DWORD dwIDItem,[in] LPCWSTR pszLabel);
2868 HRESULT RemoveControlItem ([in] DWORD dwIDCtl,[in] DWORD dwIDItem);
2869 HRESULT RemoveAllControlItems ([in] DWORD dwIDCtl);
2870 HRESULT GetControlItemState ([in] DWORD dwIDCtl,[in] DWORD dwIDItem,[out] CDCONTROLSTATEF *pdwState);
2871 HRESULT SetControlItemState ([in] DWORD dwIDCtl,[in] DWORD dwIDItem,[in] CDCONTROLSTATEF dwState);
2872 HRESULT GetSelectedControlItem ([in] DWORD dwIDCtl,[out] DWORD *pdwIDItem);
2873 HRESULT SetSelectedControlItem ([in] DWORD dwIDCtl,[in] DWORD dwIDItem);
2874 HRESULT StartVisualGroup ([in] DWORD dwIDCtl,[in, string] LPCWSTR pszLabel);
2875 HRESULT EndVisualGroup ();
2876 HRESULT MakeProminent ([in] DWORD dwIDCtl);
2877 HRESULT SetControlItemText ([in] DWORD dwIDCtl,[in] DWORD dwIDItem,[in, string] LPCWSTR pszLabel);
2878}
2879
2880cpp_quote("")
2881[object, uuid (36116642-D713-4b97-9b83-7484a9d00433), pointer_default (unique)]
2882interface IFileDialogControlEvents : IUnknown {
2883 HRESULT OnItemSelected ([in] IFileDialogCustomize *pfdc,[in] DWORD dwIDCtl,[in] DWORD dwIDItem);
2884 HRESULT OnButtonClicked ([in] IFileDialogCustomize *pfdc,[in] DWORD dwIDCtl);
2885 HRESULT OnCheckButtonToggled ([in] IFileDialogCustomize *pfdc,[in] DWORD dwIDCtl,[in] BOOL bChecked);
2886 HRESULT OnControlActivating ([in] IFileDialogCustomize *pfdc,[in] DWORD dwIDCtl);
2887}
2888
2889cpp_quote("")
2890[object, uuid (61744fc7-85b5-4791-a9b0-272276309b13), pointer_default (unique)]
2891interface IFileDialog2 : IFileDialog {
2892 HRESULT SetCancelButtonLabel ([in] LPCWSTR pszLabel);
2893 HRESULT SetNavigationRoot ([in] IShellItem *psi);
2894}
2895
2896cpp_quote("")
2897typedef [v1_enum] enum ASSOCIATIONLEVEL {
2898 AL_MACHINE,
2899 AL_EFFECTIVE,
2900 AL_USER
2901} ASSOCIATIONLEVEL;
2902
2903cpp_quote("")
2904typedef [v1_enum] enum ASSOCIATIONTYPE {
2905 AT_FILEEXTENSION,
2906 AT_URLPROTOCOL,
2907 AT_STARTMENUCLIENT,
2908 AT_MIMETYPE
2909} ASSOCIATIONTYPE;
2910
2911cpp_quote("")
2912[object, uuid (4e530b0a-e611-4c77-a3ac-9031d022281b), pointer_default (unique)]
2913interface IApplicationAssociationRegistration : IUnknown {
2914 HRESULT QueryCurrentDefault ([in, string] LPCWSTR pszQuery,[in] ASSOCIATIONTYPE atQueryType,[in] ASSOCIATIONLEVEL alQueryLevel,[out, string] LPWSTR *ppszAssociation);
2915 HRESULT QueryAppIsDefault ([in, string] LPCWSTR pszQuery,[in] ASSOCIATIONTYPE atQueryType,[in] ASSOCIATIONLEVEL alQueryLevel,[in, string] LPCWSTR pszAppRegistryName,[out] BOOL *pfDefault);
2916 HRESULT QueryAppIsDefaultAll ([in] ASSOCIATIONLEVEL alQueryLevel,[in, string] LPCWSTR pszAppRegistryName,[out] BOOL *pfDefault);
2917 HRESULT SetAppAsDefault ([in, string] LPCWSTR pszAppRegistryName,[in, string] LPCWSTR pszSet,[in] ASSOCIATIONTYPE atSetType);
2918 HRESULT SetAppAsDefaultAll ([in, string] LPCWSTR pszAppRegistryName);
2919 HRESULT ClearUserAssociations ();
2920}
2921
2922cpp_quote("")
2923cpp_quote("SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);")
2924
2925cpp_quote("")
2926[object, uuid (1f76a169-f994-40ac-8fc8-0959e8874710), pointer_default (unique)]
2927interface IApplicationAssociationRegistrationUI : IUnknown {
2928 HRESULT LaunchAdvancedAssociationUI ([in, string] LPCWSTR pszAppRegistryName);
2929}
2930cpp_quote("#endif")
2931
2932cpp_quote("")
2933cpp_quote("#include <pshpack1.h>")
2934typedef struct DELEGATEITEMID {
2935 WORD cbSize;
2936 WORD wOuter;
2937 WORD cbInner;
2938 BYTE rgb[1];
2939} DELEGATEITEMID;
2940cpp_quote("#include <poppack.h>")
2941
2942cpp_quote("")
2943cpp_quote("typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;")
2944cpp_quote("typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;")
2945
2946cpp_quote("")
2947[object, local, uuid (ADD8BA80-002b-11d0-8f0f-00c04fd7d062), pointer_default (unique)]
2948interface IDelegateFolder : IUnknown {
2949 HRESULT SetItemAlloc ([in] IMalloc *pmalloc);
2950}
2951
2952cpp_quote("")
2953cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60")
2954[object, local, uuid (10df43c8-1dbe-11d3-8b34-006097df5bd4)]
2955interface IBrowserFrameOptions : IUnknown {
2956 typedef [unique] IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
2957cpp_quote("")
2958 [v1_enum] enum _BROWSERFRAMEOPTIONS {
2959 BFO_NONE = 0x00000000,
2960 BFO_BROWSER_PERSIST_SETTINGS = 0x00000001,
2961 BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x00000002,
2962 BFO_BOTH_OPTIONS = 0x00000004,
2963 BIF_PREFER_INTERNET_SHORTCUT = 0x00000008,
2964 BFO_BROWSE_NO_IN_NEW_PROCESS = 0x00000010,
2965 BFO_ENABLE_HYPERLINK_TRACKING = 0x00000020,
2966 BFO_USE_IE_OFFLINE_SUPPORT = 0x00000040,
2967 BFO_SUBSTITUE_INTERNET_START_PAGE = 0x00000080,
2968 BFO_USE_IE_LOGOBANDING = 0x00000100,
2969 BFO_ADD_IE_TOCAPTIONBAR = 0x00000200,
2970 BFO_USE_DIALUP_REF = 0x00000400,
2971 BFO_USE_IE_TOOLBAR = 0x00000800,
2972 BFO_NO_PARENT_FOLDER_SUPPORT = 0x00001000,
2973 BFO_NO_REOPEN_NEXT_RESTART = 0x00002000,
2974 BFO_GO_HOME_PAGE = 0x00004000,
2975 BFO_PREFER_IEPROCESS = 0x00008000,
2976 BFO_SHOW_NAVIGATION_CANCELLED = 0x00010000,
2977 BFO_USE_IE_STATUSBAR = 0x00020000,
2978 BFO_QUERY_ALL = (int) 0xffffffff
2979 };
2980cpp_quote("")
2981 typedef DWORD BROWSERFRAMEOPTIONS;
2982cpp_quote("")
2983 HRESULT GetFrameOptions ([in] BROWSERFRAMEOPTIONS dwMask,[out] BROWSERFRAMEOPTIONS *pdwOptions);
2984}
2985cpp_quote("#endif")
2986
2987cpp_quote("")
2988cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60SP2")
2989typedef [v1_enum] enum NWMF {
2990 NWMF_UNLOADING = 0x00000001,
2991 NWMF_USERINITED = 0x00000002,
2992 NWMF_FIRST = 0x00000004,
2993 NWMF_OVERRIDEKEY = 0x00000008,
2994 NWMF_SHOWHELP = 0x00000010,
2995 NWMF_HTMLDIALOG = 0x00000020,
2996 NWMF_FROMDIALOGCHILD = 0x00000040,
2997 NWMF_USERREQUESTED = 0x00000080,
2998 NWMF_USERALLOWED = 0x00000100,
2999 NWMF_FORCEWINDOW = 0x00010000,
3000 NWMF_FORCETAB = 0x00020000,
3001 NWMF_SUGGESTWINDOW = 0x00040000,
3002 NWMF_SUGGESTTAB = 0x00080000,
3003 NWMF_INACTIVETAB = 0x00100000
3004} NWMF;
3005
3006cpp_quote("")
3007cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NWMF)")
3008
3009cpp_quote("")
3010cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
3011
3012cpp_quote("")
3013[object, uuid (D2BC4C84-3f72-4a52-A604-7bcbf3982cbb), pointer_default (unique)]
3014interface INewWindowManager : IUnknown {
3015 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);
3016}
3017
3018cpp_quote("")
3019[object, local, uuid (73db1241-1e85-4581-8e4f-a81e1d0f8c57), pointer_default (unique)]
3020interface IAttachmentExecute : IUnknown {
3021 typedef [v1_enum] enum ATTACHMENT_PROMPT {
3022 ATTACHMENT_PROMPT_NONE = 0x0000,
3023 ATTACHMENT_PROMPT_SAVE = 0x0001,
3024 ATTACHMENT_PROMPT_EXEC = 0x0002,
3025 ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x0003
3026 } ATTACHMENT_PROMPT;
3027
3028cpp_quote("")
3029 typedef [v1_enum] enum ATTACHMENT_ACTION {
3030 ATTACHMENT_ACTION_CANCEL = 0x0000,
3031 ATTACHMENT_ACTION_SAVE = 0x0001,
3032 ATTACHMENT_ACTION_EXEC = 0x0002
3033 } ATTACHMENT_ACTION;
3034cpp_quote("")
3035 HRESULT SetClientTitle ([in, string] LPCWSTR pszTitle);
3036 HRESULT SetClientGuid ([in] REFGUID guid);
3037 HRESULT SetLocalPath ([in, string] LPCWSTR pszLocalPath);
3038 HRESULT SetFileName ([in, string] LPCWSTR pszFileName);
3039 HRESULT SetSource ([in, string] LPCWSTR pszSource);
3040 HRESULT SetReferrer ([in, string] LPCWSTR pszReferrer);
3041 HRESULT CheckPolicy ();
3042 HRESULT Prompt ([in] HWND hwnd,[in] ATTACHMENT_PROMPT prompt,[out] ATTACHMENT_ACTION *paction);
3043 HRESULT Save ();
3044 HRESULT Execute ([in] HWND hwnd,[in, string] LPCWSTR pszVerb,[out] HANDLE *phProcess);
3045 HRESULT SaveWithUI ([in] HWND hwnd);
3046 HRESULT ClearClientState ();
3047}
3048cpp_quote("#endif")
3049
3050cpp_quote("")
3051cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE60")
3052cpp_quote("")
3053cpp_quote("#include <pshpack8.h>")
3054typedef struct tagSMDATA {
3055 DWORD dwMask;
3056 DWORD dwFlags;
3057 HMENU hmenu;
3058 HWND hwnd;
3059 UINT uId;
3060 UINT uIdParent;
3061 UINT uIdAncestor;
3062 IUnknown *punk;
3063 PIDLIST_ABSOLUTE pidlFolder;
3064 PUITEMID_CHILD pidlItem;
3065 IShellFolder *psf;
3066 void *pvUserData;
3067} SMDATA,*LPSMDATA;
3068cpp_quote("")
3069cpp_quote("#define SMDM_SHELLFOLDER 0x00000001")
3070cpp_quote("#define SMDM_HMENU 0x00000002")
3071cpp_quote("#define SMDM_TOOLBAR 0x00000004")
3072
3073cpp_quote("")
3074typedef struct tagSMINFO {
3075 DWORD dwMask;
3076 DWORD dwType;
3077 DWORD dwFlags;
3078 int iIcon;
3079} SMINFO,*PSMINFO;
3080
3081cpp_quote("")
3082typedef struct SHCSCHANGENOTIFYSTRUCT {
3083 long lEvent;
3084 PCIDLIST_ABSOLUTE pidl1;
3085 PCIDLIST_ABSOLUTE pidl2;
3086} SMCSHCHANGENOTIFYSTRUCT,*PSMCSHCHANGENOTIFYSTRUCT;
3087cpp_quote("#include <poppack.h>")
3088
3089cpp_quote("")
3090enum tagSMINFOMASK {
3091 SMIM_TYPE = 0x00000001,
3092 SMIM_FLAGS = 0x00000002,
3093 SMIM_ICON = 0x00000004
3094};
3095
3096cpp_quote("")
3097enum tagSMINFOTYPE {
3098 SMIT_SEPARATOR = 0x00000001,
3099 SMIT_STRING = 0x00000002
3100};
3101
3102cpp_quote("")
3103enum tagSMINFOFLAGS {
3104 SMIF_ICON = 0x00000001,
3105 SMIF_ACCELERATOR = 0x00000002,
3106 SMIF_DROPTARGET = 0x00000004,
3107 SMIF_SUBMENU = 0x00000008,
3108 SMIF_CHECKED = 0x00000020,
3109 SMIF_DROPCASCADE = 0x00000040,
3110 SMIF_HIDDEN = 0x00000080,
3111 SMIF_DISABLED = 0x00000100,
3112 SMIF_TRACKPOPUP = 0x00000200,
3113 SMIF_DEMOTED = 0x00000400,
3114 SMIF_ALTSTATE = 0x00000800,
3115 SMIF_DRAGNDROP = 0x00001000,
3116 SMIF_NEW = 0x00002000
3117};
3118
3119cpp_quote("")
3120cpp_quote("#define SMC_INITMENU 0x00000001")
3121cpp_quote("#define SMC_CREATE 0x00000002")
3122cpp_quote("#define SMC_EXITMENU 0x00000003")
3123cpp_quote("#define SMC_GETINFO 0x00000005")
3124cpp_quote("#define SMC_GETSFINFO 0x00000006")
3125cpp_quote("#define SMC_GETOBJECT 0x00000007")
3126cpp_quote("#define SMC_GETSFOBJECT 0x00000008")
3127cpp_quote("#define SMC_SFEXEC 0x00000009")
3128cpp_quote("#define SMC_SFSELECTITEM 0x0000000A")
3129cpp_quote("#define SMC_REFRESH 0x00000010")
3130cpp_quote("#define SMC_DEMOTE 0x00000011")
3131cpp_quote("#define SMC_PROMOTE 0x00000012")
3132cpp_quote("#define SMC_DEFAULTICON 0x00000016")
3133cpp_quote("#define SMC_NEWITEM 0x00000017")
3134cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019")
3135cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A")
3136cpp_quote("#define SMC_SETSFOBJECT 0x0000002D")
3137cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E")
3138cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F")
3139cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030")
3140cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
3141cpp_quote("#define SMC_SFEXEC_MIDDLE 0x00000031")
3142cpp_quote("#define SMC_GETAUTOEXPANDSTATE 0x00000041")
3143cpp_quote("#define SMC_AUTOEXPANDCHANGE 0x00000042")
3144cpp_quote("#define SMC_GETCONTEXTMENUMODIFIER 0x00000043")
3145cpp_quote("#define SMC_GETBKCONTEXTMENU 0x00000044")
3146cpp_quote("#define SMC_OPEN 0x00000045")
3147
3148cpp_quote("")
3149cpp_quote("#define SMAE_EXPANDED 0x00000001")
3150cpp_quote("#define SMAE_CONTRACTED 0x00000002")
3151cpp_quote("")
3152cpp_quote("#define SMAE_USER 0x00000004")
3153cpp_quote("")
3154cpp_quote("#define SMAE_VALID 0x00000007")
3155cpp_quote("#endif")
3156
3157cpp_quote("")
3158[object, local, uuid (4ca300a1-9b8d-11d1-8b22-00c04fd918d0), pointer_default (unique)]
3159interface IShellMenuCallback : IUnknown {
3160 HRESULT CallbackSM ([in, out] LPSMDATA psmd,[in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam);
3161}
3162
3163cpp_quote("")
3164cpp_quote("#define SMINIT_DEFAULT 0x00000000")
3165cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002")
3166cpp_quote("#define SMINIT_TOPLEVEL 0x00000004")
3167cpp_quote("#define SMINIT_CACHED 0x00000010")
3168cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
3169cpp_quote("#define SMINIT_AUTOEXPAND 0x00000100")
3170cpp_quote("#define SMINIT_AUTOTOOLTIP 0x00000200")
3171cpp_quote("#define SMINIT_DROPONCONTAINER 0x00000400")
3172cpp_quote("#endif")
3173
3174cpp_quote("")
3175cpp_quote("#define SMINIT_VERTICAL 0x10000000")
3176cpp_quote("#define SMINIT_HORIZONTAL 0x20000000")
3177cpp_quote("")
3178cpp_quote("#define ANCESTORDEFAULT (UINT)-1")
3179
3180cpp_quote("")
3181cpp_quote("#define SMSET_TOP 0x10000000")
3182cpp_quote("#define SMSET_BOTTOM 0x20000000")
3183cpp_quote("#define SMSET_DONTOWN 0x00000001")
3184cpp_quote("")
3185cpp_quote("#define SMINV_REFRESH 0x00000001")
3186cpp_quote("#define SMINV_ID 0x00000008")
3187
3188cpp_quote("")
3189[object, local, uuid (EE1F7637-E138-11d1-8379-00c04fd918d0), pointer_default (unique)]
3190interface IShellMenu : IUnknown {
3191 HRESULT Initialize ([in, unique] IShellMenuCallback *psmc,[in] UINT uId,[in] UINT uIdAncestor,[in] DWORD dwFlags);
3192 HRESULT GetMenuInfo ([out] IShellMenuCallback **ppsmc,[out] UINT *puId,[out] UINT *puIdAncestor,[out] DWORD *pdwFlags);
3193 HRESULT SetShellFolder ([in, unique] IShellFolder *psf,[in, unique] PCIDLIST_ABSOLUTE pidlFolder,[in, unique] HKEY hKey,[in] DWORD dwFlags);
3194 HRESULT GetShellFolder ([out] DWORD *pdwFlags,[out] PIDLIST_ABSOLUTE *ppidl,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3195 HRESULT SetMenu ([in, unique] HMENU hmenu,[in, unique] HWND hwnd,[in] DWORD dwFlags);
3196 HRESULT GetMenu ([out] HMENU *phmenu,[out] HWND *phwnd,[out] DWORD *pdwFlags);
3197 HRESULT InvalidateItem ([in] LPSMDATA psmd,[in] DWORD dwFlags);
3198 HRESULT GetState ([out] LPSMDATA psmd);
3199 HRESULT SetMenuToolbar ([in] IUnknown *punk,[in] DWORD dwFlags);
3200}
3201cpp_quote("#endif")
3202
3203cpp_quote("")
3204[object, local, uuid (fce4bde0-4b68-4b80-8e9c-7426315a7388), pointer_default (ref)]
3205interface IShellRunDll : IUnknown {
3206 HRESULT Run ([in, string] LPCWSTR pszArgs);
3207}
3208
3209cpp_quote("")
3210cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
3211typedef [v1_enum] enum KF_CATEGORY {
3212 KF_CATEGORY_VIRTUAL = 1,
3213 KF_CATEGORY_FIXED = 2,
3214 KF_CATEGORY_COMMON = 3,
3215 KF_CATEGORY_PERUSER = 4,
3216} KF_CATEGORY;
3217
3218cpp_quote("")
3219[v1_enum] enum _KF_DEFINITION_FLAGS {
3220 KFDF_LOCAL_REDIRECT_ONLY = 0x00000002,
3221 KFDF_ROAMABLE = 0x00000004,
3222 KFDF_PRECREATE = 0x00000008,
3223 KFDF_STREAM = 0x00000010,
3224 KFDF_PUBLISHEXPANDEDPATH = 0x00000020,
3225};
3226
3227cpp_quote("")
3228typedef DWORD KF_DEFINITION_FLAGS;
3229
3230cpp_quote("")
3231[v1_enum] enum _KF_REDIRECT_FLAGS {
3232 KF_REDIRECT_USER_EXCLUSIVE = 0x00000001,
3233 KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002,
3234 KF_REDIRECT_OWNER_USER = 0x00000004,
3235 KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008,
3236 KF_REDIRECT_CHECK_ONLY = 0x00000010,
3237 KF_REDIRECT_WITH_UI = 0x00000020,
3238 KF_REDIRECT_UNPIN = 0x00000040,
3239 KF_REDIRECT_PIN = 0x00000080,
3240 KF_REDIRECT_COPY_CONTENTS = 0x00000200,
3241 KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400,
3242 KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800
3243};
3244
3245cpp_quote("")
3246typedef DWORD KF_REDIRECT_FLAGS;
3247
3248cpp_quote("")
3249[v1_enum] enum _KF_REDIRECTION_CAPABILITIES {
3250 KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff,
3251 KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001,
3252 KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00,
3253 KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100,
3254 KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200,
3255 KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400
3256};
3257
3258cpp_quote("")
3259typedef DWORD KF_REDIRECTION_CAPABILITIES;
3260
3261cpp_quote("")
3262typedef struct KNOWNFOLDER_DEFINITION {
3263 KF_CATEGORY category;
3264 LPWSTR pszName;
3265 LPWSTR pszDescription;
3266 KNOWNFOLDERID fidParent;
3267 LPWSTR pszRelativePath;
3268 LPWSTR pszParsingName;
3269 LPWSTR pszTooltip;
3270 LPWSTR pszLocalizedName;
3271 LPWSTR pszIcon;
3272 LPWSTR pszSecurity;
3273 DWORD dwAttributes;
3274 KF_DEFINITION_FLAGS kfdFlags;
3275 FOLDERTYPEID ftidType;
3276} KNOWNFOLDER_DEFINITION;
3277
3278cpp_quote("")
3279[object, uuid (3aa7af7e-9b36-420c-A8E3-F77D4674A488), version (1.0), pointer_default (ref)]
3280interface IKnownFolder : IUnknown {
3281 HRESULT GetId ([out] KNOWNFOLDERID *pkfid);
3282 HRESULT GetCategory ([out] KF_CATEGORY *pCategory);
3283 HRESULT GetShellItem ([in] DWORD dwFlags,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3284 HRESULT GetPath ([in] DWORD dwFlags,[out, string] LPWSTR *ppszPath);
3285 HRESULT SetPath ([in] DWORD dwFlags,[in, string] LPCWSTR pszPath);
3286 HRESULT GetIDList ([in] DWORD dwFlags,[out] PIDLIST_ABSOLUTE *ppidl);
3287 HRESULT GetFolderType ([out] FOLDERTYPEID *pftid);
3288 HRESULT GetRedirectionCapabilities ([out] KF_REDIRECTION_CAPABILITIES *pCapabilities);
3289 HRESULT GetFolderDefinition ([out] KNOWNFOLDER_DEFINITION *pKFD);
3290}
3291
3292cpp_quote("")
3293[object, uuid (8be2d872-86aa-4d47-B776-32cca40c7018), version (1.0), pointer_default (ref)]
3294interface IKnownFolderManager : IUnknown {
3295 typedef [v1_enum] enum FFFP_MODE {
3296 FFFP_EXACTMATCH,
3297 FFFP_NEARESTPARENTMATCH
3298 } FFFP_MODE;
3299cpp_quote("")
3300 HRESULT FolderIdFromCsidl ([in] int nCsidl,[out] KNOWNFOLDERID *pfid);
3301 HRESULT FolderIdToCsidl ([in] REFKNOWNFOLDERID rfid,[out] int *pnCsidl);
3302 HRESULT GetFolderIds ([out, size_is (,*pCount)] KNOWNFOLDERID **ppKFId,[in, out] UINT *pCount);
3303 HRESULT GetFolder ([in] REFKNOWNFOLDERID rfid,[out] IKnownFolder **ppkf);
3304 HRESULT GetFolderByName ([in, string] LPCWSTR pszCanonicalName,[out] IKnownFolder **ppkf);
3305 HRESULT RegisterFolder ([in] REFKNOWNFOLDERID rfid,[in] KNOWNFOLDER_DEFINITION const *pKFD);
3306 HRESULT UnregisterFolder ([in] REFKNOWNFOLDERID rfid);
3307 HRESULT FindFolderFromPath ([in, string] LPCWSTR pszPath,[in] FFFP_MODE mode,[out] IKnownFolder **ppkf);
3308 HRESULT FindFolderFromIDList ([in] PCIDLIST_ABSOLUTE pidl,[out] IKnownFolder **ppkf);
3309 [local] 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);
3310 [call_as (Redirect)] HRESULT RemoteRedirect ([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] GUID const *pExclusion,[out, string] LPWSTR *ppszError);
3311}
3312
3313cpp_quote("")
3314cpp_quote(" __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {")
3315cpp_quote(" CoTaskMemFree(pKFD->pszName);")
3316cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")
3317cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")
3318cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")
3319cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")
3320cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")
3321cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")
3322cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")
3323cpp_quote(" }")
3324
3325cpp_quote("")
3326typedef [v1_enum] enum SHARE_ROLE {
3327 SHARE_ROLE_INVALID = -1,
3328 SHARE_ROLE_READER = 0,
3329 SHARE_ROLE_CONTRIBUTOR = 1,
3330 SHARE_ROLE_CO_OWNER = 2,
3331 SHARE_ROLE_OWNER = 3,
3332 SHARE_ROLE_CUSTOM = 4,
3333 SHARE_ROLE_MIXED = 5
3334} SHARE_ROLE;
3335
3336cpp_quote("")
3337typedef [v1_enum] enum DEF_SHARE_ID {
3338 DEFSHAREID_USERS = 1,
3339 DEFSHAREID_PUBLIC = 2,
3340} DEF_SHARE_ID;
3341
3342cpp_quote("")
3343[object, uuid (B4CD448A-9c86-4466-9201-2e62105b87ae)]
3344interface ISharingConfigurationManager : IUnknown {
3345 HRESULT CreateShare ([in] DEF_SHARE_ID dsid,[in] SHARE_ROLE role);
3346 HRESULT DeleteShare ([in] DEF_SHARE_ID dsid);
3347 HRESULT ShareExists ([in] DEF_SHARE_ID dsid);
3348 HRESULT GetSharePermissions ([in] DEF_SHARE_ID dsid,[out] SHARE_ROLE *pRole);
3349 HRESULT SharePrinters ();
3350 HRESULT StopSharingPrinters ();
3351 HRESULT ArePrintersShared ();
3352}
3353cpp_quote("#endif")
3354
3355cpp_quote("")
3356[object, local, uuid (76e54780-ad74-48e3-a695-3ba9a0aff10d), pointer_default (unique)]
3357interface IPreviousVersionsInfo : IUnknown {
3358 HRESULT AreSnapshotsAvailable ([in, string] LPCWSTR pszPath,[in] BOOL fOkToBeSlow,[out] BOOL *pfAvailable);
3359}
3360
3361cpp_quote("")
3362cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
3363[object, uuid (a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0), pointer_default (unique)]
3364interface IRelatedItem : IUnknown {
3365 HRESULT GetItemIDList ([out] PIDLIST_ABSOLUTE *ppidl);
3366 HRESULT GetItem ([out] IShellItem **ppsi);
3367}
3368
3369cpp_quote("")
3370[object, uuid (7d903fca-d6f9-4810-8332-946c0177e247), pointer_default (unique)]
3371interface IIdentityName : IRelatedItem {
3372}
3373
3374cpp_quote("")
3375[object, uuid (3c5a1c94-c951-4cb7-bb6d-3b93f30cce93), pointer_default (unique)]
3376interface IDelegateItem : IRelatedItem {
3377}
3378
3379cpp_quote("")
3380[object, uuid (240a7174-d653-4a1d-a6d3-d4943cfbfe3d), pointer_default (unique)]
3381interface ICurrentItem : IRelatedItem {
3382}
3383
3384cpp_quote("")
3385[object, uuid (77f295d5-2d6f-4e19-b8ae-322f3e721ab5), pointer_default (unique)]
3386interface ITransferMediumItem : IRelatedItem {
3387}
3388
3389cpp_quote("")
3390[object, uuid (05edda5c-98a3-4717-8adb-c5e7da991eb1), pointer_default (unique)]
3391interface IUseToBrowseItem : IRelatedItem {
3392}
3393
3394cpp_quote("")
3395[object, uuid (c6fd5997-9f6b-4888-8703-94e80e8cde3f), pointer_default (unique)]
3396interface IDisplayItem : IRelatedItem {
3397}
3398
3399cpp_quote("")
3400[object, uuid (9d264146-A94F-4195-9f9f-3bb12ce0c955), pointer_default (unique)]
3401interface IViewStateIdentityItem : IRelatedItem {
3402}
3403
3404cpp_quote("")
3405[object, uuid (36149969-0a8f-49c8-8b00-4aecb20222fb), pointer_default (unique)]
3406interface IPreviewItem : IRelatedItem {
3407}
3408cpp_quote("#endif")
3409
3410cpp_quote("")
3411[object, uuid (8a87781b-39a7-4a1f-aab3-a39b9c34a7d9), pointer_default (unique)]
3412interface IDestinationStreamFactory : IUnknown {
3413 HRESULT GetDestinationStream ([out] IStream **ppstm);
3414}
3415
3416cpp_quote("")
3417[v1_enum] enum _NMCII_FLAGS {
3418 NMCII_NONE = 0x0000,
3419 NMCII_ITEMS = 0x0001,
3420 NMCII_FOLDERS = 0x0002
3421};
3422cpp_quote("")
3423typedef int NMCII_FLAGS;
3424cpp_quote("")
3425[v1_enum] enum _NMCSAEI_FLAGS {
3426 NMCSAEI_SELECT = 0x0000,
3427 NMCSAEI_EDIT = 0x0001
3428};
3429
3430cpp_quote("")
3431typedef int NMCSAEI_FLAGS;
3432
3433cpp_quote("")
3434[uuid (dcb07fdc-3bb5-451c-90be-966644fed7b0), pointer_default (unique)]
3435interface INewMenuClient : IUnknown {
3436 HRESULT IncludeItems ([out] NMCII_FLAGS *pflags);
3437 HRESULT SelectAndEditItem ([in] PCIDLIST_ABSOLUTE pidlItem,[in] NMCSAEI_FLAGS flags);
3438};
3439
3440cpp_quote("")
3441cpp_quote("#define SID_SNewMenuClient IID_INewMenuClient")
3442cpp_quote("")
3443cpp_quote("DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);")
3444
3445cpp_quote("")
3446cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
3447[object, uuid (71c0d2bc-726d-45cc-a6c0-2e31c1db2159), pointer_default (unique)]
3448interface IInitializeWithBindCtx : IUnknown {
3449 HRESULT Initialize ([in] IBindCtx *pbc);
3450}
3451
3452cpp_quote("")
3453[object, uuid (2659b475-EEB8-48b7-8f07-B378810F48CF), pointer_default (unique)]
3454interface IShellItemFilter : IUnknown {
3455 HRESULT IncludeItem ([in] IShellItem *psi);
3456 HRESULT GetEnumFlagsForItem ([in] IShellItem *psi,[out] SHCONTF *pgrfFlags);
3457}
3458cpp_quote("#endif")
3459
3460cpp_quote("")
3461[object, uuid (028212a3-B627-47e9-8856-C14265554E4F)]
3462interface INameSpaceTreeControl : IUnknown {
3463 [v1_enum] enum _NSTCSTYLE {
3464 NSTCS_HASEXPANDOS = 0x00000001,
3465 NSTCS_HASLINES = 0x00000002,
3466 NSTCS_SINGLECLICKEXPAND = 0x00000004,
3467 NSTCS_FULLROWSELECT = 0x00000008,
3468 NSTCS_SPRINGEXPAND = 0x00000010,
3469 NSTCS_HORIZONTALSCROLL = 0x00000020,
3470 NSTCS_ROOTHASEXPANDO = 0x00000040,
3471 NSTCS_SHOWSELECTIONALWAYS = 0x00000080,
3472 NSTCS_NOINFOTIP = 0x00000200,
3473 NSTCS_EVENHEIGHT = 0x00000400,
3474 NSTCS_NOREPLACEOPEN = 0x00000800,
3475 NSTCS_DISABLEDRAGDROP = 0x00001000,
3476 NSTCS_NOORDERSTREAM = 0x00002000,
3477 NSTCS_RICHTOOLTIP = 0x00004000,
3478 NSTCS_BORDER = 0x00008000,
3479 NSTCS_NOEDITLABELS = 0x00010000,
3480 NSTCS_TABSTOP = 0x00020000,
3481 NSTCS_FAVORITESMODE = 0x00080000,
3482 NSTCS_AUTOHSCROLL = 0x00100000,
3483 NSTCS_FADEINOUTEXPANDOS = 0x00200000,
3484 NSTCS_EMPTYTEXT = 0x00400000,
3485 NSTCS_CHECKBOXES = 0x00800000,
3486 NSTCS_PARTIALCHECKBOXES = 0x01000000,
3487 NSTCS_EXCLUSIONCHECKBOXES = 0x02000000,
3488 NSTCS_DIMMEDCHECKBOXES = 0x04000000,
3489 NSTCS_NOINDENTCHECKS = 0x08000000,
3490 NSTCS_ALLOWJUNCTIONS = 0x10000000,
3491 NSTCS_SHOWTABSBUTTON = 0x20000000,
3492 NSTCS_SHOWDELETEBUTTON = 0x40000000,
3493 NSTCS_SHOWREFRESHBUTTON = (int) 0x80000000
3494 };
3495
3496cpp_quote("")
3497 typedef DWORD NSTCSTYLE;
3498cpp_quote("")
3499 [v1_enum] enum _NSTCROOTSTYLE {
3500 NSTCRS_VISIBLE = 0x0000,
3501 NSTCRS_HIDDEN = 0x0001,
3502 NSTCRS_EXPANDED = 0x0002,
3503 };
3504cpp_quote("")
3505 typedef DWORD NSTCROOTSTYLE;
3506cpp_quote("")
3507 [v1_enum] enum _NSTCITEMSTATE {
3508 NSTCIS_NONE = 0x0000,
3509 NSTCIS_SELECTED = 0x0001,
3510 NSTCIS_EXPANDED = 0x0002,
3511 NSTCIS_BOLD = 0x0004,
3512 NSTCIS_DISABLED = 0x0008,
3513 NSTCIS_SELECTEDNOEXPAND = 0x0010,
3514 };
3515cpp_quote("")
3516 typedef DWORD NSTCITEMSTATE;
3517cpp_quote("")
3518 typedef [v1_enum] enum NSTCGNI {
3519 NSTCGNI_NEXT = 0,
3520 NSTCGNI_NEXTVISIBLE = 1,
3521 NSTCGNI_PREV = 2,
3522 NSTCGNI_PREVVISIBLE = 3,
3523 NSTCGNI_PARENT = 4,
3524 NSTCGNI_CHILD = 5,
3525 NSTCGNI_FIRSTVISIBLE = 6,
3526 NSTCGNI_LASTVISIBLE = 7,
3527 } NSTCGNI;
3528cpp_quote("")
3529 HRESULT Initialize ([in] HWND hwndParent,[in, unique] RECT *prc,[in] NSTCSTYLE nsctsFlags);
3530 HRESULT TreeAdvise ([in] IUnknown *punk,[out] DWORD *pdwCookie);
3531 HRESULT TreeUnadvise ([in] DWORD dwCookie);
3532 HRESULT AppendRoot ([in] IShellItem *psiRoot,[in] SHCONTF grfEnumFlags,[in] NSTCROOTSTYLE grfRootStyle,[in, unique] IShellItemFilter *pif);
3533 HRESULT InsertRoot ([in] int iIndex,[in] IShellItem *psiRoot,[in] SHCONTF grfEnumFlags,[in] NSTCROOTSTYLE grfRootStyle,[in, unique] IShellItemFilter *pif);
3534 HRESULT RemoveRoot ([in] IShellItem *psiRoot);
3535 HRESULT RemoveAllRoots ();
3536 HRESULT GetRootItems ([out] IShellItemArray **ppsiaRootItems);
3537 HRESULT SetItemState ([in] IShellItem *psi,[in] NSTCITEMSTATE nstcisMask,[in] NSTCITEMSTATE nstcisFlags);
3538 HRESULT GetItemState ([in] IShellItem *psi,[in] NSTCITEMSTATE nstcisMask,[out] NSTCITEMSTATE *pnstcisFlags);
3539 HRESULT GetSelectedItems ([out] IShellItemArray **psiaItems);
3540 HRESULT GetItemCustomState ([in] IShellItem *psi,[out] int *piStateNumber);
3541 HRESULT SetItemCustomState ([in] IShellItem *psi,[in] int iStateNumber);
3542 HRESULT EnsureItemVisible ([in] IShellItem *psi);
3543 HRESULT SetTheme ([in, string] LPCWSTR pszTheme);
3544 HRESULT GetNextItem ([in, unique] IShellItem *psi,[in] NSTCGNI nstcgi,[out] IShellItem **ppsiNext);
3545 HRESULT HitTest ([in] POINT *ppt,[out] IShellItem **ppsiOut);
3546 HRESULT GetItemRect ([in] IShellItem *psi,[out] RECT *prect);
3547 HRESULT CollapseAll ();
3548}
3549
3550cpp_quote("")
3551[object, uuid (7cc7aed8-290e-49bc-8945-c1401cc9306c),]
3552interface INameSpaceTreeControl2 : INameSpaceTreeControl {
3553 typedef [v1_enum] enum NSTCSTYLE2 {
3554 NSTCS2_DEFAULT = 0x00000000,
3555 NSTCS2_INTERRUPTNOTIFICATIONS = 0x00000001,
3556 NSTCS2_SHOWNULLSPACEMENU = 0x00000002,
3557 NSTCS2_DISPLAYPADDING = 0x00000004,
3558 NSTCS2_DISPLAYPINNEDONLY = 0x00000008,
3559 NTSCS2_NOSINGLETONAUTOEXPAND = 0x00000010,
3560 NTSCS2_NEVERINSERTNONENUMERATED = 0x00000020,
3561 } NSTCSTYLE2;
3562cpp_quote("")
3563cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
3564cpp_quote("")
3565 HRESULT SetControlStyle ([in] NSTCSTYLE nstcsMask,[in] NSTCSTYLE nstcsStyle);
3566 HRESULT GetControlStyle ([in] NSTCSTYLE nstcsMask,[out] NSTCSTYLE *pnstcsStyle);
3567 HRESULT SetControlStyle2 ([in] NSTCSTYLE2 nstcsMask,[in] NSTCSTYLE2 nstcsStyle);
3568 HRESULT GetControlStyle2 ([in] NSTCSTYLE2 nstcsMask,[out] NSTCSTYLE2 *pnstcsStyle);
3569}
3570
3571cpp_quote("")
3572cpp_quote("#define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)")
3573cpp_quote("#define SID_SNavigationPane IID_INameSpaceTreeControl")
3574cpp_quote("")
3575cpp_quote("#define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))")
3576cpp_quote("#define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))")
3577cpp_quote("#define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))")
3578cpp_quote("#define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))")
3579cpp_quote("")
3580[object, uuid (93d77985-B3D8-4484-8318-672cdda002ce), local]
3581interface INameSpaceTreeControlEvents : IUnknown {
3582 [v1_enum] enum _NSTCEHITTEST {
3583 NSTCEHT_NOWHERE = 0x0001,
3584 NSTCEHT_ONITEMICON = 0x0002,
3585 NSTCEHT_ONITEMLABEL = 0x0004,
3586 NSTCEHT_ONITEMINDENT = 0x0008,
3587 NSTCEHT_ONITEMBUTTON = 0x0010,
3588 NSTCEHT_ONITEMRIGHT = 0x0020,
3589 NSTCEHT_ONITEMSTATEICON = 0x0040,
3590 NSTCEHT_ONITEM = 0x0046,
3591 NSTCEHT_ONITEMTABBUTTON = 0x1000
3592 };
3593cpp_quote("")
3594 typedef DWORD NSTCEHITTEST;
3595cpp_quote("")
3596 [v1_enum] enum _NSTCECLICKTYPE {
3597 NSTCECT_LBUTTON = 0x0001,
3598 NSTCECT_MBUTTON = 0x0002,
3599 NSTCECT_RBUTTON = 0x0003,
3600 NSTCECT_BUTTON = 0x0003,
3601 NSTCECT_DBLCLICK = 0x0004
3602 };
3603cpp_quote("")
3604 typedef DWORD NSTCECLICKTYPE;
3605cpp_quote("")
3606 HRESULT OnItemClick ([in] IShellItem *psi,[in] NSTCEHITTEST nstceHitTest,[in] NSTCECLICKTYPE nstceClickType);
3607 HRESULT OnPropertyItemCommit ([in] IShellItem *psi);
3608 HRESULT OnItemStateChanging ([in] IShellItem *psi,[in] NSTCITEMSTATE nstcisMask,[in] NSTCITEMSTATE nstcisState);
3609 HRESULT OnItemStateChanged ([in] IShellItem *psi,[in] NSTCITEMSTATE nstcisMask,[in] NSTCITEMSTATE nstcisState);
3610 HRESULT OnSelectionChanged ([in] IShellItemArray *psiaSelection);
3611 HRESULT OnKeyboardInput ([in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam);
3612 HRESULT OnBeforeExpand ([in] IShellItem *psi);
3613 HRESULT OnAfterExpand ([in] IShellItem *psi);
3614 HRESULT OnBeginLabelEdit ([in] IShellItem *psi);
3615 HRESULT OnEndLabelEdit ([in] IShellItem *psi);
3616 HRESULT OnGetToolTip ([in] IShellItem *psi,[out, string, size_is (cchTip)] LPWSTR pszTip,[in] int cchTip);
3617 HRESULT OnBeforeItemDelete ([in] IShellItem *psi);
3618 HRESULT OnItemAdded ([in] IShellItem *psi,[in] BOOL fIsRoot);
3619 HRESULT OnItemDeleted ([in] IShellItem *psi,[in] BOOL fIsRoot);
3620 HRESULT OnBeforeContextMenu ([in, unique] IShellItem *psi,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3621 HRESULT OnAfterContextMenu ([in] IShellItem *psi,[in] IContextMenu *pcmIn,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3622 HRESULT OnBeforeStateImageChange ([in] IShellItem *psi);
3623 HRESULT OnGetDefaultIconIndex ([in] IShellItem *psi,[out] int *piDefaultIcon,[out] int *piOpenIcon);
3624}
3625
3626cpp_quote("")
3627cpp_quote("#define NSTCDHPOS_ONTOP -1")
3628
3629cpp_quote("")
3630[object, local, uuid (F9C665D6-C2F2-4c19-BF33-8322d7352f51)]
3631interface INameSpaceTreeControlDropHandler : IUnknown {
3632 HRESULT OnDragEnter ([in, unique] IShellItem *psiOver,[in] IShellItemArray *psiaData,[in] BOOL fOutsideSource,[in] DWORD grfKeyState,[in, out] DWORD *pdwEffect);
3633 HRESULT OnDragOver ([in, unique] IShellItem *psiOver,[in] IShellItemArray *psiaData,[in] DWORD grfKeyState,[in, out] DWORD *pdwEffect);
3634 HRESULT OnDragPosition ([in, unique] IShellItem *psiOver,[in] IShellItemArray *psiaData,[in] int iNewPosition,[in] int iOldPosition);
3635 HRESULT OnDrop ([in, unique] IShellItem *psiOver,[in] IShellItemArray *psiaData,[in] int iPosition,[in] DWORD grfKeyState,[in, out] DWORD *pdwEffect);
3636 HRESULT OnDropPosition ([in, unique] IShellItem *psiOver,[in] IShellItemArray *psiaData,[in] int iNewPosition,[in] int iOldPosition);
3637 HRESULT OnDragLeave ([in, unique] IShellItem *psiOver);
3638}
3639
3640cpp_quote("")
3641[object, local, uuid (71f312de-43ed-4190-8477-e9536b82350b)]
3642interface INameSpaceTreeAccessible : IUnknown {
3643 HRESULT OnGetDefaultAccessibilityAction ([in] IShellItem *psi,[out] BSTR *pbstrDefaultAction);
3644 HRESULT OnDoDefaultAccessibilityAction ([in] IShellItem *psi);
3645 HRESULT OnGetAccessibilityRole ([in] IShellItem *psi,[out] VARIANT *pvarRole);
3646}
3647
3648cpp_quote("")
3649[object, local, uuid (2d3ba758-33ee-42d5-BB7B-5f3431d86c78)]
3650interface INameSpaceTreeControlCustomDraw : IUnknown {
3651 typedef struct NSTCCUSTOMDRAW {
3652 IShellItem *psi;
3653 UINT uItemState;
3654 NSTCITEMSTATE nstcis;
3655 LPCWSTR pszText;
3656 int iImage;
3657 HIMAGELIST himl;
3658 int iLevel;
3659 int iIndent;
3660 } NSTCCUSTOMDRAW;
3661cpp_quote("")
3662 HRESULT PrePaint ([in] HDC hdc,[in] RECT *prc,[out] LRESULT *plres);
3663 HRESULT PostPaint ([in] HDC hdc,[in] RECT *prc);
3664 HRESULT ItemPrePaint ([in] HDC hdc,[in] RECT *prc,[in] NSTCCUSTOMDRAW *pnstccdItem,[in, out] COLORREF *pclrText,[in, out] COLORREF *pclrTextBk,[out] LRESULT *plres);
3665 HRESULT ItemPostPaint ([in] HDC hdc,[in] RECT *prc,[in] NSTCCUSTOMDRAW *pnstccdItem);
3666}
3667
3668cpp_quote("")
3669cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
3670[object, uuid (e9701183-e6b3-4ff2-8568-813615fec7be), local]
3671interface INameSpaceTreeControlFolderCapabilities : IUnknown {
3672 typedef [v1_enum] enum NSTCFOLDERCAPABILITIES {
3673 NSTCFC_NONE = 0x00000000,
3674 NSTCFC_PINNEDITEMFILTERING = 0x00000001,
3675 NSTCFC_DELAY_REGISTER_NOTIFY = 0x00000002,
3676 } NSTCFOLDERCAPABILITIES;
3677cpp_quote("")
3678cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)")
3679cpp_quote("")
3680 HRESULT GetFolderCapabilities ([in] NSTCFOLDERCAPABILITIES nfcMask,[out] NSTCFOLDERCAPABILITIES *pnfcValue);
3681}
3682cpp_quote("#endif")
3683
3684cpp_quote("")
3685cpp_quote("#define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)")
3686cpp_quote("#define E_PREVIEWHANDLER_NOAUTH _HRESULT_TYPEDEF_(0x86420002L)")
3687cpp_quote("#define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)")
3688cpp_quote("#define E_PREVIEWHANDLER_CORRUPT _HRESULT_TYPEDEF_(0x86420004L)")
3689
3690cpp_quote("")
3691[object, uuid (8895b1c6-b41f-4c1c-a562-0d564250836f)]
3692interface IPreviewHandler : IUnknown {
3693 HRESULT SetWindow ([in] HWND hwnd,[in] const RECT *prc);
3694 HRESULT SetRect ([in] const RECT *prc);
3695 HRESULT DoPreview ();
3696 HRESULT Unload ();
3697 HRESULT SetFocus ();
3698 HRESULT QueryFocus ([out] HWND *phwnd);
3699 HRESULT TranslateAccelerator ([in] MSG *pmsg);
3700}
3701
3702cpp_quote("")
3703[object, uuid (fec87aaf-35f9-447a-adb7-20234491401a), pointer_default (unique)]
3704interface IPreviewHandlerFrame: IUnknown {
3705 typedef struct PREVIEWHANDLERFRAMEINFO {
3706 HACCEL haccel;
3707 UINT cAccelEntries;
3708 } PREVIEWHANDLERFRAMEINFO;
3709cpp_quote("")
3710 HRESULT GetWindowContext ([out] PREVIEWHANDLERFRAMEINFO *pinfo);
3711 HRESULT TranslateAccelerator ([in] MSG *pmsg);
3712}
3713
3714cpp_quote("")
3715cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
3716[object, uuid (6d67e846-5b9c-4db8-9cbc-DDE12F4254F1), pointer_default (unique)]
3717interface ITrayDeskBand : IUnknown {
3718 HRESULT ShowDeskBand ([in] REFCLSID clsid);
3719 HRESULT HideDeskBand ([in] REFCLSID clsid);
3720 HRESULT IsDeskBandShown ([in] REFCLSID clsid);
3721 HRESULT DeskBandRegistrationChanged ();
3722}
3723
3724cpp_quote("")
3725[object, uuid (B9075C7C-D48E-403f-AB99-D6C77A1084AC), pointer_default (unique)]
3726interface IBandHost : IUnknown {
3727 HRESULT CreateBand ([in] REFCLSID rclsidBand,[in] BOOL fAvailable,[in] BOOL fVisible,[in] REFIID riid,[out, iid_is (riid)]void **ppv);
3728 HRESULT SetBandAvailability ([in] REFCLSID rclsidBand,[in] BOOL fAvailable);
3729 HRESULT DestroyBand ([in] REFCLSID rclsidBand);
3730}
3731
3732cpp_quote("")
3733cpp_quote("#define SID_SBandHost IID_IBandHost")
3734
3735cpp_quote("")
3736typedef GUID EXPLORERPANE;
3737
3738cpp_quote("")
3739cpp_quote("#if 0")
3740typedef EXPLORERPANE *REFEXPLORERPANE;
3741cpp_quote("#endif")
3742
3743cpp_quote("")
3744cpp_quote("#ifdef __cplusplus")
3745cpp_quote("#define REFEXPLORERPANE const EXPLORERPANE &")
3746cpp_quote("#else")
3747cpp_quote("#define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST")
3748cpp_quote("#endif")
3749
3750cpp_quote("")
3751[object, uuid (e07010ec-bc17-44c0-97b0-46c7c95b9edc), local, pointer_default (unique)]
3752interface IExplorerPaneVisibility : IUnknown {
3753 [v1_enum] enum _EXPLORERPANESTATE {
3754 EPS_DONTCARE = 0x0000,
3755 EPS_DEFAULT_ON = 0x0001,
3756 EPS_DEFAULT_OFF = 0x0002,
3757 EPS_STATEMASK = 0xffff,
3758 EPS_INITIALSTATE = 0x00010000,
3759 EPS_FORCE = 0x00020000
3760 };
3761cpp_quote("")
3762 typedef DWORD EXPLORERPANESTATE;
3763cpp_quote("")
3764 HRESULT GetPaneState ([in] REFEXPLORERPANE ep,[out] EXPLORERPANESTATE *peps);
3765}
3766
3767cpp_quote("")
3768cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
3769
3770cpp_quote("")
3771[object, local, uuid (3409e930-5a39-11d1-83fa-00a0c90dc849), pointer_default (unique)]
3772interface IContextMenuCB : IUnknown {
3773 HRESULT CallBack ([in, unique] IShellFolder *psf,[in, unique] HWND hwndOwner,[in, unique] IDataObject *pdtobj,[in] UINT uMsg,[in] WPARAM wParam,[in] LPARAM lParam);
3774}
3775cpp_quote("#endif")
3776
3777cpp_quote("")
3778[object, local, uuid (41ded17d-d6b3-4261-997d-88c60e4b1d58), pointer_default (unique)]
3779interface IDefaultExtractIconInit : IUnknown {
3780 HRESULT SetFlags ([in] UINT uFlags);
3781 HRESULT SetKey ([in] HKEY hkey);
3782 HRESULT SetNormalIcon ([in, unique, string] LPCWSTR pszFile,[in] int iIcon);
3783 HRESULT SetOpenIcon ([in, unique, string] LPCWSTR pszFile,[in] int iIcon);
3784 HRESULT SetShortcutIcon ([in, unique, string] LPCWSTR pszFile,[in] int iIcon);
3785 HRESULT SetDefaultIcon ([in, unique, string] LPCWSTR pszFile,[in] int iIcon);
3786}
3787
3788cpp_quote("")
3789cpp_quote("STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);")
3790
3791cpp_quote("")
3792interface IEnumExplorerCommand;
3793
3794cpp_quote("")
3795[uuid (a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9), pointer_default (unique)]
3796interface IExplorerCommand : IUnknown {
3797 [v1_enum] enum _EXPCMDSTATE {
3798 ECS_ENABLED = 0x00,
3799 ECS_DISABLED = 0x01,
3800 ECS_HIDDEN = 0x02,
3801 ECS_CHECKBOX = 0x04,
3802 ECS_CHECKED = 0x08,
3803 ECS_RADIOCHECK = 0x10
3804 };
3805cpp_quote("")
3806 typedef DWORD EXPCMDSTATE;
3807cpp_quote("")
3808 [v1_enum] enum _EXPCMDFLAGS {
3809 ECF_DEFAULT = 0x000,
3810 ECF_HASSUBCOMMANDS = 0x001,
3811 ECF_HASSPLITBUTTON = 0x002,
3812 ECF_HIDELABEL = 0x004,
3813 ECF_ISSEPARATOR = 0x008,
3814 ECF_HASLUASHIELD = 0x010,
3815 ECF_SEPARATORBEFORE = 0x020,
3816 ECF_SEPARATORAFTER = 0x040,
3817 ECF_ISDROPDOWN = 0x080,
3818 ECF_TOGGLEABLE = 0x100,
3819 ECF_AUTOMENUICONS = 0x200
3820 };
3821cpp_quote("")
3822 typedef DWORD EXPCMDFLAGS;
3823cpp_quote("")
3824 HRESULT GetTitle ([in, unique] IShellItemArray *psiItemArray,[out, string] LPWSTR *ppszName);
3825 HRESULT GetIcon ([in, unique] IShellItemArray *psiItemArray,[out, string] LPWSTR *ppszIcon);
3826 HRESULT GetToolTip ([in, unique] IShellItemArray *psiItemArray,[out, string] LPWSTR *ppszInfotip);
3827 HRESULT GetCanonicalName ([out] GUID *pguidCommandName);
3828 HRESULT GetState ([in, unique] IShellItemArray *psiItemArray,[in] BOOL fOkToBeSlow,[out] EXPCMDSTATE *pCmdState);
3829 HRESULT Invoke ([in, unique] IShellItemArray *psiItemArray,[in, unique] IBindCtx *pbc);
3830 HRESULT GetFlags ([out] EXPCMDFLAGS *pFlags);
3831 HRESULT EnumSubCommands ([out] IEnumExplorerCommand **ppEnum);
3832}
3833
3834cpp_quote("")
3835[object, uuid (bddacb60-7657-47ae-8445-d23e1acf82ae), pointer_default (unique)]
3836interface IExplorerCommandState : IUnknown {
3837 HRESULT GetState ([in] IShellItemArray *psiItemArray,[in] BOOL fOkToBeSlow,[out] EXPCMDSTATE *pCmdState);
3838}
3839
3840cpp_quote("")
3841[object, uuid (85075acf-231f-40ea-9610-d26b7b58f638), pointer_default (unique)]
3842interface IInitializeCommand : IUnknown {
3843 HRESULT Initialize ([in, string] LPCWSTR pszCommandName,[in] IPropertyBag *ppb);
3844}
3845
3846cpp_quote("")
3847[object, uuid (a88826f8-186f-4987-aade-ea0cef8fbfe8), pointer_default (unique)]
3848interface IEnumExplorerCommand : IUnknown {
3849 [local] HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IExplorerCommand **pUICommand,[out] ULONG *pceltFetched);
3850 [call_as (Next)] HRESULT RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IExplorerCommand **pUICommand,[out] ULONG *pceltFetched);
3851 HRESULT Skip ([in] ULONG celt);
3852 HRESULT Reset ();
3853 HRESULT Clone ([out] IEnumExplorerCommand **ppenum);
3854}
3855
3856cpp_quote("")
3857[uuid (64961751-0835-43c0-8ffe-d57686530e64), pointer_default (unique)]
3858interface IExplorerCommandProvider : IUnknown {
3859 HRESULT GetCommands ([in] IUnknown *punkSite,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3860 HRESULT GetCommand ([in] REFGUID rguidCommandId,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3861}
3862
3863cpp_quote("")
3864typedef HANDLE HTHEME;
3865
3866cpp_quote("")
3867[object, uuid (6e0f9881-42a8-4f2a-97f8-8af4e026d92d), pointer_default (unique)]
3868interface IInitializeNetworkFolder : IUnknown {
3869 HRESULT Initialize ([in, unique] PCIDLIST_ABSOLUTE pidl,[in, unique] PCIDLIST_ABSOLUTE pidlTarget,[in] UINT uDisplayType,[in, unique, string] LPCWSTR pszResName,[in, unique, string] LPCWSTR pszProvider);
3870}
3871
3872cpp_quote("")
3873typedef [v1_enum] enum CPVIEW {
3874 CPVIEW_CLASSIC = 0,
3875 CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
3876 CPVIEW_CATEGORY = 1,
3877 CPVIEW_HOME = CPVIEW_CATEGORY,
3878} CPVIEW;
3879
3880cpp_quote("")
3881[object, uuid (D11AD862-66de-4df4-BF6C-1f5621996af1)]
3882interface IOpenControlPanel : IUnknown {
3883 HRESULT Open ([in, unique, string] LPCWSTR pszName,[in, unique, string] LPCWSTR pszPage,[in, unique] IUnknown *punkSite);
3884 HRESULT GetPath ([in, unique, string] LPCWSTR pszName,[out, string, size_is (cchPath)] LPWSTR pszPath,[in] UINT cchPath);
3885 HRESULT GetCurrentView ([out] CPVIEW *pView);
3886}
3887
3888cpp_quote("")
3889[object, uuid (0df60d92-6818-46d6-B358-D66170DDE466), pointer_default (unique)]
3890interface IComputerInfoChangeNotify : IUnknown {
3891 HRESULT ComputerInfoChanged ();
3892}
3893
3894cpp_quote("")
3895cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"")
3896
3897cpp_quote("")
3898[object, uuid (01e18d10-4d8b-11d2-855d-006008059367), pointer_default (unique), local]
3899interface IFileSystemBindData : IUnknown {
3900 HRESULT SetFindData ([in] const WIN32_FIND_DATAW *pfd);
3901 HRESULT GetFindData ([out] WIN32_FIND_DATAW *pfd);
3902}
3903
3904cpp_quote("")
3905[object, uuid (3acf075f-71db-4afa-81f0-3fc4fdf2a5b8), pointer_default (unique), local]
3906interface IFileSystemBindData2 : IFileSystemBindData {
3907 HRESULT SetFileID ([in] LARGE_INTEGER liFileID);
3908 HRESULT GetFileID ([out] LARGE_INTEGER *pliFileID);
3909 HRESULT SetJunctionCLSID ([in] REFCLSID clsid);
3910 HRESULT GetJunctionCLSID ([out] CLSID *pclsid);
3911}
3912
3913cpp_quote("")
3914cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
3915[object, uuid (6332debf-87b5-4670-90c0-5e57b408a49e), pointer_default (unique)]
3916interface ICustomDestinationList : IUnknown {
3917 typedef [v1_enum] enum KNOWNDESTCATEGORY {
3918 KDC_FREQUENT = 1,
3919 KDC_RECENT,
3920 } KNOWNDESTCATEGORY;
3921cpp_quote("")
3922 HRESULT SetAppID ([in, string] LPCWSTR pszAppID);
3923 HRESULT BeginList ([out] UINT *pcMinSlots,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3924 HRESULT AppendCategory ([in, string] LPCWSTR pszCategory,[in] IObjectArray *poa);
3925 HRESULT AppendKnownCategory ([in] KNOWNDESTCATEGORY category);
3926 HRESULT AddUserTasks ([in] IObjectArray *poa);
3927 HRESULT CommitList ();
3928 HRESULT GetRemovedDestinations ([in] REFIID riid,[out, iid_is (riid)] void **ppv);
3929 HRESULT DeleteList ([in, unique, string] LPCWSTR pszAppID);
3930 HRESULT AbortList ();
3931}
3932
3933cpp_quote("")
3934[object, uuid (12337d35-94c6-48a0-bce7-6a9c69d4d600), pointer_default (unique)]
3935interface IApplicationDestinations : IUnknown {
3936 HRESULT SetAppID ([in] LPCWSTR pszAppID);
3937 HRESULT RemoveDestination ([in] IUnknown *punk);
3938 HRESULT RemoveAllDestinations ();
3939}
3940
3941cpp_quote("")
3942[object, uuid (3c594f9f-9f30-47a1-979a-c9e83d3d0a06), pointer_default (unique)]
3943interface IApplicationDocumentLists : IUnknown {
3944 typedef [v1_enum] enum APPDOCLISTTYPE {
3945 ADLT_RECENT = 0,
3946 ADLT_FREQUENT,
3947 } APPDOCLISTTYPE;
3948cpp_quote("")
3949 HRESULT SetAppID ([in] LPCWSTR pszAppID);
3950 HRESULT GetList ([in] APPDOCLISTTYPE listtype,[in] UINT cItemsDesired,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
3951}
3952
3953cpp_quote("")
3954[object, uuid (36db0196-9665-46d1-9ba7-d3709eecf9ed), pointer_default (unique)]
3955interface IObjectWithAppUserModelID : IUnknown {
3956 HRESULT SetAppID ([in, string] LPCWSTR pszAppID);
3957 HRESULT GetAppID ([out, string] LPWSTR *ppszAppID);
3958}
3959
3960cpp_quote("")
3961[object, uuid (71e806fb-8dee-46fc-bf8c-7748a8a1ae13), pointer_default (unique)]
3962interface IObjectWithProgID : IUnknown {
3963 HRESULT SetProgID ([in, string] LPCWSTR pszProgID);
3964 HRESULT GetProgID ([out, string] LPWSTR *ppszProgID);
3965}
3966
3967cpp_quote("")
3968[uuid (6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c), local, pointer_default (unique)]
3969interface IUpdateIDList : IUnknown {
3970 HRESULT Update ([in, unique] IBindCtx *pbc,[in] PCUITEMID_CHILD pidlIn,[out] PITEMID_CHILD *ppidlOut);
3971}
3972
3973cpp_quote("")
3974cpp_quote("SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);")
3975cpp_quote("SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);")
3976cpp_quote("#endif")
3977
3978cpp_quote("")
3979[object, uuid (c1646bc4-f298-4f91-a204-eb2dd1709d1a),]
3980interface IDesktopGadget : IUnknown {
3981 HRESULT RunGadget ([in] LPCWSTR gadgetPath);
3982}
3983
3984cpp_quote("")
3985cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN8")
3986[object, uuid (B92B56A9-8b55-4e14-9a89-0199bbb6f93b)]
3987interface IDesktopWallpaper : IUnknown {
3988 typedef [v1_enum] enum DESKTOP_SLIDESHOW_OPTIONS {
3989 DSO_SHUFFLEIMAGES = 0x01,
3990 } DESKTOP_SLIDESHOW_OPTIONS;
3991cpp_quote("")
3992cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);")
3993cpp_quote("")
3994 typedef [v1_enum] enum DESKTOP_SLIDESHOW_STATE {
3995 DSS_ENABLED = 0x01,
3996 DSS_SLIDESHOW = 0x02,
3997 DSS_DISABLED_BY_REMOTE_SESSION = 0x04
3998 } DESKTOP_SLIDESHOW_STATE;
3999cpp_quote("")
4000cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);")
4001cpp_quote("")
4002 typedef [v1_enum] enum DESKTOP_SLIDESHOW_DIRECTION {
4003 DSD_FORWARD = 0,
4004 DSD_BACKWARD = 1
4005 } DESKTOP_SLIDESHOW_DIRECTION;
4006
4007cpp_quote("")
4008 typedef [v1_enum] enum DESKTOP_WALLPAPER_POSITION {
4009 DWPOS_CENTER = 0,
4010 DWPOS_TILE = 1,
4011 DWPOS_STRETCH = 2,
4012 DWPOS_FIT = 3,
4013 DWPOS_FILL = 4,
4014 DWPOS_SPAN = 5
4015 } DESKTOP_WALLPAPER_POSITION;
4016cpp_quote("")
4017 HRESULT SetWallpaper ([in, unique] LPCWSTR monitorID,[in] LPCWSTR wallpaper);
4018 HRESULT GetWallpaper ([in, unique] LPCWSTR monitorID,[out, string] LPWSTR *wallpaper);
4019 HRESULT GetMonitorDevicePathAt ([in] UINT monitorIndex,[out, string] LPWSTR *monitorID);
4020 HRESULT GetMonitorDevicePathCount ([out] UINT *count);
4021 HRESULT GetMonitorRECT ([in] LPCWSTR monitorID,[out] RECT *displayRect);
4022 HRESULT SetBackgroundColor ([in] COLORREF color);
4023 HRESULT GetBackgroundColor ([out] COLORREF *color);
4024 HRESULT SetPosition ([in] DESKTOP_WALLPAPER_POSITION position);
4025 HRESULT GetPosition ([out] DESKTOP_WALLPAPER_POSITION *position);
4026 HRESULT SetSlideshow ([in] IShellItemArray *items);
4027 HRESULT GetSlideshow ([out] IShellItemArray **items);
4028 HRESULT SetSlideshowOptions ([in] DESKTOP_SLIDESHOW_OPTIONS options,[in] UINT slideshowTick);
4029 HRESULT GetSlideshowOptions ([out] DESKTOP_SLIDESHOW_OPTIONS *options,[out] UINT *slideshowTick);
4030 HRESULT AdvanceSlideshow ([in, unique] LPCWSTR monitorID,[in] DESKTOP_SLIDESHOW_DIRECTION direction);
4031 HRESULT GetStatus ([out] DESKTOP_SLIDESHOW_STATE *state);
4032 HRESULT Enable ([in] BOOL enable);
4033}
4034cpp_quote("#endif")
4035
4036cpp_quote("")
4037cpp_quote("#define HOMEGROUP_SECURITY_GROUP_MULTI L\"HUG\"")
4038cpp_quote("#define HOMEGROUP_SECURITY_GROUP L\"HomeUsers\"")
4039
4040cpp_quote("")
4041[object, local, uuid (7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0)]
4042interface IHomeGroup : IUnknown {
4043 typedef [v1_enum] enum HOMEGROUPSHARINGCHOICES {
4044 HGSC_NONE = 0x00000000,
4045 HGSC_MUSICLIBRARY = 0x00000001,
4046 HGSC_PICTURESLIBRARY = 0x00000002,
4047 HGSC_VIDEOSLIBRARY = 0x00000004,
4048 HGSC_DOCUMENTSLIBRARY = 0x00000008,
4049 HGSC_PRINTERS = 0x00000010,
4050 } HOMEGROUPSHARINGCHOICES;
4051cpp_quote("")
4052cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)")
4053cpp_quote("")
4054 HRESULT IsMember ([out] BOOL *member);
4055 HRESULT ShowSharingWizard ([in] HWND owner,[out] HOMEGROUPSHARINGCHOICES *sharingchoices);
4056}
4057
4058cpp_quote("")
4059[object, uuid (C3E12EB5-7d8d-44f8-B6DD-0e77b34d6de4), pointer_default (unique)]
4060interface IInitializeWithPropertyStore : IUnknown {
4061 HRESULT Initialize ([in] IPropertyStore *pps);
4062}
4063
4064cpp_quote("")
4065[object, uuid (F0EE7333-E6FC-479b-9f25-A860C234A38E), pointer_default (unique),]
4066interface IOpenSearchSource : IUnknown {
4067 HRESULT GetResults ([in] HWND hwnd,[in] LPCWSTR pszQuery,[in] DWORD dwStartIndex,[in] DWORD dwCount,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
4068}
4069
4070cpp_quote("")
4071[object, uuid (11a66efa-382e-451a-9234-1e0e12ef3085), pointer_default (unique)]
4072interface IShellLibrary : IUnknown {
4073 typedef [v1_enum] enum LIBRARYFOLDERFILTER {
4074 LFF_FORCEFILESYSTEM = 1,
4075 LFF_STORAGEITEMS = 2,
4076 LFF_ALLITEMS = 3
4077 } LIBRARYFOLDERFILTER;
4078
4079cpp_quote("")
4080 typedef [v1_enum] enum LIBRARYOPTIONFLAGS {
4081 LOF_DEFAULT = 0x00000000,
4082 LOF_PINNEDTONAVPANE = 0x00000001,
4083 LOF_MASK_ALL = 0x00000001
4084 } LIBRARYOPTIONFLAGS;
4085cpp_quote("")
4086cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)")
4087cpp_quote("")
4088 typedef [v1_enum] enum DEFAULTSAVEFOLDERTYPE {
4089 DSFT_DETECT = 1,
4090 DSFT_PRIVATE,
4091 DSFT_PUBLIC
4092 } DEFAULTSAVEFOLDERTYPE;
4093
4094cpp_quote("")
4095 typedef [v1_enum] enum LIBRARYSAVEFLAGS {
4096 LSF_FAILIFTHERE = 0x00000000,
4097 LSF_OVERRIDEEXISTING = 0x00000001,
4098 LSF_MAKEUNIQUENAME = 0x00000002,
4099 } LIBRARYSAVEFLAGS;
4100cpp_quote("")
4101cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)")
4102cpp_quote("")
4103 HRESULT LoadLibraryFromItem ([in] IShellItem *psiLibrary,[in] DWORD grfMode);
4104 HRESULT LoadLibraryFromKnownFolder ([in] REFKNOWNFOLDERID kfidLibrary,[in] DWORD grfMode);
4105 HRESULT AddFolder ([in] IShellItem *psiLocation);
4106 HRESULT RemoveFolder ([in] IShellItem *psiLocation);
4107 HRESULT GetFolders ([in] LIBRARYFOLDERFILTER lff,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
4108 HRESULT ResolveFolder ([in] IShellItem *psiFolderToResolve,[in] DWORD dwTimeout,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
4109 HRESULT GetDefaultSaveFolder ([in] DEFAULTSAVEFOLDERTYPE dsft,[in] REFIID riid,[out, iid_is (riid)] void **ppv);
4110 HRESULT SetDefaultSaveFolder ([in] DEFAULTSAVEFOLDERTYPE dsft,[in] IShellItem *psi);
4111 HRESULT GetOptions ([out] LIBRARYOPTIONFLAGS *plofOptions);
4112 HRESULT SetOptions ([in] LIBRARYOPTIONFLAGS lofMask,[in] LIBRARYOPTIONFLAGS lofOptions);
4113 HRESULT GetFolderType ([out] FOLDERTYPEID *pftid);
4114 HRESULT SetFolderType ([in] REFFOLDERTYPEID ftid);
4115 HRESULT GetIcon ([out, string] LPWSTR *ppszIcon);
4116 HRESULT SetIcon ([in, string] LPCWSTR pszIcon);
4117 HRESULT Commit ();
4118 HRESULT Save ([in] IShellItem *psiFolderToSaveIn,[in, string] LPCWSTR pszLibraryName,[in] LIBRARYSAVEFLAGS lsf,[out] IShellItem **ppsiSavedTo);
4119 HRESULT SaveInKnownFolder ([in] REFKNOWNFOLDERID kfidToSaveIn,[in, string] LPCWSTR pszLibraryName,[in] LIBRARYSAVEFLAGS lsf,[out] IShellItem **ppsiSavedTo);
4120}
4121
4122cpp_quote("")
4123typedef [v1_enum] enum PBM_EVENT {
4124 PE_DUCKSESSION = 1,
4125 PE_UNDUCKSESSION = 2,
4126} PBM_EVENT;
4127
4128cpp_quote("")
4129[object, uuid (385cfb7d-4e0c-4106-912e-8cfb4c191f45)]
4130interface IPlaybackManagerEvents : IUnknown {
4131 HRESULT OnPlaybackManagerEvent ([in] DWORD dwSessionId,[in] PBM_EVENT mediaEvent);
4132}
4133
4134cpp_quote("")
4135typedef [v1_enum] enum PBM_SESSION_TYPE {
4136 ST_COMMUNICATION = 1,
4137 ST_MEDIA = 2
4138} PBM_SESSION_TYPE;
4139
4140cpp_quote("")
4141typedef [v1_enum] enum PBM_PLAY_STATE {
4142 PS_PLAYING = 1,
4143 PS_PAUSED = 2,
4144 PS_STOPPED = 3
4145} PBM_PLAY_STATE;
4146
4147cpp_quote("")
4148typedef [v1_enum] enum PBM_MUTE_STATE {
4149 MS_MUTED = 1,
4150 MS_UNMUTED = 2
4151} PBM_MUTE_STATE;
4152
4153cpp_quote("")
4154[object, uuid (0f3c1b01-8199-4173-BA78-985882266f7a)]
4155interface IPlaybackManager : IUnknown {
4156 HRESULT Advise ([in] PBM_SESSION_TYPE type,[in] IPlaybackManagerEvents *pEvents,[out] DWORD *pdwSessionId);
4157 HRESULT Unadvise ([in] DWORD dwSessionId);
4158 HRESULT ChangeSessionState ([in] DWORD dwSessionId,[in] PBM_PLAY_STATE state,[in] PBM_MUTE_STATE mute);
4159}
4160
4161cpp_quote("")
4162typedef [v1_enum] enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
4163 DFMR_DEFAULT = 0x0000,
4164 DFMR_NO_STATIC_VERBS = 0x0008,
4165 DFMR_STATIC_VERBS_ONLY = 0x0010,
4166 DFMR_NO_RESOURCE_VERBS = 0x0020,
4167 DFMR_OPTIN_HANDLERS_ONLY = 0x0040,
4168 DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x0080,
4169 DFMR_USE_SPECIFIED_HANDLERS = 0x0100,
4170 DFMR_USE_SPECIFIED_VERBS = 0x0200,
4171 DFMR_NO_ASYNC_VERBS = 0x0400
4172} DEFAULT_FOLDER_MENU_RESTRICTIONS;
4173cpp_quote("")
4174cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)")
4175
4176cpp_quote("")
4177[object, local, uuid (7690aa79-f8fc-4615-a327-36f7d18f5d91), pointer_default (unique)]
4178interface IDefaultFolderMenuInitialize : IUnknown {
4179 HRESULT Initialize ([in] HWND hwnd,[in, unique] IContextMenuCB *pcmcb,[in, unique] PCIDLIST_ABSOLUTE pidlFolder,[in, unique] IShellFolder *psf,[in] UINT cidl,[in, unique, size_is (cidl)] PCUITEMID_CHILD_ARRAY apidl,[in, unique] IUnknown *punkAssociation,[in] UINT cKeys,[in, unique, size_is (cKeys)] const HKEY *aKeys);
4180 HRESULT SetMenuRestrictions ([in] DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
4181 HRESULT GetMenuRestrictions ([in] DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,[out] DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
4182 HRESULT SetHandlerClsid ([in] REFCLSID rclsid);
4183}
4184
4185cpp_quote("")
4186cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN8")
4187typedef [v1_enum] enum ACTIVATEOPTIONS {
4188 AO_NONE = 0x00000000,
4189 AO_DESIGNMODE = 0x00000001,
4190 AO_NOERRORUI = 0x00000002,
4191 AO_NOSPLASHSCREEN = 0x00000004
4192} ACTIVATEOPTIONS;
4193cpp_quote("")
4194cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)")
4195
4196cpp_quote("")
4197[object, uuid (2e941141-7f97-4756-ba1d-9decde894a3d), pointer_default (unique)]
4198interface IApplicationActivationManager : IUnknown {
4199 HRESULT ActivateApplication ([in] LPCWSTR appUserModelId,[in, unique] LPCWSTR arguments,[in] ACTIVATEOPTIONS options,[out] DWORD *processId);
4200 HRESULT ActivateForFile ([in] LPCWSTR appUserModelId,[in] IShellItemArray *itemArray,[in, unique] LPCWSTR verb,[out] DWORD *processId);
4201 HRESULT ActivateForProtocol ([in] LPCWSTR appUserModelId,[in] IShellItemArray *itemArray,[out] DWORD *processId);
4202}
4203cpp_quote("#endif")
4204
4205cpp_quote("")
4206[uuid (50a7e9b1-70ef-11d1-b75a-00a0c90564fe), lcid (0x0000), version (1.0)]
4207library ShellObjects {
4208 [uuid (C2CF3110-460e-4fc1-B9D0-8a1c0c9cc4bd)] coclass DesktopWallpaper { interface IDesktopWallpaper; }
4209 [uuid (00021400-0000-0000-C000-000000000046)] coclass ShellDesktop { interface IShellFolder2; }
4210 [uuid (F3364BA0-65b9-11ce-A9BA-00aa004ae837)] coclass ShellFSFolder { interface IShellFolder2; }
4211 [uuid (208d2c60-3aea-1069-A2D7-08002b30309d)] coclass NetworkPlaces { interface IShellFolder2; }
4212 [uuid (00021401-0000-0000-C000-000000000046)] coclass ShellLink { interface IShellLinkW; }
4213 [uuid (331f1768-05a9-4ddd-B86E-DAE34DDC998A)] coclass QueryCancelAutoPlay { interface IQueryCancelAutoPlay; }
4214 [uuid (94357b53-CA29-4b78-83ae-E8FE7409134F)] coclass DriveSizeCategorizer { interface ICategorizer; }
4215 [uuid (B0A8F3CF-4333-4bab-8873-1ccb1cada48b)] coclass DriveTypeCategorizer { interface ICategorizer; }
4216 [uuid (B5607793-24ac-44c7-82e2-831726aa6cb7)] coclass FreeSpaceCategorizer { interface ICategorizer; }
4217 [uuid (3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe)] coclass TimeCategorizer { interface ICategorizer; }
4218 [uuid (55d7b852-f6d1-42f2-aa75-8728a1b2d264)] coclass SizeCategorizer { interface ICategorizer; }
4219 [uuid (3c2654c6-7372-4f6b-b310-55d6128f49d2)] coclass AlphabeticalCategorizer { interface ICategorizer; }
4220 [uuid (8e827c11-33e7-4bc1-b242-8cd9a1c2b304)] coclass MergedCategorizer { interface ICategorizer; }
4221 [uuid (7ab770c7-0e23-4d7a-8aa2-19bfad479829)] coclass ImageProperties { interface IPersistFile; }
4222 [uuid (d912f8cf-0396-4915-884e-fb425d32943b)] coclass PropertiesUI { interface IPropertyUI; }
4223 [uuid (0010890e-8789-413c-adbc-48f5b511b3af)] coclass UserNotification { interface IUserNotification; }
4224 [uuid (fbeb8a05-beee-4442-804e-409d6c4515e9)] coclass CDBurn { interface ICDBurn; }
4225 [uuid (56fdf344-FD6D-11d0-958a-006097c9a090)] coclass TaskbarList { interface ITaskbarList4; }
4226 [uuid (a2a9545d-a0c2-42b4-9708-a0b2badd77c8)] coclass StartMenuPin { interface IStartMenuPinnedList; }
4227 [uuid (c827f149-55c1-4d28-935e-57e47caed973)] coclass WebWizardHost { interface IWebWizardExtension; }
4228 [uuid (CC6EEFFB-43f6-46c5-9619-51d571967f7d)] coclass PublishDropTarget { interface IDropTarget; }
4229 [uuid (6b33163c-76a5-4b6c-bf21-45de9cd503a1)] coclass PublishingWizard { interface IPublishingWizard; }
4230 cpp_quote("#define SID_PublishingWizard CLSID_PublishingWizard")
4231 [uuid (add36aa8-751a-4579-a266-d66f5202ccbb)] coclass InternetPrintOrdering { interface IDropTarget; }
4232 [uuid (20b1cb23-6968-4eb9-b7d4-a66d00d07cee)] coclass FolderViewHost { interface IFolderViewHost; }
4233 [uuid (71f96385-ddd6-48d3-a0c1-ae06e8b055fb)] coclass ExplorerBrowser { interface IExplorerBrowser; }
4234 [uuid (6e33091c-d2f8-4740-b55e-2e11d1477a2c)] coclass ImageRecompress { interface IImageRecompress; }
4235 [uuid (F60AD0A0-E5E1-45cb-B51A-E15B9F8B2934)] coclass TrayBandSiteService { interface IBandSite; }
4236 [uuid (E6442437-6c68-4f52-94dd-2cfed267efb9)] coclass TrayDeskBand { interface ITrayDeskBand; }
4237 [uuid (4125dd96-e03a-4103-8f70-e0597d803b9c)] coclass AttachmentServices { interface IAttachmentExecute; }
4238 [uuid (883373c3-BF89-11d1-BE35-080036b11a03)] coclass DocPropShellExtension { interface IShellExtInit; }
4239 [uuid (9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917)] coclass ShellItem { interface IShellItem2; }
4240 [uuid (72eb61e0-8672-4303-9175-f2e4c68b2e7c)] coclass NamespaceWalker { interface INamespaceWalk; }
4241 [uuid (3ad05575-8857-4850-9277-11b85bdb8e09)] coclass FileOperation { interface IFileOperation; }
4242 [uuid (DC1C5A9C-E88A-4dde-A5A1-60f82a20aef7)] coclass FileOpenDialog { interface IFileOpenDialog; }
4243 [uuid (C0B4E2F3-BA21-4773-8dba-335ec946eb8b)] coclass FileSaveDialog { interface IFileSaveDialog; }
4244 [uuid (4df0c730-df9d-4ae3-9153-aa6b82e9795a)] coclass KnownFolderManager { interface IKnownFolderManager; }
4245 [uuid (D197380A-0a79-4dc8-A033-ED882C2FA14B)] coclass FSCopyHandler { interface IUnknown; }
4246 [uuid (49f371e1-8c5c-4d9c-9a3b-54a6827f513c)] coclass SharingConfigurationManager { interface ISharingConfigurationManager; }
4247 [uuid (596ab062-B4D2-4215-9f74-E9109B0A8153)] coclass PreviousVersions { interface IPreviousVersionsInfo; }
4248 [uuid (7007acc7-3202-11d1-AAD2-00805fc1270e)] coclass NetworkConnections { interface IShellFolder2; }
4249 [uuid (AE054212-3535-4430-83ed-D501AA6680E6)] coclass NamespaceTreeControl { interface INameSpaceTreeControl2; }
4250 [uuid (ACE52D03-E5CD-4b20-82ff-E71B11BEAE1D)] coclass IENamespaceTreeControl { interface IUnknown; }
4251 [uuid (D6277990-4c6a-11cf-8d87-00aa0060f5bf)] coclass ScheduledTasks { interface IShellFolder2; }
4252 [uuid (591209c7-767b-42b2-9fba-44ee4615f2c7)] coclass ApplicationAssociationRegistration { interface IApplicationAssociationRegistration; }
4253 [uuid (1968106d-f3b5-44cf-890e-116fcb9ecef1)] coclass ApplicationAssociationRegistrationUI { interface IApplicationAssociationRegistrationUI; }
4254 [uuid (14010e02-bbbd-41f0-88e3-eda371216584)] coclass SearchFolderItemFactory { interface ISearchFolderItemFactory; }
4255 [uuid (06622d85-6856-4460-8de1-A81921B41C4B)] coclass OpenControlPanel { interface IOpenControlPanel; }
4256 [uuid (9e56be60-C50F-11cf-9a2c-00a0c90a90ce)] coclass MailRecipient { interface IDropTarget; }
4257 [uuid (F02C1A0D-BE21-4350-88b0-7367fc96ef3c)] coclass NetworkExplorerFolder { interface IShellFolder2; }
4258 [uuid (77f10cf0-3db5-4966-b520-b7c54fd35ed6)] coclass DestinationList { interface ICustomDestinationList; }
4259 [uuid (86c14003-4d6b-4ef3-a7b4-0506663b2e68)] coclass ApplicationDestinations { interface IApplicationDestinations; }
4260 [uuid (86bec222-30f2-47e0-9f25-60d11cd75c28)] coclass ApplicationDocumentLists { interface IApplicationDocumentLists; }
4261 [uuid (DE77BA04-3c92-4d11-A1A5-42352a53e0e3)] coclass HomeGroup { interface IHomeGroup; }
4262 [uuid (d9b3211d-e57f-4426-aaef-30a806add397)] coclass ShellLibrary { interface IShellLibrary; }
4263 [uuid (273eb5e7-88b0-4843-bfef-e2c81d43aae5)] coclass AppStartupLink { interface IShellLinkW; }
4264 [uuid (2d3468c1-36a7-43b6-ac24-d3f02fd9607a)] coclass EnumerableObjectCollection { interface IEnumObjects; }
4265 [uuid (924ccc1b-6562-4c85-8657-d177925222b6)] coclass DesktopGadget { interface IDesktopGadget; }
4266 [uuid (29dfa654-A97F-47f0-BF26-9e41fb9488d9)] coclass PlaybackManager { interface IPlaybackManager; }
4267 [uuid (29ce1d46-B481-4aa0-A08A-D3EBC8ACA402)] coclass AccessibilityDockingService { interface IAccessibilityDockingService; }
4268 [uuid (D5120AA3-46ba-44c5-822d-CA8092C1FC72)] coclass FrameworkInputPane { interface IFrameworkInputPane; }
4269 [uuid (c63382be-7933-48d0-9ac8-85fb46be2fdd)] coclass DefFolderMenu { interface IDefaultFolderMenuInitialize; }
4270 [uuid (7e5fe3d9-985f-4908-91f9-EE19F9FD1514)] coclass AppVisibility { interface IAppVisibility; }
4271 [uuid (4ed3a719-CEA8-4bd9-910d-E252F997AFC2)] coclass AppShellVerbHandler { interface IExecuteCommand; }
4272 [uuid (e44e9428-bdbc-4987-a099-40dc8fd255e7)] coclass ExecuteUnknown { interface IExecuteCommand; }
4273 [uuid (B1AEC16F-2383-4852-B0E9-8f0b1dc66b4d)] coclass PackageDebugSettings { interface IPackageDebugSettings; }
4274 [uuid (45ba127d-10a8-46ea-8ab7-56ea9078943c)] coclass ApplicationActivationManager { interface IApplicationActivationManager; }
4275 [uuid (958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b)] coclass ApplicationDesignModeSettings { interface IApplicationDesignModeSettings; }
4276 [uuid (11dbb47c-a525-400b-9e80-a54615a090c0)] coclass ExecuteFolder { interface IExecuteCommand; }
4277};
4278cpp_quote("")
4279cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
4280cpp_quote(" SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);")
4281cpp_quote(" SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);")
4282cpp_quote("#endif")
4283cpp_quote("")
4284cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
4285cpp_quote("#if _WIN32_IE >= _WIN32_IE_IE70")
4286typedef [v1_enum] enum LIBRARYMANAGEDIALOGOPTIONS {
4287 LMD_DEFAULT = 0x00000000,
4288 LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x00000001
4289} LIBRARYMANAGEDIALOGOPTIONS;
4290cpp_quote("")
4291cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)")
4292cpp_quote("")
4293cpp_quote(" SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);")
4294cpp_quote(" SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);")
4295cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
4296cpp_quote(" __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {")
4297cpp_quote(" return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);")
4298cpp_quote(" }")
4299cpp_quote("")
4300cpp_quote(" __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {")
4301cpp_quote(" IShellLibrary *plib;")
4302cpp_quote(" HRESULT hr;")
4303cpp_quote("")
4304cpp_quote(" *ppv = NULL;")
4305cpp_quote(" hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));")
4306cpp_quote(" if (SUCCEEDED(hr)) {")
4307cpp_quote(" hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);")
4308cpp_quote(" if (SUCCEEDED(hr))")
4309cpp_quote(" hr = plib->QueryInterface(riid, ppv);")
4310cpp_quote(" plib->Release();")
4311cpp_quote(" }")
4312cpp_quote(" return hr;")
4313cpp_quote(" }")
4314cpp_quote("")
4315cpp_quote(" __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {")
4316cpp_quote(" IShellLibrary *plib;")
4317cpp_quote(" HRESULT hr;")
4318cpp_quote("")
4319cpp_quote(" *ppv = NULL;")
4320cpp_quote(" hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));")
4321cpp_quote(" if (SUCCEEDED(hr)) {")
4322cpp_quote(" hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);")
4323cpp_quote(" if (SUCCEEDED(hr))")
4324cpp_quote(" hr = plib->QueryInterface(riid, ppv);")
4325cpp_quote(" plib->Release();")
4326cpp_quote(" }")
4327cpp_quote(" return hr;")
4328cpp_quote(" }")
4329cpp_quote("")
4330cpp_quote(" __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {")
4331cpp_quote(" IShellItem *psiLibrary;")
4332cpp_quote(" HRESULT hr;")
4333cpp_quote("")
4334cpp_quote(" *ppv = NULL;")
4335cpp_quote(" hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));")
4336cpp_quote(" if (SUCCEEDED(hr)) {")
4337cpp_quote(" hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);")
4338cpp_quote(" psiLibrary->Release();")
4339cpp_quote(" }")
4340cpp_quote(" return hr;")
4341cpp_quote(" }")
4342cpp_quote("")
4343cpp_quote(" __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {")
4344cpp_quote(" IShellItem *psiFolder;")
4345cpp_quote(" HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));")
4346cpp_quote("")
4347cpp_quote(" if (SUCCEEDED(hr)) {")
4348cpp_quote(" hr = plib->AddFolder(psiFolder);")
4349cpp_quote(" psiFolder->Release();")
4350cpp_quote(" }")
4351cpp_quote(" return hr;")
4352cpp_quote(" }")
4353cpp_quote("")
4354cpp_quote(" __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {")
4355cpp_quote(" PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);")
4356cpp_quote(" HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;")
4357cpp_quote("")
4358cpp_quote(" if (SUCCEEDED(hr)) {")
4359cpp_quote(" IShellItem *psiFolder;")
4360cpp_quote("")
4361cpp_quote(" hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));")
4362cpp_quote(" if (SUCCEEDED(hr)) {")
4363cpp_quote(" hr = plib->RemoveFolder(psiFolder);")
4364cpp_quote(" psiFolder->Release();")
4365cpp_quote(" }")
4366cpp_quote(" CoTaskMemFree(pidlFolder);")
4367cpp_quote(" }")
4368cpp_quote(" return hr;")
4369cpp_quote(" }")
4370cpp_quote("")
4371cpp_quote(" __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {")
4372cpp_quote(" *ppszResolvedPath = NULL;")
4373cpp_quote(" PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);")
4374cpp_quote(" HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;")
4375cpp_quote(" if (SUCCEEDED(hr)) {")
4376cpp_quote(" IShellItem *psiFolder;")
4377cpp_quote("")
4378cpp_quote(" hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));")
4379cpp_quote(" if (SUCCEEDED(hr)) {")
4380cpp_quote(" IShellItem *psiResolved;")
4381cpp_quote("")
4382cpp_quote(" hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));")
4383cpp_quote(" if (SUCCEEDED(hr)) {")
4384cpp_quote(" hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);")
4385cpp_quote(" psiResolved->Release();")
4386cpp_quote(" }")
4387cpp_quote(" psiFolder->Release();")
4388cpp_quote(" }")
4389cpp_quote(" CoTaskMemFree(pidlFolder);")
4390cpp_quote(" }")
4391cpp_quote(" return hr;")
4392cpp_quote(" }")
4393cpp_quote("")
4394cpp_quote(" __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {")
4395cpp_quote(" IShellItem *psiFolder;")
4396cpp_quote(" HRESULT hr;")
4397cpp_quote("")
4398cpp_quote(" if (ppszSavedToPath)")
4399cpp_quote(" *ppszSavedToPath = NULL;")
4400cpp_quote(" hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));")
4401cpp_quote(" if (SUCCEEDED(hr)) {")
4402cpp_quote(" IShellItem *psiSavedTo;")
4403cpp_quote("")
4404cpp_quote(" hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);")
4405cpp_quote(" if (SUCCEEDED(hr)) {")
4406cpp_quote(" if (ppszSavedToPath)")
4407cpp_quote(" hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);")
4408cpp_quote(" psiSavedTo->Release();")
4409cpp_quote(" }")
4410cpp_quote(" psiFolder->Release();")
4411cpp_quote(" }")
4412cpp_quote(" return hr;")
4413cpp_quote(" }")
4414cpp_quote("#endif")
4415cpp_quote("#endif")
4416cpp_quote("#endif")
4417
4418cpp_quote("")
4419cpp_quote("#if NTDDI_VERSION >= NTDDI_VISTA")
4420[object, local, uuid (92218cab-ECAA-4335-8133-807fd234c2ee), pointer_default (unique)]
4421interface IAssocHandlerInvoker : IUnknown {
4422 HRESULT SupportsSelection ();
4423 HRESULT Invoke ();
4424}
4425
4426cpp_quote("")
4427[object, local, uuid (F04061AC-1659-4a3f-A954-775aa57fc083), pointer_default (unique)]
4428interface IAssocHandler : IUnknown {
4429 HRESULT GetName ([string, out] LPWSTR *ppsz);
4430 HRESULT GetUIName ([string, out] LPWSTR *ppsz);
4431 HRESULT GetIconLocation ([string, out] LPWSTR *ppszPath,[out] int *pIndex);
4432 HRESULT IsRecommended ();
4433 HRESULT MakeDefault ([in, string] LPCWSTR pszDescription);
4434 HRESULT Invoke ([in] IDataObject *pdo);
4435 HRESULT CreateInvoker ([in] IDataObject *pdo,[out] IAssocHandlerInvoker **ppInvoker);
4436}
4437
4438cpp_quote("")
4439[object, local, uuid (973810ae-9599-4b88-9e4d-6ee98c9552da), pointer_default (unique)]
4440interface IEnumAssocHandlers : IUnknown {
4441 HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] IAssocHandler **rgelt,[out] ULONG *pceltFetched);
4442}
4443
4444cpp_quote("")
4445typedef enum ASSOC_FILTER {
4446 ASSOC_FILTER_NONE = 0x0,
4447 ASSOC_FILTER_RECOMMENDED = 0x1
4448} ASSOC_FILTER;
4449
4450cpp_quote("")
4451cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)")
4452cpp_quote("")
4453cpp_quote(" SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);")
4454cpp_quote("#endif")
4455
4456cpp_quote("")
4457cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN7")
4458cpp_quote("SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);")
4459cpp_quote("#endif")
4460cpp_quote("")
4461cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN8")
4462[object, uuid (3d25f6d6-4b2a-433c-9184-7c33ad35d001), pointer_default (unique)]
4463interface IDataObjectProvider : IUnknown {
4464 HRESULT GetDataObject ([out] IDataObject **dataObject);
4465 [local] HRESULT SetDataObject ([in] IDataObject *dataObject);
4466}
4467
4468cpp_quote("")
4469[object, uuid (3a3dcd6c-3eab-43dc-BCDE-45671ce800c8), pointer_default (unique)]
4470interface IDataTransferManagerInterop : IUnknown {
4471 HRESULT GetForWindow ([in] HWND appWindow,[in] REFIID riid,[out, retval, iid_is (riid)] void **dataTransferManager);
4472 HRESULT ShowShareUIForWindow ([in] HWND appWindow);
4473}
4474
4475cpp_quote("")
4476[object, uuid (226c537b-1e76-4d9e-A760-33db29922f18)]
4477interface IFrameworkInputPaneHandler : IUnknown {
4478 HRESULT Showing ([in] RECT *prcInputPaneScreenLocation,[in] BOOL fEnsureFocusedElementInView);
4479 HRESULT Hiding ([in] BOOL fEnsureFocusedElementInView);
4480}
4481
4482cpp_quote("")
4483[object, uuid (5752238b-24f0-495a-82f1-2fd593056796)]
4484interface IFrameworkInputPane : IUnknown {
4485 HRESULT Advise ([in] IUnknown *pWindow,[in] IFrameworkInputPaneHandler *pHandler,[out] DWORD *pdwCookie);
4486 HRESULT AdviseWithHWND ([in] HWND hwnd,[in] IFrameworkInputPaneHandler *pHandler,[out] DWORD *pdwCookie);
4487 HRESULT Unadvise ([in] DWORD dwCookie);
4488 HRESULT Location ([out] RECT *prcInputPaneScreenLocation);
4489}
4490
4491cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
4492cpp_quote("")
4493cpp_quote("#ifndef PROP_CONTRACT_DELEGATE")
4494cpp_quote("#define PROP_CONTRACT_DELEGATE L\"ContractDelegate\"")
4495cpp_quote("#endif")
4496cpp_quote("")
4497cpp_quote(" __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {")
4498cpp_quote(" if (hwndDelegate != NULL)")
4499cpp_quote(" SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);")
4500cpp_quote(" else")
4501cpp_quote(" RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);")
4502cpp_quote(" }")
4503cpp_quote("")
4504cpp_quote("#ifndef PROP_CONTRACT_DELEGATE")
4505cpp_quote("#define PROP_CONTRACT_DELEGATE L\"ContractDelegate\"")
4506cpp_quote("#endif")
4507cpp_quote("")
4508cpp_quote(" __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }")
4509cpp_quote("#endif")
4510cpp_quote("#endif")
4511
4512cpp_quote("")
4513cpp_quote("#if NTDDI_VERSION >= NTDDI_WIN8")
4514[object, uuid (08922f8d-243a-49e3-A495-BD4F9CF8AB9E), pointer_default (unique)]
4515interface ISearchableApplication : IUnknown {
4516 HRESULT GetSearchWindow ([out] HWND *hwnd);
4517}
4518
4519cpp_quote("")
4520typedef [v1_enum] enum UNDOCK_REASON {
4521 UR_RESOLUTION_CHANGE = 0,
4522 UR_MONITOR_DISCONNECT = 1
4523} UNDOCK_REASON;
4524
4525cpp_quote("")
4526[object, uuid (157733fd-A592-42e5-B594-248468c5a81b)]
4527interface IAccessibilityDockingServiceCallback : IUnknown {
4528 HRESULT Undocked ([in] UNDOCK_REASON undockReason);
4529}
4530
4531cpp_quote("")
4532[object, uuid (8849dc22-CEDF-4c95-998d-051419dd3f76)]
4533interface IAccessibilityDockingService : IUnknown {
4534 HRESULT GetAvailableSize ([in] HMONITOR hMonitor,[out] UINT *pcxFixed,[out] UINT *pcyMax);
4535 HRESULT DockWindow ([in] HWND hwnd,[in] HMONITOR hMonitor,[in] UINT cyRequested,[in] IAccessibilityDockingServiceCallback *pCallback);
4536 HRESULT UndockWindow ([in] HWND hwnd);
4537}
4538
4539cpp_quote("")
4540typedef [v1_enum] enum MONITOR_APP_VISIBILITY {
4541 MAV_UNKNOWN = 0,
4542 MAV_NO_APP_VISIBLE = 1,
4543 MAV_APP_VISIBLE = 2
4544} MONITOR_APP_VISIBILITY;
4545
4546cpp_quote("")
4547[object, uuid (6584ce6b-7d82-49c2-89c9-C6BC02BA8C38)]
4548interface IAppVisibilityEvents: IUnknown {
4549 HRESULT AppVisibilityOnMonitorChanged ([in] HMONITOR hMonitor,[in] MONITOR_APP_VISIBILITY previousMode,[in] MONITOR_APP_VISIBILITY currentMode);
4550 HRESULT LauncherVisibilityChange ([in] BOOL currentVisibleState);
4551}
4552
4553cpp_quote("")
4554[object, uuid (2246ea2d-CAEA-4444-A3C4-6de827e44313)]
4555interface IAppVisibility : IUnknown {
4556 HRESULT GetAppVisibilityOnMonitor ([in] HMONITOR hMonitor,[out] MONITOR_APP_VISIBILITY *pMode);
4557 HRESULT IsLauncherVisible ([out] BOOL *pfVisible);
4558 HRESULT Advise ([in] IAppVisibilityEvents *pCallback,[out] DWORD *pdwCookie);
4559 HRESULT Unadvise ([in] DWORD dwCookie);
4560}
4561
4562cpp_quote("")
4563cpp_quote("#if 0")
4564typedef WCHAR *PZZWSTR;
4565cpp_quote("#endif")
4566
4567cpp_quote("")
4568typedef [v1_enum] enum PACKAGE_EXECUTION_STATE {
4569 PES_UNKNOWN = 0,
4570 PES_RUNNING = 1,
4571 PES_SUSPENDING = 2,
4572 PES_SUSPENDED = 3,
4573 PES_TERMINATED = 4
4574} PACKAGE_EXECUTION_STATE;
4575
4576cpp_quote("")
4577[object, uuid (1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b)]
4578interface IPackageExecutionStateChangeNotification : IUnknown {
4579 HRESULT OnStateChanged ([in, string] LPCWSTR pszPackageFullName,[in] PACKAGE_EXECUTION_STATE pesNewState);
4580}
4581
4582cpp_quote("")
4583[object, local, uuid (F27C3930-8029-4ad1-94e3-3dba417810c1)]
4584interface IPackageDebugSettings : IUnknown {
4585 HRESULT EnableDebugging ([in] LPCWSTR packageFullName,[in] LPCWSTR debuggerCommandLine,[in] PZZWSTR environment);
4586 HRESULT DisableDebugging ([in] LPCWSTR packageFullName);
4587 HRESULT Suspend ([in] LPCWSTR packageFullName);
4588 HRESULT Resume ([in] LPCWSTR packageFullName);
4589 HRESULT TerminateAllProcesses ([in] LPCWSTR packageFullName);
4590 HRESULT SetTargetSessionId ([in] ULONG sessionId);
4591 HRESULT EnumerateBackgroundTasks ([in] LPCWSTR packageFullName,[out] ULONG *taskCount,[out, size_is (,*taskCount)] LPCGUID *taskIds,[out, size_is (,*taskCount)] LPCWSTR **taskNames);
4592 HRESULT ActivateBackgroundTask ([in] LPCGUID taskId);
4593 HRESULT StartServicing ([in] LPCWSTR packageFullName);
4594 HRESULT StopServicing ([in] LPCWSTR packageFullName);
4595 HRESULT StartSessionRedirection ([in] LPCWSTR packageFullName,[in] ULONG sessionId);
4596 HRESULT StopSessionRedirection ([in] LPCWSTR packageFullName);
4597 HRESULT GetPackageExecutionState ([in] LPCWSTR packageFullName,[out] PACKAGE_EXECUTION_STATE *packageExecutionState);
4598 HRESULT RegisterForPackageStateChanges ([in] LPCWSTR packageFullName,[in] IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,[out] DWORD *pdwCookie);
4599 HRESULT UnregisterForPackageStateChanges ([in] DWORD dwCookie);
4600}
4601
4602cpp_quote("")
4603typedef [v1_enum] enum AHE_TYPE {
4604 AHE_DESKTOP = 0,
4605 AHE_IMMERSIVE = 1
4606} AHE_TYPE;
4607
4608cpp_quote("")
4609[object, uuid (18b21aa9-E184-4ff0-9f5e-F882D03771B3)]
4610interface IExecuteCommandApplicationHostEnvironment : IUnknown {
4611 HRESULT GetValue ([out] AHE_TYPE *pahe);
4612}
4613
4614cpp_quote("")
4615typedef [v1_enum] enum EC_HOST_UI_MODE {
4616 ECHUIM_DESKTOP,
4617 ECHUIM_IMMERSIVE,
4618 ECHUIM_SYSTEM_LAUNCHER
4619} EC_HOST_UI_MODE;
4620
4621cpp_quote("")
4622[object, uuid (4b6832a2-5f04-4c9d-b89d-727a15d103e7)]
4623interface IExecuteCommandHost : IUnknown {
4624 HRESULT GetUIMode ([out] EC_HOST_UI_MODE *pUIMode);
4625}
4626
4627cpp_quote("")
4628cpp_quote("#define SID_ExecuteCommandHost IID_IExecuteCommandHost")
4629
4630cpp_quote("")
4631typedef [v1_enum] enum APPLICATION_VIEW_STATE {
4632 AVS_FULLSCREEN_LANDSCAPE = 0,
4633 AVS_FILLED,
4634 AVS_SNAPPED,
4635 AVS_FULLSCREEN_PORTRAIT
4636} APPLICATION_VIEW_STATE;
4637
4638cpp_quote("")
4639typedef [v1_enum] enum EDGE_GESTURE_KIND {
4640 EGK_TOUCH = 0,
4641 EGK_KEYBOARD,
4642 EGK_MOUSE
4643} EDGE_GESTURE_KIND;
4644
4645cpp_quote("")
4646[object, uuid (2a3dee9a-E31D-46d6-8508-BCC597DB3557)]
4647interface IApplicationDesignModeSettings : IUnknown {
4648 HRESULT SetNativeDisplaySize ([in] SIZE sizeNativeDisplay);
4649 HRESULT SetScaleFactor ([in] DEVICE_SCALE_FACTOR scaleFactor);
4650 HRESULT SetApplicationViewState ([in] APPLICATION_VIEW_STATE viewState);
4651 HRESULT ComputeApplicationSize ([out] SIZE *psizeApplication);
4652 HRESULT IsApplicationViewStateSupported ([in] APPLICATION_VIEW_STATE viewState,[in] SIZE sizeNativeDisplay,[in] DEVICE_SCALE_FACTOR scaleFactor,[out] BOOL *pfSupported);
4653 HRESULT TriggerEdgeGesture ([in] EDGE_GESTURE_KIND edgeGestureKind);
4654}
4655
4656cpp_quote("")
4657[object, uuid (3e68d4bd-7135-4d10-8018-9fb6d9f33fa1), pointer_default (unique)]
4658interface IInitializeWithWindow : IUnknown {
4659 HRESULT Initialize ([in] HWND hwnd);
4660}
4661
4662cpp_quote("")
4663[object, uuid (997706ef-f880-453b-8118-39e1a2d2655a), pointer_default (unique)]
4664interface IHandlerInfo : IUnknown {
4665 HRESULT GetApplicationDisplayName ([out] LPWSTR *value);
4666 HRESULT GetApplicationPublisher ([out] LPWSTR *value);
4667 HRESULT GetApplicationIconReference ([out] LPWSTR *value);
4668}
4669
4670cpp_quote("")
4671[object, uuid (35094a87-8bb1-4237-96c6-c417eebdb078), pointer_default (unique)]
4672interface IHandlerActivationHost : IUnknown {
4673 HRESULT BeforeCoCreateInstance ([in] REFCLSID clsidHandler,[in] IShellItemArray *itemsBeingActivated,[in] IHandlerInfo *handlerInfo);
4674 HRESULT BeforeCreateProcess ([in] LPCWSTR applicationPath,[in] LPCWSTR commandLine,[in] IHandlerInfo *handlerInfo);
4675}
4676
4677cpp_quote("")
4678cpp_quote("#define SID_SHandlerActivationHost IID_IHandlerActivationHost")
4679cpp_quote("")
4680cpp_quote("DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);")
4681cpp_quote("#endif")
4682cpp_quote("")
4683cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.