VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/shobjidl.idl@ 96080

最後變更 在這個檔案從96080是 53206,由 vboxsync 提交於 10 年 前

Devices/vmsvga: header fixes

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 90.8 KB
 
1/*
2 * COM interfaces for shell objects
3 *
4 * Copyright (C) 1999 Juergen Schmied
5 * Copyright (C) 2003 Alexandre Julliard
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22/*
23 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
24 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
25 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
26 * a choice of LGPL license versions is made available with the language indicating
27 * that LGPLv2 or any later version may be used, or where a choice of which version
28 * of the LGPL is applied is otherwise unspecified.
29 */
30
31import "objidl.idl";
32import "oleidl.idl";
33import "oaidl.idl";
34import "docobj.idl";
35import "shtypes.idl";
36import "servprov.idl";
37import "comcat.idl";
38import "propidl.idl";
39/* FIXME: import "prsht.idl";*/
40import "msxml.idl";
41import "wtypes.idl";
42import "propsys.idl";
43import "objectarray.idl";
44/* FIXME: import "structuredquery.idl"; */
45
46cpp_quote("/* FIXME: #include <sherrors.h> */")
47
48
49/*****************************************************************************
50 * IPersistFolder interface
51 */
52[
53 object,
54 uuid(000214ea-0000-0000-c000-000000000046),
55 pointer_default(unique)
56]
57interface IPersistFolder : IPersist
58{
59 typedef IPersistFolder *LPPERSISTFOLDER;
60
61 HRESULT Initialize( [in] LPCITEMIDLIST pidl );
62}
63
64
65/*****************************************************************************
66 * IPersistFolder2 interface
67 */
68[
69 object,
70 uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f),
71 pointer_default(unique)
72]
73interface IPersistFolder2 : IPersistFolder
74{
75 typedef IPersistFolder2 *LPPERSISTFOLDER2;
76
77 HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl );
78}
79
80
81/*****************************************************************************
82 * IPersistIDList interface
83 */
84[
85 object,
86 uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5),
87 pointer_default(unique)
88]
89interface IPersistIDList : IPersist
90{
91 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
92 HRESULT GetIDList( [out] LPITEMIDLIST *ppidl );
93}
94
95
96/*****************************************************************************
97 * IEnumIDList interface
98 */
99[
100 object,
101 uuid(000214f2-0000-0000-c000-000000000046),
102 pointer_default(unique)
103]
104interface IEnumIDList : IUnknown
105{
106 typedef IEnumIDList *LPENUMIDLIST;
107
108 HRESULT Next(
109 [in] ULONG celt,
110 [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt,
111 [out] ULONG *pceltFetched);
112
113 HRESULT Skip( [in] ULONG celt );
114 HRESULT Reset();
115 HRESULT Clone( [out] IEnumIDList **ppenum );
116}
117
118/*****************************************************************************
119 * IShellPropSheetExt interface
120 */
121cpp_quote("#if 0")
122 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
123cpp_quote("#else")
124cpp_quote("#include <prsht.h>")
125cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
126cpp_quote("#endif")
127
128[
129 object,
130 uuid(000214E9-0000-0000-C000-000000000046),
131 pointer_default(unique),
132 local
133]
134interface IShellPropSheetExt : IUnknown
135{
136 enum tagSHELLPROPSHEETEXTPAGEID {
137 EXPPS_FILETYPES = 0x1
138 };
139
140 typedef UINT EXPPS;
141
142 HRESULT AddPages(
143 [in] LPFNSVADDPROPSHEETPAGE pfnAddPage,
144 [in] LPARAM lParam);
145 HRESULT ReplacePage(
146 [in] EXPPS uPageID,
147 [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
148 [in] LPARAM lParam);
149}
150typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
151
152/*****************************************************************************
153 * IShellFolder interface
154 */
155[
156 object,
157 uuid(000214e6-0000-0000-c000-000000000046),
158 pointer_default(unique)
159]
160interface IShellFolder : IUnknown
161{
162 typedef IShellFolder * LPSHELLFOLDER;
163
164 typedef enum tagSHGDN
165 {
166 SHGDN_NORMAL = 0,
167 SHGDN_INFOLDER = 1,
168 SHGDN_FOREDITING = 0x1000,
169 SHGDN_INCLUDE_NONFILESYS = 0x2000,
170 SHGDN_FORADDRESSBAR = 0x4000,
171 SHGDN_FORPARSING = 0x8000
172 } SHGNO;
173
174 typedef DWORD SHGDNF;
175
176 enum tagSHCONTF
177 {
178 SHCONTF_FOLDERS = 32,
179 SHCONTF_NONFOLDERS = 64,
180 SHCONTF_INCLUDEHIDDEN = 128,
181 SHCONTF_INIT_ON_FIRST_NEXT = 256,
182 SHCONTF_NETPRINTERSRCH = 512,
183 SHCONTF_SHAREABLE = 1024,
184 SHCONTF_STORAGE = 2048
185 };
186
187 typedef DWORD SHCONTF;
188
189 cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
190 cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
191 cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
192 cpp_quote("#define SFGAO_STORAGE 0x00000008L")
193 cpp_quote("#define SFGAO_CANRENAME 0x00000010L")
194 cpp_quote("#define SFGAO_CANDELETE 0x00000020L")
195 cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L")
196 cpp_quote("#define SFGAO_DROPTARGET 0x00000100L")
197 cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L")
198 cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L")
199 cpp_quote("#define SFGAO_ISSLOW 0x00004000L")
200 cpp_quote("#define SFGAO_GHOSTED 0x00008000L")
201 cpp_quote("#define SFGAO_LINK 0x00010000L")
202 cpp_quote("#define SFGAO_SHARE 0x00020000L")
203 cpp_quote("#define SFGAO_READONLY 0x00040000L")
204 cpp_quote("#define SFGAO_HIDDEN 0x00080000L")
205 cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L")
206 cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L")
207 cpp_quote("#define SFGAO_FOLDER 0x20000000L")
208 cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L")
209 cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L")
210 cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L")
211 cpp_quote("#define SFGAO_VALIDATE 0x01000000L")
212 cpp_quote("#define SFGAO_REMOVABLE 0x02000000L")
213 cpp_quote("#define SFGAO_COMPRESSED 0x04000000L")
214 cpp_quote("#define SFGAO_BROWSABLE 0x08000000L")
215 cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L")
216 cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L")
217 cpp_quote("#define SFGAO_STREAM 0x00400000L")
218 cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L")
219
220 typedef ULONG SFGAOF;
221
222 HRESULT ParseDisplayName(
223 [in] HWND hwndOwner,
224 [in] LPBC pbcReserved,
225 [in, string] LPOLESTR lpszDisplayName,
226 [out] ULONG *pchEaten,
227 [out] LPITEMIDLIST *ppidl,
228 [in, out, unique] ULONG *pdwAttributes);
229
230 HRESULT EnumObjects(
231 [in] HWND hwndOwner,
232 [in] SHCONTF grfFlags,
233 [out] IEnumIDList **ppenumIDList);
234
235 HRESULT BindToObject(
236 [in] LPCITEMIDLIST pidl,
237 [in] LPBC pbcReserved,
238 [in] REFIID riid,
239 [out, iid_is(riid)] void **ppvOut);
240
241 HRESULT BindToStorage(
242 [in] LPCITEMIDLIST pidl,
243 [in] LPBC pbcReserved,
244 [in] REFIID riid,
245 [out, iid_is(riid)] void **ppvObj);
246
247 HRESULT CompareIDs(
248 [in] LPARAM lParam,
249 [in] LPCITEMIDLIST pidl1,
250 [in] LPCITEMIDLIST pidl2);
251
252 HRESULT CreateViewObject(
253 [in] HWND hwndOwner,
254 [in] REFIID riid,
255 [out, iid_is(riid)] void **ppvOut);
256
257 HRESULT GetAttributesOf(
258 [in] UINT cidl,
259 [in, size_is(cidl)] LPCITEMIDLIST *apidl,
260 [in, out] SFGAOF *rgfInOut);
261
262 HRESULT GetUIObjectOf(
263 [in] HWND hwndOwner,
264 [in] UINT cidl,
265 [in, size_is(cidl)] LPCITEMIDLIST *apidl,
266 [in] REFIID riid,
267 [in, out, unique] UINT *prgfInOut,
268 [out, iid_is(riid)] void **ppvOut);
269
270 HRESULT GetDisplayNameOf(
271 [in] LPCITEMIDLIST pidl,
272 [in] SHGDNF uFlags,
273 [out] STRRET *lpName);
274
275 HRESULT SetNameOf(
276 [in] HWND hwnd,
277 [in] LPCITEMIDLIST pidl,
278 [in, string] LPCOLESTR lpszName,
279 [in] SHGDNF uFlags,
280 [out] LPITEMIDLIST *ppidlOut);
281}
282
283
284/*****************************************************************************
285 * IEnumExtraSearch interface
286 */
287[
288 object,
289 uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13),
290 pointer_default(unique)
291]
292interface IEnumExtraSearch : IUnknown
293{
294 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
295
296 typedef struct
297 {
298 GUID guidSearch;
299 WCHAR wszFriendlyName[80];
300 /*
301 *WCHAR wszMenuText[80];
302 *WCHAR wszHelpText[MAX_PATH];
303 */
304 WCHAR wszUrl[2084];
305 /*
306 *WCHAR wszIcon[MAX_PATH+10];
307 *WCHAR wszGreyIcon[MAX_PATH+10];
308 *WCHAR wszClrIcon[MAX_PATH+10];
309 */
310 } EXTRASEARCH, *LPEXTRASEARCH;
311
312 HRESULT Next(
313 [in] ULONG celt,
314 [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt,
315 [out] ULONG *pceltFetched);
316
317 HRESULT Skip( [in] ULONG celt );
318 HRESULT Reset();
319 HRESULT Clone( [out] IEnumExtraSearch **ppenum );
320}
321
322
323/*****************************************************************************
324 * IShellFolder2 interface
325 */
326[
327 object,
328 uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1),
329 pointer_default(unique)
330]
331interface IShellFolder2 : IShellFolder
332{
333 typedef struct
334 {
335 GUID fmtid;
336 DWORD pid;
337 } SHCOLUMNID, *LPSHCOLUMNID;
338 typedef const SHCOLUMNID *LPCSHCOLUMNID;
339
340 HRESULT GetDefaultSearchGUID( [out] GUID *lpguid );
341 HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum );
342 HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay );
343 HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags );
344 HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
345 HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
346 HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
347}
348
349/*****************************************************************************
350 * IShellItem interface
351 */
352[
353 object,
354 uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe),
355 pointer_default(unique)
356]
357interface IShellItem : IUnknown
358{
359 typedef [v1_enum] enum {
360 SIGDN_NORMALDISPLAY = 0,
361 SIGDN_PARENTRELATIVEPARSING = 0x80018001,
362 SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
363 SIGDN_PARENTRELATIVEEDITING = 0x80031001,
364 SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
365 SIGDN_FILESYSPATH = 0x80058000,
366 SIGDN_URL = 0x80068000,
367 SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
368 SIGDN_PARENTRELATIVE = 0x80080001
369 } SIGDN; /* & 0xFFFF => SHGDN */
370
371 [v1_enum] enum _SICHINTF
372 {
373 SICHINT_DISPLAY = 0x00000000,
374 SICHINT_CANONICAL = 0x10000000,
375 SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000,
376 SICHINT_ALLFIELDS = 0x80000000
377 };
378 typedef DWORD SICHINTF;
379
380 HRESULT BindToHandler(
381 [in] IBindCtx *pbc,
382 [in] REFGUID rbhid,
383 [in] REFIID riid,
384 [out, iid_is(riid)] void **ppvOut);
385
386 HRESULT GetParent( [out] IShellItem **ppsi );
387
388 HRESULT GetDisplayName(
389 [in] SIGDN sigdnName,
390 [out] LPWSTR *ppszName);
391
392 HRESULT GetAttributes(
393 [in] SFGAOF sfgaoMask,
394 [out] SFGAOF *psfgaoAttribs);
395
396 HRESULT Compare(
397 [in] IShellItem *psi,
398 [in] SICHINTF hint,
399 [out] int *piOrder);
400}
401
402/*****************************************************************************
403 * IShellItem2 interface
404 */
405[
406 object,
407 uuid(7E9FB0D3-919F-4307-AB2E-9B1860310C93),
408 pointer_default(unique)
409]
410interface IShellItem2 : IShellItem
411{
412 HRESULT GetPropertyStore(
413 [in] GETPROPERTYSTOREFLAGS flags,
414 [in] REFIID riid,
415 [out, iid_is(riid)] void **ppv);
416
417 HRESULT GetPropertyStoreWithCreateObject(
418 [in] GETPROPERTYSTOREFLAGS flags,
419 [in] IUnknown *punkCreateObject,
420 [in] REFIID riid,
421 [out, iid_is(riid)] void **ppv);
422
423 HRESULT GetPropertyStoreForKeys(
424 [in, size_is(cKeys)] const PROPERTYKEY *rgKeys,
425 [in] UINT cKeys,
426 [in] GETPROPERTYSTOREFLAGS flags,
427 [in] REFIID riid,
428 [out, iid_is(riid)] void **ppv);
429
430 HRESULT GetPropertyDescriptionList(
431 [in] REFPROPERTYKEY keyType,
432 [in] REFIID riid,
433 [out, iid_is(riid)] void **ppv);
434
435 HRESULT Update(
436 [in, unique] IBindCtx *pbc);
437
438 HRESULT GetProperty(
439 [in] REFPROPERTYKEY key,
440 [out] PROPVARIANT *ppropvar);
441
442 HRESULT GetCLSID(
443 [in] REFPROPERTYKEY key,
444 [out] CLSID *pclsid);
445
446 HRESULT GetFileTime (
447 [in] REFPROPERTYKEY key,
448 [out] FILETIME *pft);
449
450 HRESULT GetInt32(
451 [in] REFPROPERTYKEY key,
452 [out] int *pi);
453
454 HRESULT GetString(
455 [in] REFPROPERTYKEY key,
456 [out, string] LPWSTR *ppsz);
457
458 HRESULT GetUInt32(
459 [in] REFPROPERTYKEY key,
460 [out] ULONG *pui);
461
462 HRESULT GetUInt64(
463 [in] REFPROPERTYKEY key,
464 [out] ULONGLONG *pull);
465
466 HRESULT GetBool(
467 [in] REFPROPERTYKEY key,
468 [out] BOOL *pf);
469}
470
471typedef enum tagNWMF {
472 NWMF_UNLOADING = 0x0001,
473 NWMF_USERINITED = 0x0002,
474 NWMF_FIRST = 0x0004,
475 NWMF_OVERRIDEKEY = 0x0008,
476 NWMF_SHOWHELP = 0x0010,
477 NWMF_HTMLDIALOG = 0x0020,
478 NWMF_FROMDIALOGCHILD = 0x0040,
479 NWMF_USERREQUESTED = 0x0080,
480 NWMF_USERALLOWED = 0x0100
481} NWMF;
482
483[
484 uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb),
485 object,
486 pointer_default(unique)
487]
488interface INewWindowManager : IUnknown
489{
490 HRESULT EvaluateNewWindow(
491 [in, string] LPCWSTR pszUrl,
492 [in, string] LPCWSTR pszName,
493 [in, string] LPCWSTR pszUrlContext,
494 [in, string] LPCWSTR pszFeatures,
495 [in] BOOL fReplace,
496 [in] DWORD dwFlags,
497 [in] DWORD dwUserActionTime);
498}
499
500cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
501
502/*****************************************************************************
503 * IEnumShellItems interface
504 */
505[
506 object,
507 uuid(70629033-E363-4A28-A567-0DB78006E6D7),
508 pointer_default(unique)
509]
510interface IEnumShellItems : IUnknown
511{
512 [local] HRESULT Next(
513 [in] ULONG celt,
514 [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
515 [out] ULONG *pceltFetched);
516
517 [call_as(Next)] HRESULT RemoteNext(
518 [in] ULONG celt,
519 [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
520 [out] ULONG *pceltFetched);
521
522 HRESULT Skip(
523 [in] ULONG celt);
524
525 HRESULT Reset();
526
527 HRESULT Clone(
528 [out] IEnumShellItems **ppenum);
529}
530
531/*****************************************************************************
532 * IShellItemArray interface
533 */
534[
535 object,
536 uuid(B63EA76D-1F85-456F-A19C-48159EFA858B),
537 pointer_default(unique)
538]
539interface IShellItemArray : IUnknown
540{
541 typedef [v1_enum] enum SIATTRIBFLAGS {
542 SIATTRIBFLAGS_AND = 0x0001,
543 SIATTRIBFLAGS_OR = 0x0002,
544 SIATTRIBFLAGS_APPCOMPAT = 0x0003,
545 SIATTRIBFLAGS_MASK = 0x0003,
546 SIATTRIBFLAGS_ALLITEMS = 0x4000
547 } SIATTRIBFLAGS;
548 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
549
550 HRESULT BindToHandler(
551 [in, unique] IBindCtx *pbc,
552 [in] REFGUID bhid,
553 [in] REFIID riid,
554 [out, iid_is(riid)] void **ppvOut);
555
556 HRESULT GetPropertyStore(
557 [in] GETPROPERTYSTOREFLAGS flags,
558 [in] REFIID riid,
559 [out, iid_is(riid)] void **ppv);
560
561 HRESULT GetPropertyDescriptionList(
562 [in] REFPROPERTYKEY keyType,
563 [in] REFIID riid,
564 [out, iid_is(riid)] void **ppv);
565
566 HRESULT GetAttributes(
567 [in] SIATTRIBFLAGS AttribFlags,
568 [in] SFGAOF sfgaoMask,
569 [out] SFGAOF *psfgaoAttribs);
570
571 HRESULT GetCount(
572 [out] DWORD *pdwNumItems);
573
574 HRESULT GetItemAt(
575 [in] DWORD dwIndex,
576 [out] IShellItem **ppsi);
577
578 HRESULT EnumItems(
579 [out] IEnumShellItems **ppenumShellItems);
580
581}
582
583typedef [v1_enum] enum DATAOBJ_GET_ITEM_FLAGS
584{
585 DOGIF_DEFAULT = 0x0,
586 DOGIF_TRAVERSE_LINK = 0x1,
587 DOGIF_NO_HDROP = 0x2,
588 DOGIF_NO_URL = 0x4,
589 DOGIF_ONLY_IF_ONE = 0x8
590} DATAOBJ_GET_ITEM_FLAGS;
591cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")
592
593cpp_quote("HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);")
594cpp_quote("HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);")
595cpp_quote("HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);")
596cpp_quote("HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);")
597cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);")
598cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
599cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
600cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);")
601cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);")
602
603/*****************************************************************************
604 * IShellItemFilter interface
605 */
606[
607 object,
608 uuid(2659B475-EEB8-48B7-8F07-B378810F48CF),
609 pointer_default(unique)
610]
611interface IShellItemFilter : IUnknown
612{
613 HRESULT IncludeItem(
614 [in] IShellItem *psi);
615
616 HRESULT GetEnumFlagsForItem(
617 [in] IShellItem *psi,
618 [out] SHCONTF *pgrfFlags);
619}
620
621/*****************************************************************************
622 * FOLDERSETTINGS
623 */
624typedef char *LPVIEWSETTINGS;
625
626typedef enum
627{
628 FWF_AUTOARRANGE = 0x00000001,
629 FWF_ABBREVIATEDNAMES = 0x00000002,
630 FWF_SNAPTOGRID = 0x00000004,
631 FWF_OWNERDATA = 0x00000008,
632 FWF_BESTFITWINDOW = 0x00000010,
633 FWF_DESKTOP = 0x00000020,
634 FWF_SINGLESEL = 0x00000040,
635 FWF_NOSUBFOLDERS = 0x00000080,
636 FWF_TRANSPARENT = 0x00000100,
637 FWF_NOCLIENTEDGE = 0x00000200,
638 FWF_NOSCROLL = 0x00000400,
639 FWF_ALIGNLEFT = 0x00000800,
640 FWF_NOICONS = 0x00001000,
641 FWF_SHOWSELALWAYS = 0x00002000,
642 FWF_NOVISIBLE = 0x00004000,
643 FWF_SINGLECLICKACTIVATE = 0x00008000,
644 FWF_NOWEBVIEW = 0x00010000,
645 FWF_HIDEFILENAMES = 0x00020000,
646 FWF_CHECKSELECT = 0x00040000,
647 FWF_NOENUMREFRESH = 0x00080000,
648 FWF_NOGROUPING = 0x00100000,
649 FWF_FULLROWSELECT = 0x00200000,
650 FWF_NOFILTERS = 0x00400000,
651 FWF_NOCOLUMNHEADER = 0x00800000,
652 FWF_NOHEADERINALLVIEWS = 0x01000000,
653 FWF_EXTENDEDTILES = 0x02000000,
654 FWF_TRICHECKSELECT = 0x04000000,
655 FWF_AUTOCHECKSELECT = 0x08000000,
656 FWF_NOBROWSERVIEWSTATE = 0x10000000,
657 FWF_SUBSETGROUPS = 0x20000000,
658 FWF_USESEARCHFOLDER = 0x40000000,
659 FWF_ALLOWRTLREADING = 0x80000000
660} FOLDERFLAGS;
661
662typedef enum
663{
664 FVM_AUTO =-1,
665 FVM_ICON = 1,
666 FVM_FIRST = FVM_ICON,
667 FVM_SMALLICON = 2,
668 FVM_LIST = 3,
669 FVM_DETAILS = 4,
670 FVM_THUMBNAIL = 5,
671 FVM_TILE = 6,
672 FVM_THUMBSTRIP = 7,
673 FVM_CONTENT = 8,
674 FVM_LAST = FVM_CONTENT
675} FOLDERVIEWMODE;
676
677typedef struct
678{
679 UINT ViewMode;
680 UINT fFlags;
681} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
682typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
683
684/*****************************************************************************
685 * IShellIcon interface
686 */
687[
688 uuid(000214e5-0000-0000-c000-000000000046),
689 object,
690 pointer_default(unique)
691]
692interface IShellIcon : IUnknown
693{
694 HRESULT GetIconOf(
695 [in] PCUITEMID_CHILD pidl,
696 [in] UINT flags,
697 [out] int *pIconIndex);
698}
699
700/*****************************************************************************
701 * IShellView interface
702 */
703interface IShellBrowser; /* forward declaration */
704[
705 object,
706 uuid(000214e3-0000-0000-c000-000000000046),
707 pointer_default(unique)
708]
709interface IShellView : IOleWindow
710{
711 typedef IShellView *LPSHELLVIEW;
712
713 cpp_quote("#define SVSI_DESELECT 0x00000000")
714 cpp_quote("#define SVSI_SELECT 0x00000001")
715 cpp_quote("#define SVSI_EDIT 0x00000003")
716 cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004")
717 cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008")
718 cpp_quote("#define SVSI_FOCUSED 0x00000010")
719 cpp_quote("#define SVSI_TRANSLATEPT 0x00000020")
720 cpp_quote("#define SVSI_SELECTIONMARK 0x00000040")
721 cpp_quote("#define SVSI_POSITIONITEM 0x00000080")
722 cpp_quote("#define SVSI_CHECK 0x00000100")
723 cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000")
724
725 typedef UINT SVSIF;
726
727 typedef enum
728 {
729 SVGIO_BACKGROUND = 0x00000000,
730 SVGIO_SELECTION = 0x00000001,
731 SVGIO_ALLVIEW = 0x00000002,
732 SVGIO_CHECKED = 0x00000003,
733 SVGIO_TYPE_MASK = 0x0000000f,
734 SVGIO_FLAG_VIEWORDER = 0x80000000,
735 } SVGIO;
736
737 typedef enum
738 {
739 SVUIA_DEACTIVATE = 0,
740 SVUIA_ACTIVATE_NOFOCUS = 1,
741 SVUIA_ACTIVATE_FOCUS = 2,
742 SVUIA_INPLACEACTIVATE = 3
743 } SVUIA_STATUS;
744
745 HRESULT TranslateAccelerator( [in] MSG *pmsg );
746 HRESULT EnableModeless( [in] BOOL fEnable );
747 HRESULT UIActivate( [in] UINT uState );
748 HRESULT Refresh();
749 HRESULT CreateViewWindow(
750 [in] IShellView *psvPrevious,
751 [in] LPCFOLDERSETTINGS lpfs,
752 [in] IShellBrowser *psb,
753 [out] RECT *prcView,
754 [out] HWND *phWnd);
755
756 HRESULT DestroyViewWindow();
757 HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs );
758
759 [local] HRESULT AddPropertySheetPages(
760 [in] DWORD dwReserved,
761 [in] LPFNSVADDPROPSHEETPAGE pfn,
762 [in] LPARAM lparam);
763
764 HRESULT SaveViewState();
765 HRESULT SelectItem(
766 [in] LPCITEMIDLIST pidlItem,
767 [in] SVSIF uFlags);
768 HRESULT GetItemObject(
769 [in] UINT uItem,
770 [in] REFIID riid,
771 [out, iid_is(riid)] void **ppv);
772}
773
774[
775 object,
776 uuid(88e39e80-3578-11cf-ae69-08002b2e1262),
777 pointer_default(unique)
778]
779interface IShellView2 : IShellView
780{
781 typedef GUID SHELLVIEWID;
782cpp_quote("#include <pshpack8.h>")
783 typedef struct _SV2CVW2_PARAMS
784 {
785 DWORD cbSize;
786 IShellView *psvPrev;
787 LPCFOLDERSETTINGS pfs;
788 IShellBrowser *psbOwner;
789 RECT *prcView;
790 SHELLVIEWID const *pvid;
791 HWND hwndView;
792 } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
793cpp_quote("#include <poppack.h>")
794
795 HRESULT GetView(
796 [in, out] SHELLVIEWID *view_guid,
797 [in] ULONG view_type
798 );
799 HRESULT CreateViewWindow2(
800 [in] LPSV2CVW2_PARAMS view_params
801 );
802 HRESULT HandleRename(
803 [in] LPCITEMIDLIST new_pidl
804 );
805 HRESULT SelectAndPositionItem(
806 [in] LPCITEMIDLIST item,
807 [in] UINT flags,
808 [in] POINT *point
809 );
810}
811
812/*****************************************************************************
813 * IFolderView interface
814 */
815[
816 uuid(cde725b0-ccc9-4519-917e-325d72fab4ce),
817 object,
818 pointer_default(unique)
819]
820interface IFolderView : IUnknown
821{
822 HRESULT GetCurrentViewMode( [out] UINT *mode );
823 HRESULT SetCurrentViewMode( [in] UINT mode );
824 HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv );
825 HRESULT Item(
826 [in] int index,
827 [out] PITEMID_CHILD *ppidl
828 );
829 HRESULT ItemCount(
830 [in] UINT flags,
831 [out] int *items
832 );
833 HRESULT Items(
834 [in] UINT flags,
835 [in] REFIID riid,
836 [out, iid_is(riid)] void **ppv
837 );
838 HRESULT GetSelectionMarkedItem( [out] int *item );
839 HRESULT GetFocusedItem( [out] int *item );
840 HRESULT GetItemPosition(
841 [in] PCUITEMID_CHILD pidl,
842 [out] POINT* ppt
843 );
844 HRESULT GetSpacing( [in, out, unique] POINT* pt );
845 HRESULT GetDefaultSpacing( [out] POINT* pt );
846 HRESULT GetAutoArrange();
847 HRESULT SelectItem(
848 [in] int item,
849 [in] DWORD flags
850 );
851 HRESULT SelectAndPositionItems(
852 [in] UINT cidl,
853 [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
854 [in, unique, size_is(cidl)] POINT* apt,
855 [in] DWORD flags
856 );
857}
858
859/*****************************************************************************
860 * IShellBrowser interface
861 */
862[
863 object,
864 uuid(000214e2-0000-0000-c000-000000000046),
865 pointer_default(unique)
866]
867interface IShellBrowser : IOleWindow
868{
869 typedef IShellBrowser *LPSHELLBROWSER;
870
871cpp_quote("#define SBSP_DEFBROWSER 0x00000000")
872cpp_quote("#define SBSP_SAMEBROWSER 0x00000001")
873cpp_quote("#define SBSP_NEWBROWSER 0x00000002")
874cpp_quote("#define SBSP_DEFMODE 0x00000000")
875cpp_quote("#define SBSP_OPENMODE 0x00000010")
876cpp_quote("#define SBSP_EXPLOREMODE 0x00000020")
877cpp_quote("#define SBSP_HELPMODE 0x00000040")
878cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080")
879cpp_quote("#define SBSP_ABSOLUTE 0x00000000")
880cpp_quote("#define SBSP_RELATIVE 0x00001000")
881cpp_quote("#define SBSP_PARENT 0x00002000")
882cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")
883cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")
884cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
885cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")
886cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")
887cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")
888cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")
889cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")
890cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000")
891cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")
892cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")
893cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
894cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
895cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")
896cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")
897cpp_quote("#define SBSP_REDIRECT 0x40000000")
898cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
899
900cpp_quote("#define FCW_STATUS 0x0001")
901cpp_quote("#define FCW_TOOLBAR 0x0002")
902cpp_quote("#define FCW_TREE 0x0003")
903cpp_quote("#define FCW_INTERNETBAR 0x0006")
904cpp_quote("#define FCW_PROGRESS 0x0008")
905
906cpp_quote("#define FCT_MERGE 0x0001")
907cpp_quote("#define FCT_CONFIGABLE 0x0002")
908cpp_quote("#define FCT_ADDTOEND 0x0004")
909
910cpp_quote("#if 0")
911 typedef LPARAM LPTBBUTTONSB;
912cpp_quote("#else")
913cpp_quote("#include <commctrl.h>")
914cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
915cpp_quote("#endif")
916
917 HRESULT InsertMenusSB(
918 [in] HMENU hmenuShared,
919 [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
920
921 HRESULT SetMenuSB(
922 [in] HMENU hmenuShared,
923 [in] HOLEMENU holemenuReserved,
924 [in] HWND hwndActiveObject);
925
926 HRESULT RemoveMenusSB( [in] HMENU hmenuShared );
927 HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText );
928 HRESULT EnableModelessSB( [in] BOOL fEnable );
929 HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID );
930
931 HRESULT BrowseObject(
932 [in] LPCITEMIDLIST pidl,
933 [in] UINT wFlags);
934
935 HRESULT GetViewStateStream(
936 [in] DWORD grfMode,
937 [out] IStream **ppStrm);
938
939 HRESULT GetControlWindow(
940 [in] UINT id,
941 [out] HWND *phwnd);
942
943 [local] HRESULT SendControlMsg(
944 [in] UINT id,
945 [in] UINT uMsg,
946 [in] WPARAM wParam,
947 [in] LPARAM lParam,
948 [in] LRESULT *pret);
949
950 HRESULT QueryActiveShellView( [out] IShellView **ppshv );
951 HRESULT OnViewWindowActive( [in] IShellView *pshv );
952
953 [local]
954 HRESULT SetToolbarItems(
955 [in] LPTBBUTTONSB lpButtons,
956 [in] UINT nButtons,
957 [in] UINT uFlags);
958}
959
960
961/*****************************************************************************
962 * IShellLinkA interface
963 */
964[
965 object,
966 uuid(000214ee-0000-0000-c000-000000000046),
967 pointer_default(unique)
968]
969interface IShellLinkA : IUnknown
970{
971 typedef enum
972 {
973 SLR_NO_UI = 0x0001,
974 SLR_ANY_MATCH = 0x0002,
975 SLR_UPDATE = 0x0004,
976 SLR_NOUPDATE = 0x0008,
977 SLR_NOSEARCH = 0x0010,
978 SLR_NOTRACK = 0x0020,
979 SLR_NOLINKINFO = 0x0040,
980 SLR_INVOKE_MSI = 0x0080,
981 SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
982 } SLR_FLAGS;
983
984 typedef enum
985 {
986 SLGP_SHORTPATH = 0x0001,
987 SLGP_UNCPRIORITY = 0x0002,
988 SLGP_RAWPATH = 0x0004,
989 } SLGP_FLAGS;
990
991 HRESULT GetPath(
992 [out, size_is(cch)] LPSTR pszFile,
993 [in] int cch,
994 [in, out, unique] WIN32_FIND_DATAA *pfd,
995 [in] DWORD fFlags);
996
997 HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
998
999 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
1000
1001 HRESULT GetDescription(
1002 [out, size_is(cch)] LPSTR pszName,
1003 [in] int cch);
1004
1005 HRESULT SetDescription( [in] LPCSTR pszName );
1006
1007 HRESULT GetWorkingDirectory(
1008 [out, size_is(cch)] LPSTR pszDir,
1009 [in] int cch);
1010
1011 HRESULT SetWorkingDirectory( [in] LPCSTR pszDir );
1012
1013 HRESULT GetArguments(
1014 [out, size_is(cch)] LPSTR pszArgs,
1015 [in] int cch);
1016
1017 HRESULT SetArguments( [in] LPCSTR pszArgs );
1018
1019 HRESULT GetHotkey( [out] WORD *pwHotkey );
1020
1021 HRESULT SetHotkey( [in] WORD wHotkey );
1022
1023 HRESULT GetShowCmd( [out] int *piShowCmd );
1024
1025 HRESULT SetShowCmd( [in] int iShowCmd );
1026
1027 HRESULT GetIconLocation(
1028 [out, size_is(cch)] LPSTR pszIconPath,
1029 [in] int cch,
1030 [out] int *piIcon);
1031
1032 HRESULT SetIconLocation(
1033 [in] LPCSTR pszIconPath,
1034 [in] int iIcon);
1035
1036 HRESULT SetRelativePath(
1037 [in] LPCSTR pszPathRel,
1038 [in] DWORD dwReserved);
1039
1040 HRESULT Resolve(
1041 [in] HWND hwnd,
1042 [in] DWORD fFlags);
1043
1044 HRESULT SetPath( [in] LPCSTR pszFile );
1045}
1046
1047
1048/*****************************************************************************
1049 * IShellLinkW interface
1050 */
1051[
1052 object,
1053 uuid(000214f9-0000-0000-c000-000000000046),
1054 pointer_default(unique)
1055]
1056interface IShellLinkW : IUnknown
1057{
1058 HRESULT GetPath(
1059 [out, size_is(cch)] LPWSTR pszFile,
1060 [in] int cch,
1061 [in, out] WIN32_FIND_DATAW *pfd,
1062 [in] DWORD fFlags);
1063
1064 HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
1065
1066 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
1067
1068 HRESULT GetDescription(
1069 [out, size_is(cch)] LPWSTR pszName,
1070 [in] int cch);
1071
1072 HRESULT SetDescription( [in] LPCWSTR pszName );
1073
1074 HRESULT GetWorkingDirectory(
1075 [out, size_is(cch)] LPWSTR pszDir,
1076 [in] int cch);
1077
1078 HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir );
1079
1080 HRESULT GetArguments(
1081 [out, size_is(cch)] LPWSTR pszArgs,
1082 [in] int cch);
1083
1084 HRESULT SetArguments( [in] LPCWSTR pszArgs );
1085
1086 HRESULT GetHotkey( [out] WORD *pwHotkey );
1087
1088 HRESULT SetHotkey( [in] WORD wHotkey );
1089
1090 HRESULT GetShowCmd( [out] int *piShowCmd );
1091
1092 HRESULT SetShowCmd( [in] int iShowCmd );
1093
1094 HRESULT GetIconLocation(
1095 [out, size_is(cch)] LPWSTR pszIconPath,
1096 [in] int cch,
1097 [out] int *piIcon);
1098
1099 HRESULT SetIconLocation(
1100 [in] LPCWSTR pszIconPath,
1101 [in] int iIcon);
1102
1103 HRESULT SetRelativePath(
1104 [in] LPCWSTR pszPathRel,
1105 [in] DWORD dwReserved);
1106
1107 HRESULT Resolve(
1108 [in] HWND hwnd,
1109 [in] DWORD fFlags);
1110
1111 HRESULT SetPath( [in] LPCWSTR pszFile );
1112}
1113
1114cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)")
1115
1116
1117/*****************************************************************************
1118 * IShellExtInit interface
1119 */
1120[
1121 object,
1122 uuid(000214e8-0000-0000-c000-000000000046),
1123 pointer_default(unique),
1124 local
1125]
1126interface IShellExtInit : IUnknown
1127{
1128 typedef IShellExtInit *LPSHELLEXTINIT;
1129
1130 HRESULT Initialize(
1131 [in] LPCITEMIDLIST pidlFolder,
1132 [in] IDataObject *pdtobj,
1133 [in] HKEY hkeyProgID);
1134}
1135
1136
1137/*******************************************************************************/
1138/* Note: the following interfaces are not in shobjidl.idl under Windows, they */
1139/* are declared directly in shlobj.h. It hopefully won't break anything to put */
1140/* them here anyway. */
1141/*******************************************************************************/
1142
1143#ifndef MAX_PATH
1144#define MAX_PATH 260
1145#endif
1146
1147
1148/*****************************************************************************
1149 * IPersistFolder3 interface
1150 */
1151[
1152 object,
1153 uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf),
1154 pointer_default(unique)
1155]
1156interface IPersistFolder3 : IPersistFolder2
1157{
1158 typedef struct
1159 {
1160 LPITEMIDLIST pidlTargetFolder;
1161 WCHAR szTargetParsingName[MAX_PATH];
1162 WCHAR szNetworkProvider[MAX_PATH];
1163 DWORD dwAttributes;
1164 int csidl;
1165 } PERSIST_FOLDER_TARGET_INFO;
1166
1167 HRESULT InitializeEx(
1168 [in] IBindCtx *pbc,
1169 [in] LPCITEMIDLIST pidlRoot,
1170 [in] const PERSIST_FOLDER_TARGET_INFO *ppfti);
1171
1172 HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti );
1173}
1174
1175
1176/*****************************************************************************
1177 * IExtractIconA interface
1178 */
1179[
1180 object,
1181 uuid(000214eb-0000-0000-c000-000000000046),
1182 pointer_default(unique),
1183 local
1184]
1185interface IExtractIconA : IUnknown
1186{
1187cpp_quote("#define GIL_OPENICON 0x0001")
1188cpp_quote("#define GIL_FORSHELL 0x0002")
1189cpp_quote("#define GIL_ASYNC 0x0020")
1190cpp_quote("#define GIL_DEFAULTICON 0x0040")
1191cpp_quote("#define GIL_FORSHORTCUT 0x0080")
1192
1193cpp_quote("#define GIL_SIMULATEDOC 0x0001")
1194cpp_quote("#define GIL_PERINSTANCE 0x0002")
1195cpp_quote("#define GIL_PERCLASS 0x0004")
1196cpp_quote("#define GIL_NOTFILENAME 0x0008")
1197cpp_quote("#define GIL_DONTCACHE 0x0010")
1198
1199 typedef IExtractIconA *LPEXTRACTICONA;
1200
1201 HRESULT GetIconLocation(
1202 [in] UINT uFlags,
1203 [out, size_is(cchMax)] LPSTR szIconFile,
1204 [in] UINT cchMax,
1205 [out] INT *piIndex,
1206 [out] UINT *pwFlags);
1207
1208 HRESULT Extract(
1209 [in] LPCSTR pszFile,
1210 [in] UINT nIconIndex,
1211 [out] HICON *phiconLarge,
1212 [out] HICON *phiconSmall,
1213 [in] UINT nIconSize );
1214}
1215
1216
1217/*****************************************************************************
1218 * IExtractIconW interface
1219 */
1220[
1221 object,
1222 uuid(000214fa-0000-0000-c000-000000000046),
1223 pointer_default(unique),
1224 local
1225]
1226interface IExtractIconW : IUnknown
1227{
1228 typedef IExtractIconW *LPEXTRACTICONW;
1229
1230 HRESULT GetIconLocation(
1231 [in] UINT uFlags,
1232 [out, size_is(cchMax)] LPWSTR szIconFile,
1233 [in] UINT cchMax,
1234 [out] INT *piIndex,
1235 [out] UINT *pwFlags);
1236
1237 HRESULT Extract(
1238 [in] LPCWSTR pszFile,
1239 [in] UINT nIconIndex,
1240 [out] HICON *phiconLarge,
1241 [out] HICON *phiconSmall,
1242 [in] UINT nIconSize );
1243}
1244
1245cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)")
1246cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)")
1247
1248
1249/*****************************************************************************
1250 * ICommDlgBrowser interface
1251 */
1252[
1253 object,
1254 uuid(000214f1-0000-0000-c000-000000000046),
1255 pointer_default(unique)
1256]
1257interface ICommDlgBrowser : IUnknown
1258{
1259cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")
1260cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")
1261cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")
1262cpp_quote("#define CDBOSC_RENAME 0x00000003")
1263cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
1264
1265 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
1266
1267 HRESULT OnDefaultCommand( [in] IShellView *shv );
1268 HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange );
1269 HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl );
1270}
1271
1272
1273/*****************************************************************************
1274 * ICommDlgBrowser2 interface
1275 */
1276[
1277 object,
1278 uuid(10339516-2894-11D2-9039-00C04F8EEB3E),
1279 pointer_default(unique)
1280]
1281interface ICommDlgBrowser2 : ICommDlgBrowser
1282{
1283
1284 HRESULT Notify(
1285 [in] IShellView *ppshv,
1286 [in] DWORD dwNotifyType);
1287
1288 HRESULT GetDefaultMenuText(
1289 [in] IShellView *ppshv,
1290 [out, string, size_is(cchMax)] LPWSTR pszText,
1291 [in] int cchMax);
1292
1293 HRESULT GetViewFlags(
1294 [out] DWORD *pdwFlags);
1295}
1296
1297
1298/*****************************************************************************
1299 * ICommDlgBrowser3 interface
1300 */
1301[
1302 object,
1303 uuid(C8AD25A1-3294-41EE-8165-71174BD01C57),
1304 pointer_default(unique)
1305]
1306interface ICommDlgBrowser3 : ICommDlgBrowser2
1307{
1308
1309 HRESULT OnColumnClicked(
1310 [in] IShellView *ppshv,
1311 [in] int iColumn);
1312
1313 HRESULT GetCurrentFilter(
1314 [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec,
1315 [in] int cchFileSpec);
1316
1317 HRESULT OnPreviewCreated(
1318 [in] IShellView *ppshv);
1319}
1320
1321/*****************************************************************************
1322 * IDockingWindow interface
1323 */
1324[
1325 object,
1326 uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8)
1327]
1328interface IDockingWindow : IOleWindow
1329{
1330 HRESULT ShowDW(
1331 [in] BOOL fShow);
1332
1333 HRESULT CloseDW(
1334 [in] DWORD dwReserved);
1335
1336 HRESULT ResizeBorderDW(
1337 [in] LPCRECT prcBorder,
1338 [in] IUnknown *punkToolbarSite,
1339 [in] BOOL fReserved);
1340};
1341
1342
1343/*****************************************************************************
1344 * IDockingWindowFrame interface
1345 */
1346[
1347 object,
1348 uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8),
1349 pointer_default(unique),
1350 local
1351]
1352interface IDockingWindowFrame : IOleWindow
1353{
1354cpp_quote("#define DWFRF_NORMAL 0x0000")
1355cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001")
1356cpp_quote("#define DWFAF_HIDDEN 0x0001")
1357
1358 HRESULT AddToolbar(
1359 [in] IUnknown *punkSrc,
1360 [in] LPCWSTR pwszItem,
1361 [in] DWORD dwAddFlags);
1362
1363 HRESULT RemoveToolbar(
1364 [in] IUnknown *punkSrc,
1365 [in] DWORD dwRemoveFlags);
1366
1367 HRESULT FindToolbar(
1368 [in] LPCWSTR pwszItem,
1369 [in] REFIID riid,
1370 [out] LPVOID *ppvObj);
1371}
1372
1373
1374/*****************************************************************************
1375 * IDragSourceHelper interface
1376 */
1377[
1378 object,
1379 uuid(de5bf786-477a-11d2-839d-00c04fd918d0),
1380 pointer_default(unique),
1381 local
1382]
1383interface IDragSourceHelper : IUnknown
1384{
1385 typedef struct
1386 {
1387 SIZE sizeDragImage;
1388 POINT ptOffset;
1389 HBITMAP hbmpDragImage;
1390 COLORREF crColorKey;
1391 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
1392
1393 HRESULT InitializeFromBitmap(
1394 [in] LPSHDRAGIMAGE pshdi,
1395 [in] IDataObject *pDataObject);
1396
1397 HRESULT InitializeFromWindow(
1398 [in] HWND hwnd,
1399 [in] POINT *ppt,
1400 [in] IDataObject *pDataObject);
1401}
1402
1403
1404/*****************************************************************************
1405 * IDropTargetHelper interface
1406 */
1407[
1408 object,
1409 uuid(4657278b-411b-11d2-839a-00c04fd918d0),
1410 pointer_default(unique),
1411 local
1412]
1413interface IDropTargetHelper : IUnknown
1414{
1415 HRESULT DragEnter(
1416 [in] HWND hwndTarget,
1417 [in] IDataObject *pDataObject,
1418 [in] POINT *ppt,
1419 [in] DWORD dwEffect);
1420
1421 HRESULT DragLeave();
1422
1423 HRESULT DragOver(
1424 [in] POINT *ppt,
1425 [in] DWORD dwEffect);
1426
1427 HRESULT Drop(
1428 [in] IDataObject *pDataObject,
1429 [in] POINT *ppt,
1430 [in] DWORD dwEffect);
1431
1432 HRESULT Show( [in] BOOL fShow );
1433}
1434
1435
1436/*****************************************************************************
1437 * IContextMenu interface
1438 */
1439[
1440 object,
1441 uuid(000214e4-0000-0000-c000-000000000046),
1442 pointer_default(unique),
1443 local
1444]
1445interface IContextMenu : IUnknown
1446{
1447cpp_quote("#define CMF_NORMAL 0x00000000")
1448cpp_quote("#define CMF_DEFAULTONLY 0x00000001")
1449cpp_quote("#define CMF_VERBSONLY 0x00000002")
1450cpp_quote("#define CMF_EXPLORE 0x00000004")
1451cpp_quote("#define CMF_NOVERBS 0x00000008")
1452cpp_quote("#define CMF_CANRENAME 0x00000010")
1453cpp_quote("#define CMF_NODEFAULT 0x00000020")
1454cpp_quote("#define CMF_INCLUDESTATIC 0x00000040")
1455cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100")
1456cpp_quote("#define CMF_RESERVED 0xffff0000")
1457
1458cpp_quote("#define GCS_VERBA 0x00000000")
1459cpp_quote("#define GCS_HELPTEXTA 0x00000001")
1460cpp_quote("#define GCS_VALIDATEA 0x00000002")
1461cpp_quote("#define GCS_VERBW 0x00000004")
1462cpp_quote("#define GCS_HELPTEXTW 0x00000005")
1463cpp_quote("#define GCS_VALIDATEW 0x00000006")
1464cpp_quote("#define GCS_UNICODE 0x00000004")
1465cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)")
1466cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)")
1467cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)")
1468
1469cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")
1470cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")
1471cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")
1472cpp_quote("#if defined(__GNUC__)")
1473cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }")
1474cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }")
1475cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }")
1476cpp_quote("#elif defined(_MSC_VER)")
1477cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"")
1478cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"")
1479cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")
1480cpp_quote("#else")
1481cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};")
1482cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};")
1483cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};")
1484cpp_quote("#endif")
1485cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)")
1486cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")
1487cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
1488
1489cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
1490cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
1491cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
1492cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
1493cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
1494cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
1495cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
1496cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
1497cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
1498cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
1499cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
1500cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
1501cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
1502cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")
1503cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS")
1504
1505 typedef IContextMenu *LPCONTEXTMENU;
1506
1507 typedef struct tagCMINVOKECOMMANDINFO
1508 {
1509 DWORD cbSize;
1510 DWORD fMask;
1511 HWND hwnd;
1512 LPCSTR lpVerb;
1513 LPCSTR lpParameters;
1514 LPCSTR lpDirectory;
1515 INT nShow;
1516 DWORD dwHotKey;
1517 HANDLE hIcon;
1518 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
1519
1520 typedef struct tagCMInvokeCommandInfoEx
1521 {
1522 DWORD cbSize;
1523 DWORD fMask;
1524 HWND hwnd;
1525 LPCSTR lpVerb;
1526 LPCSTR lpParameters;
1527 LPCSTR lpDirectory;
1528 INT nShow;
1529 DWORD dwHotKey;
1530 HANDLE hIcon;
1531 LPCSTR lpTitle;
1532 LPCWSTR lpVerbW;
1533 LPCWSTR lpParametersW;
1534 LPCWSTR lpDirectoryW;
1535 LPCWSTR lpTitleW;
1536 POINT ptInvoke;
1537 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
1538
1539 HRESULT QueryContextMenu(
1540 [in] HMENU hmenu,
1541 [in] UINT indexMenu,
1542 [in] UINT idCmdFirst,
1543 [in] UINT idCmdLast,
1544 [in] UINT uFlags);
1545
1546 HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici );
1547
1548 HRESULT GetCommandString(
1549 [in] UINT_PTR idCmd,
1550 [in] UINT uType,
1551 [out] UINT *pwReserved,
1552 [out, size_is(cchMax)] LPSTR pszName,
1553 [in] UINT cchMax);
1554}
1555
1556
1557/*****************************************************************************
1558 * IContextMenu2 interface
1559 */
1560[
1561 object,
1562 uuid(000214f4-0000-0000-c000-000000000046),
1563 pointer_default(unique),
1564 local
1565]
1566interface IContextMenu2 : IContextMenu
1567{
1568 typedef IContextMenu2 *LPCONTEXTMENU2;
1569
1570 HRESULT HandleMenuMsg(
1571 [in] UINT uMsg,
1572 [in] WPARAM wParam,
1573 [in] LPARAM lParam);
1574}
1575
1576
1577/*****************************************************************************
1578 * IContextMenu3 interface
1579 */
1580[
1581 object,
1582 uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719),
1583 pointer_default(unique),
1584 local
1585]
1586interface IContextMenu3 : IContextMenu2
1587{
1588 typedef IContextMenu3 *LPCONTEXTMENU3;
1589
1590 HRESULT HandleMenuMsg2(
1591 [in] UINT uMsg,
1592 [in] WPARAM wParam,
1593 [in] LPARAM lParam,
1594 [out] LRESULT *plResult);
1595}
1596
1597
1598[
1599 object,
1600 uuid(3409e930-5a39-11d1-83fa-00a0c90dc849),
1601 pointer_default(unique),
1602 local
1603]
1604interface IContextMenuCB : IUnknown
1605{
1606 HRESULT CallBack(
1607 [in] IShellFolder *psf,
1608 [in] HWND hwndOwner,
1609 [in] IDataObject *pdtobj,
1610 [in] UINT uMsg,
1611 [in] WPARAM wParam,
1612 [in] LPARAM lParam);
1613}
1614
1615/*****************************************************************************
1616 * IShellExecuteHookA interface
1617 */
1618[
1619 object,
1620 uuid(000214f5-0000-0000-c000-000000000046),
1621 pointer_default(unique),
1622 local
1623]
1624interface IShellExecuteHookA : IUnknown
1625{
1626 cpp_quote("struct _SHELLEXECUTEINFOA;")
1627 HRESULT Execute(
1628 [in, out] struct _SHELLEXECUTEINFOA* pei);
1629}
1630
1631
1632/*****************************************************************************
1633 * IShellExecuteHookW interface
1634 */
1635[
1636 object,
1637 uuid(000214fb-0000-0000-c000-000000000046),
1638 pointer_default(unique),
1639 local
1640]
1641interface IShellExecuteHookW : IUnknown
1642{
1643 cpp_quote("struct _SHELLEXECUTEINFOW;")
1644 HRESULT Execute(
1645 [in, out] struct _SHELLEXECUTEINFOW* pei);
1646}
1647
1648/*****************************************************************************
1649 * IShellLinkDataList interface
1650 */
1651[
1652 object,
1653 uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1),
1654 pointer_default(unique)
1655]
1656interface IShellLinkDataList : IUnknown
1657{
1658 [local] HRESULT AddDataBlock(
1659 [in] void *pDataBlock);
1660 [local] HRESULT CopyDataBlock(
1661 [in] DWORD dwSig,
1662 [out] void **ppDataBlock);
1663 HRESULT RemoveDataBlock(
1664 [in] DWORD dwSig);
1665 HRESULT GetFlags(
1666 [out] DWORD *pdwFlags);
1667 HRESULT SetFlags(
1668 [in] DWORD dwFlags);
1669}
1670
1671
1672/*****************************************************************************
1673 * IResolveShellLink interface
1674 */
1675[
1676 object,
1677 uuid(5cd52983-9449-11d2-963a-00c04f79adf0),
1678 pointer_default(unique)
1679]
1680interface IResolveShellLink : IUnknown
1681{
1682 HRESULT ResolveShellLink(
1683 [in] IUnknown *punk,
1684 [in] HWND hwnd,
1685 [in] DWORD fFlags);
1686}
1687
1688
1689/*****************************************************************************
1690 * IURLSearchHook interface
1691 */
1692[
1693 object,
1694 uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497),
1695 pointer_default(unique),
1696 local
1697]
1698interface IURLSearchHook : IUnknown
1699{
1700 HRESULT Translate(
1701 [in, out] LPWSTR lpwszSearchURL,
1702 [in] DWORD cchBufferSize);
1703}
1704
1705
1706/*****************************************************************************
1707 * ISearchContext interface
1708 */
1709[
1710 object,
1711 uuid(09f656a2-41af-480c-88f7-16cc0d164615),
1712 pointer_default(unique),
1713 local
1714]
1715interface ISearchContext : IUnknown
1716{
1717 HRESULT GetSearchUrl(
1718 [in] BSTR *pbstrSearchUrl);
1719 HRESULT GetSearchText(
1720 [in] BSTR *pbstrSearchText);
1721 HRESULT GetSearchStyle(
1722 [in] BSTR *pdwSearchStyle);
1723}
1724
1725
1726/*****************************************************************************
1727 * IURLSearchHook2 interface
1728 */
1729[
1730 object,
1731 uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0),
1732 pointer_default(unique),
1733 local
1734]
1735interface IURLSearchHook2 : IURLSearchHook
1736{
1737 HRESULT TranslateWithSearchContext(
1738 [in, out] LPWSTR lpwszSearchURL,
1739 [in] DWORD cchBufferSize,
1740 [in] ISearchContext *pSearchContext);
1741}
1742
1743
1744cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")
1745
1746/*****************************************************************************
1747 * INewShortcutHookA interface
1748 */
1749[
1750 object,
1751 uuid(000214e1-0000-0000-c000-000000000046),
1752 pointer_default(unique),
1753 local
1754]
1755interface INewShortcutHookA : IUnknown
1756{
1757 HRESULT SetReferent(
1758 [in] LPCSTR pcszReferent,
1759 [in] HWND hwnd);
1760 HRESULT GetReferent(
1761 [out] LPSTR pcszReferent,
1762 [in] int cchReferent);
1763 HRESULT SetFolder(
1764 [in] LPCSTR pcszReferent);
1765 HRESULT GetFolder(
1766 [out] LPSTR pcszReferent,
1767 [in] int cchFolder);
1768 HRESULT GetName(
1769 [out] LPSTR pszName,
1770 [in] int cchName);
1771 HRESULT GetExtension(
1772 [out] LPSTR pszExtension,
1773 [in] int cchExtension);
1774}
1775
1776
1777/*****************************************************************************
1778 * INewShortcutHookW interface
1779 */
1780[
1781 object,
1782 uuid(000214f7-0000-0000-c000-000000000046),
1783 pointer_default(unique),
1784 local
1785]
1786interface INewShortcutHookW : IUnknown
1787{
1788 HRESULT SetReferent(
1789 [in] LPCWSTR pcszReferent,
1790 [in] HWND hwnd);
1791 HRESULT GetReferent(
1792 [out] LPWSTR pcszReferent,
1793 [in] int cchReferent);
1794 HRESULT SetFolder(
1795 [in] LPCWSTR pcszReferent);
1796 HRESULT GetFolder(
1797 [out] LPWSTR pcszReferent,
1798 [in] int cchFolder);
1799 HRESULT GetName(
1800 [out] LPWSTR pszName,
1801 [in] int cchName);
1802 HRESULT GetExtension(
1803 [out] LPWSTR pszExtension,
1804 [in] int cchExtension);
1805}
1806
1807/*****************************************************************************
1808 * IRunnableTask interface
1809 */
1810[
1811 object,
1812 uuid(85788d00-6807-11d0-b810-00c04fd706ec),
1813 pointer_default(unique),
1814 local
1815]
1816interface IRunnableTask : IUnknown
1817{
1818 HRESULT Run();
1819 HRESULT Kill([in] BOOL fWait);
1820 HRESULT Suspend();
1821 HRESULT Resume();
1822 ULONG IsRunning();
1823}
1824
1825/*****************************************************************************
1826 * IShellChangeNotify interface
1827 */
1828[
1829 object,
1830 uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
1831 pointer_default(unique),
1832 local
1833]
1834interface IShellChangeNotify : IUnknown
1835{
1836 HRESULT OnChange(
1837 [in] LONG lEvent,
1838 [in] LPCITEMIDLIST pidl1,
1839 [in] LPCITEMIDLIST pidl2);
1840}
1841
1842/*****************************************************************************
1843 * IFileSystemBindData interface
1844 */
1845[
1846 object,
1847 uuid(01e18d10-4d8b-11d2-855d-006008059367),
1848 pointer_default(unique),
1849 local
1850]
1851interface IFileSystemBindData : IUnknown
1852{
1853 HRESULT SetFindData(
1854 [in] const WIN32_FIND_DATAW *pfd);
1855 HRESULT GetFindData(
1856 [out] WIN32_FIND_DATAW *pfd);
1857}
1858
1859/*****************************************************************************
1860 * ITaskbarList interface
1861 */
1862[
1863 object,
1864 uuid(56FDF342-FD6D-11d0-958A-006097C9A090),
1865 pointer_default(unique)
1866]
1867interface ITaskbarList : IUnknown
1868{
1869 HRESULT HrInit();
1870
1871 HRESULT AddTab(
1872 [in] HWND hwnd);
1873
1874 HRESULT DeleteTab(
1875 [in] HWND hwnd);
1876
1877 HRESULT ActivateTab(
1878 [in] HWND hwnd);
1879
1880 HRESULT SetActiveAlt(
1881 [in] HWND hwnd);
1882}
1883
1884/*****************************************************************************
1885 * ITaskbarList2 interface
1886 */
1887[
1888 object,
1889 uuid(602D4995-B13A-429B-A66E-1935E44F4317),
1890 pointer_default(unique)
1891]
1892interface ITaskbarList2 : ITaskbarList
1893{
1894 HRESULT MarkFullscreenWindow(
1895 [in] HWND hwnd,
1896 [in] BOOL fullscreen);
1897}
1898
1899cpp_quote("#ifdef MIDL_PASS")
1900typedef IUnknown* HIMAGELIST;
1901cpp_quote("#endif")
1902
1903typedef [v1_enum] enum THUMBBUTTONFLAGS {
1904 THBF_ENABLED = 0x0000,
1905 THBF_DISABLED = 0x0001,
1906 THBF_DISMISSONCLICK = 0x0002,
1907 THBF_NOBACKGROUND = 0x0004,
1908 THBF_HIDDEN = 0x0008,
1909 THBF_NONINTERACTIVE = 0x0010
1910} THUMBBUTTONFLAGS;
1911
1912cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
1913
1914typedef [v1_enum] enum THUMBBUTTONMASK {
1915 THB_BITMAP = 0x0001,
1916 THB_ICON = 0x0002,
1917 THB_TOOLTIP = 0x0004,
1918 THB_FLAGS = 0x0008
1919} THUMBBUTTONMASK;
1920
1921cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
1922
1923cpp_quote("#include <pshpack8.h>")
1924typedef struct THUMBBUTTON {
1925 THUMBBUTTONMASK dwMask;
1926 UINT iId;
1927 UINT iBitmap;
1928 HICON hIcon;
1929 WCHAR szTip[260];
1930 THUMBBUTTONFLAGS dwFlags;
1931} THUMBBUTTON, *LPTHUMBBUTTON;
1932cpp_quote("#include <poppack.h>")
1933
1934[
1935 uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
1936 object
1937]
1938interface ITaskbarList3 : ITaskbarList2
1939{
1940 typedef [v1_enum] enum TBPFLAG {
1941 TBPF_NOPROGRESS = 0x0000,
1942 TBPF_INDETERMINATE = 0x0001,
1943 TBPF_NORMAL = 0x0002,
1944 TBPF_ERROR = 0x0004,
1945 TBPF_PAUSED = 0x0008
1946 } TBPFLAG;
1947
1948 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
1949
1950 HRESULT SetProgressValue(
1951 [in] HWND hwnd,
1952 [in] ULONGLONG ullCompleted,
1953 [in] ULONGLONG ullTotal);
1954
1955 HRESULT SetProgressState(
1956 [in] HWND hwnd,
1957 [in] TBPFLAG tbpFlags);
1958
1959 HRESULT RegisterTab(
1960 [in] HWND hwndTab,
1961 [in] HWND hwndMDI);
1962
1963 HRESULT UnregisterTab([in] HWND hwndTab);
1964
1965 HRESULT SetTabOrder(
1966 [in] HWND hwndTab,
1967 [in] HWND hwndInsertBefore);
1968
1969 HRESULT SetTabActive(
1970 [in] HWND hwndTab,
1971 [in] HWND hwndMDI,
1972 [in] DWORD dwReserved);
1973
1974 HRESULT ThumbBarAddButtons(
1975 [in] HWND hwnd,
1976 [in] UINT cButtons,
1977 [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
1978
1979 HRESULT ThumbBarUpdateButtons(
1980 [in] HWND hwnd,
1981 [in] UINT cButtons,
1982 [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
1983
1984 HRESULT ThumbBarSetImageList(
1985 [in] HWND hwnd,
1986 [in] HIMAGELIST himl);
1987
1988 HRESULT SetOverlayIcon(
1989 [in] HWND hwnd,
1990 [in] HICON hIcon,
1991 [in, unique, string] LPCWSTR pszDescription);
1992
1993 HRESULT SetThumbnailTooltip(
1994 [in] HWND hwnd,
1995 [in, unique, string] LPCWSTR pszTip);
1996
1997 HRESULT SetThumbnailClip(
1998 [in] HWND hwnd,
1999 [in] RECT *prcClip);
2000}
2001
2002[
2003 uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a),
2004 object
2005]
2006interface ITaskbarList4 : ITaskbarList3
2007{
2008 typedef [v1_enum] enum STPFLAG {
2009 STPF_NONE = 0x0000,
2010 STPF_USEAPPTHUMBNAILALWAYS = 0x0001,
2011 STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002,
2012 STPF_USEAPPPEEKALWAYS = 0x0004,
2013 STPF_USEAPPPEEKWHENACTIVE = 0x0008
2014 } STPFLAG;
2015
2016 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
2017
2018 HRESULT SetTabProperties(
2019 [in] HWND hwndTab,
2020 [in] STPFLAG stpFlags);
2021}
2022
2023/*****************************************************************************
2024 * IAutoCompleteDropDown interface
2025 */
2026[
2027 object,
2028 uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
2029 pointer_default(unique)
2030]
2031interface IAutoCompleteDropDown : IUnknown
2032{
2033cpp_quote("#define ACDD_VISIBLE 0x0001")
2034
2035 HRESULT GetDropDownStatus(
2036 [out] DWORD *pdwFlags,
2037 [out, string] LPWSTR *ppwszString);
2038
2039 HRESULT ResetEnumerator();
2040}
2041
2042[
2043 object,
2044 uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
2045 pointer_default(unique)
2046]
2047interface IProfferService : IUnknown
2048{
2049 HRESULT ProfferService(
2050 [in] REFGUID service,
2051 [in] IServiceProvider *pService,
2052 [out] DWORD *pCookie);
2053
2054 HRESULT RevokeService([in] DWORD cookie);
2055}
2056
2057/*****************************************************************************
2058 * IExplorerBrowserEvents interface
2059 */
2060[
2061 object,
2062 uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F)
2063]
2064interface IExplorerBrowserEvents : IUnknown
2065{
2066 HRESULT OnNavigationPending(
2067 [in] PCIDLIST_ABSOLUTE pidlFolder);
2068
2069 HRESULT OnViewCreated(
2070 [in] IShellView *psv);
2071
2072 HRESULT OnNavigationComplete(
2073 [in] PCIDLIST_ABSOLUTE pidlFolder);
2074
2075 HRESULT OnNavigationFailed(
2076 [in] PCIDLIST_ABSOLUTE pidlFolder);
2077}
2078
2079typedef GUID EXPLORERPANE;
2080typedef EXPLORERPANE *REFEXPLORERPANE;
2081
2082cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
2083
2084/*****************************************************************************
2085 * IExplorerPaneVisibility interface
2086 */
2087[
2088 object,
2089 uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC)
2090]
2091interface IExplorerPaneVisibility : IUnknown
2092{
2093 typedef enum tagEXPLORERPANESTATE {
2094 EPS_DONTCARE = 0x0,
2095 EPS_DEFAULT_ON = 0x1,
2096 EPS_DEFAULT_OFF = 0x2,
2097 EPS_STATE_MASK = 0xffff,
2098 EPS_INITIALSTATE = 0x10000,
2099 EPS_FORCE = 0x20000
2100 } EXPLORERPANESTATE;
2101
2102 HRESULT GetPaneState(
2103 [in] REFEXPLORERPANE ep,
2104 [out] EXPLORERPANESTATE *peps);
2105}
2106
2107typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS {
2108 EBF_NONE = 0,
2109 EBF_SELECTFROMDATAOBJECT = 0x100,
2110 EBF_NODROPTARGET = 0x200
2111} EXPLORER_BROWSER_FILL_FLAGS;
2112
2113typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS {
2114 EBO_NONE = 0x00,
2115 EBO_NAVIGATEONCE = 0x01,
2116 EBO_SHOWFRAMES = 0x02,
2117 EBO_ALWAYSNAVIGATE = 0x04,
2118 EBO_NOTRAVELLOG = 0x08,
2119 EBO_NOWRAPPERWINDOW = 0x10,
2120 EBO_HTMLSHAREPOINTVIEW = 0x20
2121} EXPLORER_BROWSER_OPTIONS;
2122
2123cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
2124
2125/*****************************************************************************
2126 * IExplorerBrowser interface
2127 */
2128[
2129 object,
2130 uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6),
2131 pointer_default(unique)
2132]
2133interface IExplorerBrowser : IUnknown
2134{
2135
2136 [local] HRESULT Initialize(
2137 [in] HWND hwndParent,
2138 [in] const RECT *prc,
2139 [in, unique] const FOLDERSETTINGS *pfs);
2140
2141 HRESULT Destroy();
2142
2143 [local] HRESULT SetRect(
2144 [in,out,unique] HDWP *phdwp,
2145 [in] RECT rcBrowser);
2146
2147 HRESULT SetPropertyBag(
2148 [in, string] LPCWSTR pszPropertyBag);
2149
2150 HRESULT SetEmptyText(
2151 [in, string] LPCWSTR pszEmptyText);
2152
2153 HRESULT SetFolderSettings(
2154 [in] const FOLDERSETTINGS *pfs);
2155
2156 HRESULT Advise(
2157 [in] IExplorerBrowserEvents *psbe,
2158 [out] DWORD *pdwCookie);
2159
2160 HRESULT Unadvise(
2161 [in] DWORD dwCookie);
2162
2163 HRESULT SetOptions(
2164 [in] EXPLORER_BROWSER_OPTIONS dwFlag);
2165
2166 HRESULT GetOptions(
2167 [out] EXPLORER_BROWSER_OPTIONS *pdwFlag);
2168
2169 HRESULT BrowseToIDList(
2170 [in] PCUIDLIST_RELATIVE pidl,
2171 [in] UINT uFlags);
2172
2173 HRESULT BrowseToObject(
2174 [in] IUnknown *punk,
2175 [in] UINT uFlags);
2176
2177 HRESULT FillFromObject(
2178 [in] IUnknown *punk,
2179 [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
2180
2181 HRESULT RemoveAll();
2182
2183 HRESULT GetCurrentView(
2184 [in] REFIID riid,
2185 [out, iid_is(riid)] void **ppv);
2186}
2187
2188/*****************************************************************************
2189 * INameSpaceTreeControl interface
2190 */
2191[
2192 object,
2193 uuid(028212A3-B627-47E9-8856-C14265554E4F)
2194]
2195interface INameSpaceTreeControl : IUnknown
2196{
2197 [v1_enum] enum _NSTCSTYLE {
2198 NSTCS_HASEXPANDOS = 0x00000001,
2199 NSTCS_HASLINES = 0x00000002,
2200 NSTCS_SINGLECLICKEXPAND = 0x00000004,
2201 NSTCS_FULLROWSELECT = 0x00000008,
2202 NSTCS_SPRINGEXPAND = 0x00000010,
2203 NSTCS_HORIZONTALSCROLL = 0x00000020,
2204 NSTCS_ROOTHASEXPANDO = 0x00000040,
2205 NSTCS_SHOWSELECTIONALWAYS = 0x00000080,
2206 NSTCS_NOINFOTIP = 0x00000200,
2207 NSTCS_EVENHEIGHT = 0x00000400,
2208 NSTCS_NOREPLACEOPEN = 0x00000800,
2209 NSTCS_DISABLEDRAGDROP = 0x00001000,
2210 NSTCS_NOORDERSTREAM = 0x00002000,
2211 NSTCS_RICHTOOLTIP = 0x00004000,
2212 NSTCS_BORDER = 0x00008000,
2213 NSTCS_NOEDITLABELS = 0x00010000,
2214 NSTCS_TABSTOP = 0x00020000,
2215 NSTCS_FAVORITESMODE = 0x00080000,
2216 NSTCS_AUTOHSCROLL = 0x00100000,
2217 NSTCS_FADEINOUTEXPANDOS = 0x00200000,
2218 NSTCS_EMPTYTEXT = 0x00400000,
2219 NSTCS_CHECKBOXES = 0x00800000,
2220 NSTCS_PARTIALCHECKBOXES = 0x01000000,
2221 NSTCS_EXCLUSIONCHECKBOXES = 0x02000000,
2222 NSTCS_DIMMEDCHECKBOXES = 0x04000000,
2223 NSTCS_NOINDENTCHECKS = 0x08000000,
2224 NSTCS_ALLOWJUNCTIONS = 0x10000000,
2225 NSTCS_SHOWTABSBUTTON = 0x20000000,
2226 NSTCS_SHOWDELETEBUTTON = 0x40000000,
2227 NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
2228 };
2229 typedef DWORD NSTCSTYLE;
2230
2231 [v1_enum] enum _NSTCROOTSTYLE {
2232 NSTCRS_VISIBLE = 0x0000,
2233 NSTCRS_HIDDEN = 0x0001,
2234 NSTCRS_EXPANDED = 0x0002
2235 };
2236 typedef DWORD NSTCROOTSTYLE;
2237
2238 [v1_enum] enum _NSTCITEMSTATE {
2239 NSTCIS_NONE = 0x0000,
2240 NSTCIS_SELECTED = 0x0001,
2241 NSTCIS_EXPANDED = 0x0002,
2242 NSTCIS_BOLD = 0x0004,
2243 NSTCIS_DISABLED = 0x0008,
2244 NSTCIS_SELECTEDNOEXPAND = 0x0010
2245 };
2246 typedef DWORD NSTCITEMSTATE;
2247
2248 typedef [v1_enum] enum NSTCGNI {
2249 NSTCGNI_NEXT = 0,
2250 NSTCGNI_NEXTVISIBLE = 1,
2251 NSTCGNI_PREV = 2,
2252 NSTCGNI_PREVVISIBLE = 3,
2253 NSTCGNI_PARENT = 4,
2254 NSTCGNI_CHILD = 5,
2255 NSTCGNI_FIRSTVISIBLE = 6,
2256 NSTCGNI_LASTVISIBLE = 7
2257 } NSTCGNI;
2258
2259 HRESULT Initialize(
2260 [in] HWND hwndParent,
2261 [in, unique] RECT *prc,
2262 [in] NSTCSTYLE nstcsFlags);
2263
2264 HRESULT TreeAdvise(
2265 [in] IUnknown *punk,
2266 [out] DWORD *pdwCookie);
2267
2268 HRESULT TreeUnadvise(
2269 [in] DWORD dwCookie);
2270
2271 HRESULT AppendRoot(
2272 [in] IShellItem *psiRoot,
2273 [in] SHCONTF grfEnumFlags,
2274 [in] NSTCROOTSTYLE grfRootStyle,
2275 [in, unique] IShellItemFilter *pif);
2276
2277 HRESULT InsertRoot(
2278 [in] int iIndex,
2279 [in] IShellItem *psiRoot,
2280 [in] SHCONTF grfEnumFlags,
2281 [in] NSTCROOTSTYLE grfRootStyle,
2282 [in, unique] IShellItemFilter *pif);
2283
2284 HRESULT RemoveRoot(
2285 [in] IShellItem *psiRoot);
2286
2287 HRESULT RemoveAllRoots();
2288
2289 HRESULT GetRootItems(
2290 [out] IShellItemArray **ppsiaRootItems);
2291
2292 HRESULT SetItemState(
2293 [in] IShellItem *psi,
2294 [in] NSTCITEMSTATE nstcisMask,
2295 [in] NSTCITEMSTATE nstcisFlags);
2296
2297 HRESULT GetItemState(
2298 [in] IShellItem *psi,
2299 [in] NSTCITEMSTATE nstcismask,
2300 [out] NSTCITEMSTATE *pnstcisFlags);
2301
2302 HRESULT GetSelectedItems(
2303 [out] IShellItemArray **psiaItems);
2304
2305 HRESULT GetItemCustomState(
2306 [in] IShellItem *psi,
2307 [out] int *piStateNumber);
2308
2309 HRESULT SetItemCustomState(
2310 [in] IShellItem *psi,
2311 [in] int iStateNumber);
2312
2313 HRESULT EnsureItemVisible(
2314 [in] IShellItem *psi);
2315
2316 HRESULT SetTheme(
2317 [in, string] LPCWSTR pszTheme);
2318
2319 HRESULT GetNextItem(
2320 [in, unique] IShellItem *psi,
2321 [in] NSTCGNI nstcgi,
2322 [out] IShellItem **ppsiNext);
2323
2324 HRESULT HitTest(
2325 [in] POINT *ppt,
2326 [out] IShellItem **ppsiOut);
2327
2328 HRESULT GetItemRect(
2329 [in] IShellItem *psi,
2330 [out] RECT *prect);
2331
2332 HRESULT CollapseAll();
2333}
2334
2335/*****************************************************************************
2336 * INameSpaceTreeControl2 interface
2337 */
2338[
2339 object,
2340 uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C)
2341]
2342interface INameSpaceTreeControl2 : INameSpaceTreeControl
2343{
2344 typedef [v1_enum] enum NSTCSTYLE2 {
2345 NSTCS2_DEFAULT = 0x00,
2346 NSTCS2_INTERRUPTNOTIFICATIONS = 0x01,
2347 NSTCS2_SHOWNULLSPACEMENU = 0x02,
2348 NSTCS2_DISPLAYPADDING = 0x04,
2349 NSTCS2_DISPLAYPINNEDONLY = 0x08,
2350 NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */
2351 NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */
2352 } NSTCSTYLE2;
2353 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
2354
2355 HRESULT SetControlStyle(
2356 [in] NSTCSTYLE nstcsMask,
2357 [in] NSTCSTYLE nstcsStyle);
2358
2359 HRESULT GetControlStyle(
2360 [in] NSTCSTYLE nstcsMask,
2361 [out] NSTCSTYLE *pnstcsStyle);
2362
2363 HRESULT SetControlStyle2(
2364 [in] NSTCSTYLE2 nstcsMask,
2365 [in] NSTCSTYLE2 nstcsStyle);
2366
2367 HRESULT GetControlStyle2(
2368 [in] NSTCSTYLE2 nstcsMask,
2369 [out] NSTCSTYLE2 *pnstcsStyle);
2370}
2371
2372/*****************************************************************************
2373 * INameSpaceTreeControlEvents interface
2374 */
2375
2376[
2377 object,
2378 uuid(93D77985-B3D8-4484-8318-672CDDA002CE),
2379 local
2380]
2381interface INameSpaceTreeControlEvents : IUnknown
2382{
2383 [v1_enum] enum _NSTCEHITTEST {
2384 NSTCEHT_NOWHERE = 0x0001,
2385 NSTCEHT_ONITEMICON = 0x0002,
2386 NSTCEHT_ONITEMLABEL = 0x0004,
2387 NSTCEHT_ONITEMIDENT = 0x0008,
2388 NSTCEHT_ONITEMBUTTON = 0x0010,
2389 NSTCEHT_ONITEMRIGHT = 0x0020,
2390 NSTCEHT_ONITEMSTATEICON = 0x0040,
2391 NSTCEHT_ONITEM = 0x0046,
2392 NSTCEHT_ONITEMTABBUTTON = 0x1000
2393 };
2394 typedef DWORD NSTCEHITTEST;
2395
2396 [v1_enum] enum _NSTCECLICKTYPE {
2397 NSTCECT_LBUTTON = 0x1,
2398 NSTCECT_MBUTTON = 0x2,
2399 NSTCECT_RBUTTON = 0x3,
2400 NSTCECT_BUTTON = 0x3,
2401 NSTCECT_DBLCLICK = 0x4
2402 };
2403 typedef DWORD NSTCECLICKTYPE;
2404
2405 HRESULT OnItemClick(
2406 [in] IShellItem *psi,
2407 [in] NSTCEHITTEST nstceHitTest,
2408 [in] NSTCECLICKTYPE nstceClickType);
2409
2410 HRESULT OnPropertyItemCommit(
2411 [in] IShellItem *psi);
2412
2413 HRESULT OnItemStateChanging(
2414 [in] IShellItem *psi,
2415 [in] NSTCITEMSTATE nstcisMask,
2416 [in] NSTCITEMSTATE nstcisState);
2417
2418 HRESULT OnItemStateChanged(
2419 [in] IShellItem *psi,
2420 [in] NSTCITEMSTATE nstcisMask,
2421 [in] NSTCITEMSTATE nstcisState);
2422
2423 HRESULT OnSelectionChanged(
2424 [in] IShellItemArray *psiaSelection);
2425
2426 HRESULT OnKeyboardInput(
2427 [in] UINT uMsg,
2428 [in] WPARAM wParam,
2429 [in] LPARAM lParam);
2430
2431 HRESULT OnBeforeExpand(
2432 [in] IShellItem *psi);
2433
2434 HRESULT OnAfterExpand(
2435 [in] IShellItem *psi);
2436
2437 HRESULT OnBeginLabelEdit(
2438 [in] IShellItem *psi);
2439
2440 HRESULT OnEndLabelEdit(
2441 [in] IShellItem *psi);
2442
2443 HRESULT OnGetToolTip(
2444 [in] IShellItem *psi,
2445 [out, string, size_is(cchTip)] LPWSTR pszTip,
2446 [in] int cchTip);
2447
2448 HRESULT OnBeforeItemDelete(
2449 [in] IShellItem *psi);
2450
2451 HRESULT OnItemAdded(
2452 [in] IShellItem *psi,
2453 [in] BOOL fIsRoot);
2454
2455 HRESULT OnItemDeleted(
2456 [in] IShellItem *psi,
2457 [in] BOOL fIsRoot);
2458
2459 HRESULT OnBeforeContextMenu(
2460 [in, unique] IShellItem *psi,
2461 [in] REFIID riid,
2462 [out, iid_is(riid)] void **ppv);
2463
2464 HRESULT OnAfterContextMenu(
2465 [in] IShellItem *psi,
2466 [in] IContextMenu *pcmIn,
2467 [in] REFIID riid,
2468 [out, iid_is(riid)] void **ppv);
2469
2470 HRESULT OnBeforeStateImageChange(
2471 [in] IShellItem *psi);
2472
2473 HRESULT OnGetDefaultIconIndex(
2474 [in] IShellItem *psi,
2475 [out] int *piDefaultIcon,
2476 [out] int *piOpenIcon);
2477}
2478
2479/*****************************************************************************
2480 * INameSpaceTreeControlCustomDraw interface
2481 */
2482[
2483 object,
2484 uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78),
2485 local
2486]
2487
2488interface INameSpaceTreeControlCustomDraw : IUnknown
2489{
2490 typedef struct NSTCCUSTOMDRAW
2491 {
2492 IShellItem *psi;
2493 UINT uItemState;
2494 NSTCITEMSTATE nstcis;
2495 LPCWSTR pszText;
2496 int iImage;
2497 HIMAGELIST himl;
2498 int iLevel;
2499 int iIndent;
2500 } NSTCCUSTOMDRAW;
2501
2502 HRESULT PrePaint(
2503 [in] HDC hdc,
2504 [in] RECT *prc,
2505 [out] LRESULT *plres);
2506
2507 HRESULT PostPaint(
2508 [in] HDC hdc,
2509 [in] RECT *prc);
2510
2511 HRESULT ItemPrePaint(
2512 [in] HDC hdc,
2513 [in] RECT *prc,
2514 [in, out] COLORREF *pclrText,
2515 [in, out] COLORREF *pclrTextBk,
2516 [out] LRESULT *plres);
2517
2518 HRESULT ItemPostPaint(
2519 [in] HDC hdc,
2520 [in] RECT *prc,
2521 [in] NSTCCUSTOMDRAW *pnstccdItem);
2522}
2523
2524/*****************************************************************************
2525 * INameSpaceTreeControlDropHandler interface
2526 */
2527[
2528 object,
2529 uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51),
2530 local
2531]
2532interface INameSpaceTreeControlDropHandler : IUnknown
2533{
2534 HRESULT OnDragEnter(
2535 [in, unique] IShellItem *psiOver,
2536 [in] IShellItemArray *psiaData,
2537 [in] BOOL fOutsideSource,
2538 [in] DWORD grfKeyState,
2539 [in, out] DWORD *pdwEffect);
2540
2541 HRESULT OnDragOver(
2542 [in, unique] IShellItem *psiOver,
2543 [in] IShellItemArray *psiaData,
2544 [in] DWORD grfKeyState,
2545 [in, out] DWORD *pdwEffect);
2546
2547 HRESULT OnDragPosition(
2548 [in, unique] IShellItem *psiOver,
2549 [in] IShellItemArray *psiaData,
2550 [in] int iNewPosition,
2551 [in] int iOldPosition);
2552
2553 HRESULT OnDrop(
2554 [in, unique] IShellItem *psiOver,
2555 [in] IShellItemArray *psiaData,
2556 [in] int iPosition,
2557 [in] DWORD grfKeyState,
2558 [in, out] DWORD *pdwEffect);
2559
2560 HRESULT OnDropPosition(
2561 [in, unique] IShellItem *psiOver,
2562 [in] IShellItemArray *psiaData,
2563 [in] int iNewPosition,
2564 [in] int iOldPosition);
2565
2566 HRESULT OnDragLeave(
2567 [in, unique] IShellItem *psiOver);
2568}
2569cpp_quote("#define NSTCDHPOS_ONTOP -1")
2570
2571interface IFileDialog;
2572
2573typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE
2574{
2575 FDEOR_DEFAULT = 0,
2576 FDEOR_ACCCEP = 1,
2577 FDEOR_REFUSE = 2
2578} FDE_OVERWRITE_RESPONSE;
2579
2580typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE
2581{
2582 FDESVR_DEFAULT = 0,
2583 FDESVR_ACCEPT = 1,
2584 FDESVR_REFUSE = 2
2585} FDE_SHAREVIOLATION_RESPONSE;
2586
2587/*****************************************************************************
2588 * IFileDialogEvents interface
2589 */
2590[
2591 object,
2592 uuid(973510DB-7D7F-452B-8975-74A85828D354),
2593 pointer_default(unique)
2594]
2595interface IFileDialogEvents : IUnknown
2596{
2597 HRESULT OnFileOk(
2598 [in] IFileDialog *pfd);
2599
2600 HRESULT OnFolderChanging(
2601 [in] IFileDialog *pfd,
2602 [in] IShellItem *psiFolder);
2603
2604 HRESULT OnFolderChange(
2605 [in] IFileDialog *pfd);
2606
2607 HRESULT OnSelectionChange(
2608 [in] IFileDialog *pfd);
2609
2610 HRESULT OnShareViolation(
2611 [in] IFileDialog *pfd,
2612 [in] IShellItem *psi,
2613 [out] FDE_SHAREVIOLATION_RESPONSE *pResponse);
2614
2615 HRESULT OnTypeChange(
2616 [in] IFileDialog *pfd);
2617
2618 HRESULT OnOverwrite(
2619 [in] IFileDialog *pfd,
2620 [in] IShellItem *psi,
2621 [out] FDE_OVERWRITE_RESPONSE *pResponse);
2622}
2623
2624/*****************************************************************************
2625 * IModalWindow interface
2626 */
2627[
2628 object,
2629 uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802),
2630 pointer_default(unique)
2631]
2632interface IModalWindow : IUnknown
2633{
2634 [local]
2635 HRESULT Show(
2636 [in, unique, annotation("__in_opt")] HWND hwndOwner);
2637
2638 [call_as(Show)]
2639 HRESULT RemoteShow(
2640 [in, unique] HWND hwndOwner);
2641}
2642
2643typedef [v1_enum] enum FDAP
2644{
2645 FDAP_BOTTOM = 0,
2646 FDAP_TOP = 1
2647} FDAP;
2648
2649/*****************************************************************************
2650 * IFileDialog interface
2651 */
2652[
2653 object,
2654 uuid(42F85136-DB7E-439C-85F1-E4075D135FC8),
2655 pointer_default(unique)
2656]
2657interface IFileDialog : IModalWindow
2658{
2659 [v1_enum] enum _FILEOPENDIALOGOPTIONS
2660 {
2661 FOS_OVERWRITEPROMPT = 0x00000002,
2662 FOS_STRICTFILETYPES = 0x00000004,
2663 FOS_NOCHANGEDIR = 0x00000008,
2664 FOS_PICKFOLDERS = 0x00000020,
2665 FOS_FORCEFILESYSTEM = 0x00000040,
2666 FOS_ALLNONSTORAGEITEMS = 0x00000080,
2667 FOS_NOVALIDATE = 0x00000100,
2668 FOS_ALLOWMULTISELECT = 0x00000200,
2669 FOS_PATHMUSTEXIST = 0x00000800,
2670 FOS_FILEMUSTEXIST = 0x00001000,
2671 FOS_CREATEPROMPT = 0x00002000,
2672 FOS_SHAREAWARE = 0x00004000,
2673 FOS_NOREADONLYRETURN = 0x00008000,
2674 FOS_NOTESTFILECREATE = 0x00010000,
2675 FOS_HIDEMRUPLACES = 0x00020000,
2676 FOS_HIDEPINNEDPLACES = 0x00040000,
2677 FOS_NODEREFERENCELINKS = 0x00100000,
2678 FOS_DONTADDTORECENT = 0x02000000,
2679 FOS_FORCESHOWHIDDEN = 0x10000000,
2680 FOS_DEFAULTNOMINIMODE = 0x20000000,
2681 FOS_FORCEPREVIEWPANEON = 0x40000000
2682 };
2683 typedef DWORD FILEOPENDIALOGOPTIONS;
2684
2685 HRESULT SetFileTypes(
2686 [in] UINT cFileTypes,
2687 [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec);
2688
2689 HRESULT SetFileTypeIndex(
2690 [in] UINT iFileType);
2691
2692 HRESULT GetFileTypeIndex(
2693 [out] UINT *piFileType);
2694
2695 HRESULT Advise(
2696 [in] IFileDialogEvents *pfde,
2697 [out] DWORD *pdwCookie);
2698
2699 HRESULT Unadvise(
2700 [in] DWORD dwCookie);
2701
2702 HRESULT SetOptions(
2703 [in] FILEOPENDIALOGOPTIONS fos);
2704
2705 HRESULT GetOptions(
2706 [in] FILEOPENDIALOGOPTIONS *pfos);
2707
2708 HRESULT SetDefaultFolder(
2709 [in] IShellItem *psi);
2710
2711 HRESULT SetFolder(
2712 [in] IShellItem *psi);
2713
2714 HRESULT GetFolder(
2715 [out] IShellItem **ppsi);
2716
2717 HRESULT GetCurrentSelection(
2718 [out] IShellItem **ppsi);
2719
2720 HRESULT SetFileName(
2721 [in, string] LPCWSTR pszName);
2722
2723 HRESULT GetFileName(
2724 [out, string] LPWSTR *pszName);
2725
2726 HRESULT SetTitle(
2727 [in, string] LPCWSTR pszTitle);
2728
2729 HRESULT SetOkButtonLabel(
2730 [in, string] LPCWSTR pszText);
2731
2732 HRESULT SetFileNameLabel(
2733 [in, string] LPCWSTR pszLabel);
2734
2735 HRESULT GetResult(
2736 [out] IShellItem **ppsi);
2737
2738 HRESULT AddPlace(
2739 [in] IShellItem *psi,
2740 [in] FDAP fdap);
2741
2742 HRESULT SetDefaultExtension(
2743 [in, string] LPCWSTR pszDefaultExtension);
2744
2745 HRESULT Close(
2746 [in] HRESULT hr);
2747
2748 HRESULT SetClientGuid(
2749 [in] REFGUID guid);
2750
2751 HRESULT ClearClientData();
2752
2753 HRESULT SetFilter(
2754 [in] IShellItemFilter *pFilter);
2755}
2756
2757/*****************************************************************************
2758 * IFileDialog2 interface
2759 */
2760[
2761 object,
2762 uuid(61744FC7-85B5-4791-A9B0-272276309B13),
2763 pointer_default(unique)
2764]
2765interface IFileDialog2 : IFileDialog
2766{
2767 HRESULT SetCancelButtonLabel(
2768 [in] LPCWSTR pszLabel);
2769
2770 HRESULT SetNavigationRoot(
2771 [in] IShellItem *psi);
2772}
2773
2774/*****************************************************************************
2775 * IFileOperationProgressSink interface
2776 */
2777[
2778 object,
2779 uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2),
2780 pointer_default(unique)
2781]
2782interface IFileOperationProgressSink : IUnknown
2783{
2784 HRESULT StartOperations();
2785
2786 HRESULT FinishOperations(
2787 [in] HRESULT hrResult);
2788
2789 HRESULT PreRenameItem(
2790 [in] DWORD dwFlags,
2791 [in] IShellItem *psiItem,
2792 [in, unique, string] LPCWSTR pszNewName);
2793
2794 HRESULT PostRenameItem(
2795 [in] DWORD dwFlags,
2796 [in] IShellItem *psiItem,
2797 [in, string] LPCWSTR pszNewName,
2798 [in] HRESULT hrRename,
2799 [in] IShellItem *psiNewlyCreated);
2800
2801 HRESULT PreMoveItem(
2802 [in] DWORD dwFlags,
2803 [in] IShellItem *psiItem,
2804 [in] IShellItem *psiDestinationFolder,
2805 [in, unique, string] LPCWSTR pszNewName);
2806
2807 HRESULT PostMoveItem(
2808 [in] DWORD dwFlags,
2809 [in] IShellItem *psiItem,
2810 [in] IShellItem *psiDestinationFolder,
2811 [in, unique, string] LPCWSTR pszNewName,
2812 [in] HRESULT hrMove,
2813 [in] IShellItem *psiNewlyCreated);
2814
2815 HRESULT PreCopyItem(
2816 [in] DWORD dwFlags,
2817 [in] IShellItem *psiItem,
2818 [in] IShellItem *psiDestinationFolder,
2819 [in, unique, string] LPCWSTR pszNewName);
2820
2821 HRESULT PostCopyItem(
2822 [in] DWORD dwFlags,
2823 [in] IShellItem *psiItem,
2824 [in] IShellItem *psiDestinationFolder,
2825 [in, unique, string] LPCWSTR pszNewName,
2826 [in] HRESULT hrCopy,
2827 [in] IShellItem *psiNewlyCreated);
2828
2829 HRESULT PreDeleteItem(
2830 [in] DWORD dwFlags,
2831 [in] IShellItem *psiItem);
2832
2833 HRESULT PostDeleteItem(
2834 [in] DWORD dwFlags,
2835 [in] IShellItem *psiItem,
2836 [in] HRESULT hrDelete,
2837 [in] IShellItem *psiNewlyCreated);
2838
2839 HRESULT PreNewItem(
2840 [in] DWORD dwFlags,
2841 [in] IShellItem *psiDestinationFolder,
2842 [in, unique, string] LPCWSTR pszNewName);
2843
2844 HRESULT PostNewItem(
2845 [in] DWORD dwFlags,
2846 [in] IShellItem *psiDestinationFolder,
2847 [in, unique, string] LPCWSTR pszNewName,
2848 [in, unique, string] LPCWSTR pszTemplateName,
2849 [in] DWORD dwFileAttributes,
2850 [in] HRESULT hrNew,
2851 [in] IShellItem *psiNewItem);
2852
2853 HRESULT UpdateProgress(
2854 [in] UINT iWorkTotal,
2855 [in] UINT iWorkSoFar);
2856
2857 HRESULT ResetTimer();
2858
2859 HRESULT PauseTimer();
2860
2861 HRESULT ResumeTimer();
2862}
2863
2864/*****************************************************************************
2865 * IFileSaveDialog interface
2866 */
2867[
2868 object,
2869 uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB),
2870 pointer_default(unique)
2871]
2872interface IFileSaveDialog : IFileDialog
2873{
2874 HRESULT SetSaveAsItem(
2875 [in] IShellItem *psi);
2876
2877 HRESULT SetProperties(
2878 [in] IPropertyStore *pStore);
2879
2880 HRESULT SetCollectedProperties(
2881 [in] IPropertyDescriptionList *pList,
2882 [in] BOOL fAppendDefault);
2883
2884 HRESULT GetProperties(
2885 [in] IPropertyStore **ppStore);
2886
2887 HRESULT ApplyProperties(
2888 [in] IShellItem *psi,
2889 [in] IPropertyStore *pStore,
2890 [in, unique] HWND hwnd,
2891 [in, unique] IFileOperationProgressSink *pSink);
2892}
2893
2894
2895/*****************************************************************************
2896 * IFileOpenDialog interface
2897 */
2898[
2899 object,
2900 uuid(D57C7288-D4AD-4768-BE02-9D969532D960),
2901 pointer_default(unique)
2902]
2903interface IFileOpenDialog : IFileDialog
2904{
2905 HRESULT GetResults(
2906 [out] IShellItemArray **ppenum);
2907
2908 HRESULT GetSelectedItems(
2909 [out] IShellItemArray **ppsai);
2910}
2911
2912typedef [v1_enum] enum CDCONTROLSTATEF
2913{
2914 CDCS_INACTIVE = 0x0,
2915 CDCS_ENABLED = 0x1,
2916 CDCS_VISIBLE = 0x2,
2917 CDCS_ENABLEDVISIBLE = 0x3
2918} CDCONTROLSTATEF;
2919cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")
2920/*****************************************************************************
2921 * IFileDialogCustomize interface
2922 */
2923[
2924 object,
2925 uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034),
2926 pointer_default(unique)
2927]
2928interface IFileDialogCustomize : IUnknown
2929{
2930 HRESULT EnableOpenDropDown(
2931 [in] DWORD dwIDCtl);
2932
2933 HRESULT AddMenu(
2934 [in] DWORD dwIDCtl,
2935 [in, string] LPCWSTR pszLabel);
2936
2937 HRESULT AddPushButton(
2938 [in] DWORD dwIDCtl,
2939 [in, string] LPCWSTR pszLabel);
2940
2941 HRESULT AddComboBox(
2942 [in] DWORD dwIDCtl);
2943
2944 HRESULT AddRadioButtonList(
2945 [in] DWORD dwIDCtl);
2946
2947 HRESULT AddCheckButton(
2948 [in] DWORD dwIDCtl,
2949 [in, string] LPCWSTR pszLabel,
2950 [in] BOOL bChecked);
2951
2952 HRESULT AddEditBox(
2953 [in] DWORD dwIDCtl,
2954 [in, string] LPCWSTR pszText);
2955
2956 HRESULT AddSeparator(
2957 [in] DWORD dwIDCtl);
2958
2959 HRESULT AddText(
2960 [in] DWORD dwIDCtl,
2961 [in, string] LPCWSTR pszText);
2962
2963 HRESULT SetControlLabel(
2964 [in] DWORD dwIDCtl,
2965 [in, string] LPCWSTR pszLabel);
2966
2967 HRESULT GetControlState(
2968 [in] DWORD dwIDCtl,
2969 [out] CDCONTROLSTATEF *pdwState);
2970
2971 HRESULT SetControlState(
2972 [in] DWORD dwIDCtl,
2973 [in] CDCONTROLSTATEF dwState);
2974
2975 HRESULT GetEditBoxText(
2976 [in] DWORD dwIDCtl,
2977 [out, string] WCHAR **ppszText);
2978
2979 HRESULT SetEditBoxText(
2980 [in] DWORD dwIDCtl,
2981 [in, string] LPCWSTR pszText);
2982
2983 HRESULT GetCheckButtonState(
2984 [in] DWORD dwIDCtl,
2985 [out] BOOL *pbChecked);
2986
2987 HRESULT SetCheckButtonState(
2988 [in] DWORD dwIDCtl,
2989 [in] BOOL bChecked);
2990
2991 HRESULT AddControlItem(
2992 [in] DWORD dwIDCtl,
2993 [in] DWORD dwIDItem,
2994 [in] LPCWSTR pszLabel);
2995
2996 HRESULT RemoveControlItem(
2997 [in] DWORD dwIDCtl,
2998 [in] DWORD dwIDItem);
2999
3000 HRESULT RemoveAllControlItems(
3001 [in] DWORD dwIDCtl);
3002
3003 HRESULT GetControlItemState(
3004 [in] DWORD dwIDCtl,
3005 [in] DWORD dwIDItem,
3006 [out] CDCONTROLSTATEF *pdwState);
3007
3008 HRESULT SetControlItemState(
3009 [in] DWORD dwIDCtl,
3010 [in] DWORD dwIDItem,
3011 [in] CDCONTROLSTATEF dwState);
3012
3013 HRESULT GetSelectedControlItem(
3014 [in] DWORD dwIDCtl,
3015 [out] DWORD *pdwIDItem);
3016
3017 HRESULT SetSelectedControlItem(
3018 [in] DWORD dwIDCtl,
3019 [in] DWORD dwIDItem);
3020
3021 HRESULT StartVisualGroup(
3022 [in] DWORD dwIDCtl,
3023 [in, string] LPCWSTR pszLabel);
3024
3025 HRESULT EndVisualGroup();
3026
3027 HRESULT MakeProminent(
3028 [in] DWORD dwIDCtl);
3029
3030 HRESULT SetControlItemText(
3031 [in] DWORD dwIDCtl,
3032 [in] DWORD dwIDItem,
3033 [in, string] LPCWSTR pszLabel);
3034}
3035
3036/*****************************************************************************
3037 * IFileDialogControlEvents interface
3038 */
3039[
3040 object,
3041 uuid(36116642-D713-4B97-9B83-7484A9D00433),
3042 pointer_default(unique)
3043]
3044interface IFileDialogControlEvents : IUnknown
3045{
3046 HRESULT OnItemSelected(
3047 [in] IFileDialogCustomize *pfdc,
3048 [in] DWORD dwIDCtl,
3049 [in] DWORD dwIDItem);
3050
3051 HRESULT OnButtonClicked(
3052 [in] IFileDialogCustomize *pfdc,
3053 [in] DWORD dwIDCtl);
3054
3055 HRESULT OnCheckButtonToggled(
3056 [in] IFileDialogCustomize *pfdc,
3057 [in] BOOL dwIDCtl,
3058 [in] BOOL bChecked);
3059
3060 HRESULT OnControlActivating(
3061 [in] IFileDialogCustomize *pfdc,
3062 [in] DWORD dwIDCtl);
3063}
3064
3065typedef [v1_enum] enum tagKF_CATEGORY
3066{
3067 KF_CATEGORY_VIRTUAL = 0x00000001,
3068 KF_CATEGORY_FIXED = 0x00000002,
3069 KF_CATEGORY_COMMON = 0x00000003,
3070 KF_CATEGORY_PERUSER = 0x00000004
3071} KF_CATEGORY;
3072
3073typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES
3074{
3075 KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff,
3076 KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001,
3077 KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00,
3078 KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100,
3079 KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200,
3080 KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400
3081} KF_REDIRECTION_CAPABILITIES;
3082
3083typedef [v1_enum] enum tagKF_DEFINITION_FLAGS
3084{
3085 KFDF_LOCAL_REDIRECT_ONLY = 0x00000002,
3086 KFDF_ROAMABLE = 0x00000004,
3087 KFDF_PRECREATE = 0x00000008,
3088 KFDF_STREAM = 0x00000010,
3089 KFDF_PUBLISHEXPANDEDPATH = 0x00000020
3090} KF_DEFINITION_FLAGS;
3091
3092typedef struct tagKNOWNFOLDER_DEFINITION
3093{
3094 KF_CATEGORY category;
3095 LPWSTR pszName;
3096 LPWSTR pszDescription;
3097 KNOWNFOLDERID fidParent;
3098 LPWSTR pszRelativePath;
3099 LPWSTR pszParsingName;
3100 LPWSTR pszTooltip;
3101 LPWSTR pszLocalizedName;
3102 LPWSTR pszIcon;
3103 LPWSTR pszSecurity;
3104 DWORD dwAttributes;
3105 KF_DEFINITION_FLAGS kfdFlags;
3106 FOLDERTYPEID ftidType;
3107} KNOWNFOLDER_DEFINITION;
3108
3109[
3110 object,
3111 uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488),
3112 pointer_default(ref)
3113]
3114interface IKnownFolder : IUnknown
3115{
3116 HRESULT GetId(
3117 [out] KNOWNFOLDERID *pkfid);
3118
3119 HRESULT GetCategory(
3120 [out] KF_CATEGORY *pCategory);
3121
3122 HRESULT GetShellItem(
3123 [in] DWORD dwFlags,
3124 [in] REFIID riid,
3125 [out, iid_is(riid)] void **ppv);
3126
3127 HRESULT GetPath(
3128 [in] DWORD dwFlags,
3129 [out, string] LPWSTR *ppszPath);
3130
3131 HRESULT SetPath(
3132 [in] DWORD dwFlags,
3133 [in, string] LPCWSTR pszPath);
3134
3135 HRESULT GetIDList(
3136 [in] DWORD dwFlags,
3137 [out] PIDLIST_ABSOLUTE *ppidl);
3138
3139 HRESULT GetFolderType(
3140 [out] FOLDERTYPEID *pftid);
3141
3142 HRESULT GetRedirectionCapabilities(
3143 [out] KF_REDIRECTION_CAPABILITIES *pCapabilities);
3144
3145 HRESULT GetFolderDefinition(
3146 [out] KNOWNFOLDER_DEFINITION *pKFD);
3147}
3148
3149typedef [v1_enum] enum tagKF_REDIRECT_FLAGS
3150{
3151 KF_REDIRECT_USER_EXCLUSIVE = 0x00000001,
3152 KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002,
3153 KF_REDIRECT_OWNER_USER = 0x00000004,
3154 KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008,
3155 KF_REDIRECT_CHECK_ONLY = 0x00000010,
3156 KF_REDIRECT_WITH_UI = 0x00000020,
3157 KF_REDIRECT_UNPIN = 0x00000040,
3158 KF_REDIRECT_PIN = 0x00000080,
3159 KF_REDIRECT_COPY_CONTENTS = 0x00000200,
3160 KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400,
3161 KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800
3162} KF_REDIRECT_FLAGS;
3163
3164[
3165 object,
3166 uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018),
3167 pointer_default(ref)
3168]
3169interface IKnownFolderManager : IUnknown
3170{
3171 typedef [v1_enum] enum tagFFFP_MODE
3172 {
3173 FFFP_EXACTMATCH,
3174 FFFP_NEARESTPARENTMATCH
3175 } FFFP_MODE;
3176
3177 HRESULT FolderIdFromCsidl(
3178 [in] int nCsidl,
3179 [out] KNOWNFOLDERID *pfid);
3180
3181 HRESULT FolderIdToCsidl(
3182 [in] REFKNOWNFOLDERID rfid,
3183 [out] int *pnCsidl);
3184
3185 HRESULT GetFolderIds(
3186 [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId,
3187 [in, out] UINT *pCount);
3188
3189 HRESULT GetFolder(
3190 [in] REFKNOWNFOLDERID rfid,
3191 [out] IKnownFolder **ppkf);
3192
3193 HRESULT GetFolderByName(
3194 [in, string] LPCWSTR pszCanonicalName,
3195 [out] IKnownFolder **ppkf);
3196
3197 HRESULT RegisterFolder(
3198 [in] REFKNOWNFOLDERID rfid,
3199 [in] KNOWNFOLDER_DEFINITION const *pKFD);
3200
3201 HRESULT UnregisterFolder(
3202 [in] REFKNOWNFOLDERID rfid);
3203
3204 HRESULT FindFolderFromPath(
3205 [in, string] LPCWSTR pszPath,
3206 [in] FFFP_MODE mode,
3207 [out] IKnownFolder **ppkf);
3208
3209 HRESULT FindFolderFromIDList(
3210 [in] PCIDLIST_ABSOLUTE pidl,
3211 [out] IKnownFolder **ppkf);
3212
3213 HRESULT Redirect(
3214 [in] REFKNOWNFOLDERID rfid,
3215 [in, unique] HWND hwnd,
3216 [in] KF_REDIRECT_FLAGS flags,
3217 [in, unique, string] LPCWSTR pszTargetPath,
3218 [in] UINT cFolders,
3219 [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion,
3220 [out, string] LPWSTR *ppszError);
3221}
3222
3223/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */
3224cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)")
3225cpp_quote("{")
3226cpp_quote(" CoTaskMemFree(pKFD->pszName);")
3227cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")
3228cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")
3229cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")
3230cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")
3231cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")
3232cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")
3233cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")
3234cpp_quote("}")
3235
3236typedef [v1_enum] enum ASSOCIATIONLEVEL {
3237 AL_MACHINE,
3238 AL_EFFECTIVE,
3239 AL_USER
3240} ASSOCIATIONLEVEL;
3241
3242typedef [v1_enum] enum ASSOCIATIONTYPE {
3243 AT_FILEEXTENSION,
3244 AT_URLPROTOCOL,
3245 AT_STARTMENUCLIENT,
3246 AT_MIMETYPE
3247} ASSOCIATIONTYPE;
3248
3249[
3250 object,
3251 uuid(4e530b0a-e611-4c77-a3ac-9031d022281b),
3252 pointer_default(unique)
3253]
3254interface IApplicationAssociationRegistration : IUnknown
3255{
3256 HRESULT QueryCurrentDefault(
3257 [in, string] LPCWSTR pszQuery,
3258 [in] ASSOCIATIONTYPE atQueryType,
3259 [in] ASSOCIATIONLEVEL alQueryLevel,
3260 [out, string] LPWSTR *ppszAssociation);
3261
3262 HRESULT QueryAppIsDefault(
3263 [in, string] LPCWSTR pszQuery,
3264 [in] ASSOCIATIONTYPE atQueryType,
3265 [in] ASSOCIATIONLEVEL alQueryLevel,
3266 [in, string] LPCWSTR pszAppRegistryName,
3267 [out] BOOL *pfDefault);
3268
3269 HRESULT QueryAppIsDefaultAll(
3270 [in] ASSOCIATIONLEVEL alQueryLevel,
3271 [in, string] LPCWSTR pszAppRegistryName,
3272 [out] BOOL* pfDefault);
3273
3274 HRESULT SetAppAsDefault(
3275 [in, string] LPCWSTR pszAppRegistryName,
3276 [in, string] LPCWSTR pszSet,
3277 [in] ASSOCIATIONTYPE atSetType);
3278
3279 HRESULT SetAppAsDefaultAll(
3280 [in, string] LPCWSTR pszAppRegistryName);
3281
3282 HRESULT ClearUserAssociations();
3283}
3284
3285[
3286 uuid(6332debf-87b5-4670-90c0-5e57b408a49e),
3287 object,
3288 pointer_default(unique)
3289]
3290interface ICustomDestinationList : IUnknown
3291{
3292 typedef [v1_enum] enum KNOWNDESTCATEGORY {
3293 KDC_FREQUENT = 1,
3294 KDC_RECENT
3295 } KNOWNDESTCATEGORY;
3296
3297 HRESULT SetAppID([in, string] LPCWSTR pszAppID);
3298
3299 HRESULT BeginList(
3300 [out] UINT *pcMinSlots,
3301 [in] REFIID riid,
3302 [out, iid_is(riid)] void **ppv);
3303
3304 HRESULT AppendCategory(
3305 [in, string] LPCWSTR pszCategory,
3306 [in] IObjectArray *poa);
3307
3308 HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category);
3309 HRESULT AddUserTasks([in] IObjectArray *poa);
3310 HRESULT CommitList();
3311
3312 HRESULT GetRemovedDestinations(
3313 [in] REFIID riid,
3314 [out, iid_is(riid)] void **ppv);
3315
3316 HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID);
3317 HRESULT AbortList();
3318}
3319
3320/*****************************************************************************
3321 * ShellObjects typelibrary
3322 */
3323[
3324 uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE),
3325 lcid(0x0000),
3326 version(1.0)
3327]
3328library ShellObjects
3329{
3330 [
3331 uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB)
3332 ]
3333 coclass ExplorerBrowser
3334 {
3335 interface IExplorerBrowser;
3336 }
3337
3338 [
3339 uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7)
3340 ]
3341 coclass FileOpenDialog
3342 {
3343 interface IFileOpenDialog;
3344 }
3345
3346 [
3347 uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B)
3348 ]
3349 coclass FileSaveDialog
3350 {
3351 interface IFileSaveDialog;
3352 }
3353
3354 [
3355 uuid(AE054212-3535-4430-83ED-D501AA6680E6)
3356 ]
3357 coclass NamespaceTreeControl
3358 {
3359 interface INameSpaceTreeControl2;
3360 }
3361
3362 [
3363 uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a)
3364 ]
3365 coclass KnownFolderManager
3366 {
3367 interface IKnownFolderManager;
3368 }
3369
3370 [
3371 uuid(591209c7-767b-42b2-9fba-44ee4615f2c7)
3372 ]
3373 coclass ApplicationAssociationRegistration
3374 {
3375 interface IApplicationAssociationRegistration;
3376 }
3377
3378 [
3379 uuid(00021401-0000-0000-c000-000000000046)
3380 ]
3381 coclass ShellLink
3382 {
3383 interface IShellLinkW;
3384 }
3385
3386 [
3387 uuid(56fdf344-fd6d-11d0-958a-006097c9a090)
3388 ]
3389 coclass TaskbarList
3390 {
3391 interface ITaskbarList4;
3392 }
3393
3394 [
3395 uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6)
3396 ]
3397 coclass DestinationList {
3398 interface ICustomDestinationList;
3399 }
3400
3401 [
3402 uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a)
3403 ]
3404 coclass EnumerableObjectCollection
3405 {
3406 interface IEnumObjects;
3407 }
3408}
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette