ReactOS  0.4.10-dev-479-g13a3cf0
shobjidl.idl
Go to the documentation of this file.
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 import "objidl.idl";
23 import "oleidl.idl";
24 import "oaidl.idl";
25 import "docobj.idl";
26 import "shtypes.idl";
27 import "servprov.idl";
28 import "comcat.idl";
29 import "propidl.idl";
30 /* FIXME: import "prsht.idl";*/
31 import "msxml.idl";
32 import "wtypes.idl";
33 import "propsys.idl";
34 import "objectarray.idl";
35 /* FIXME: import "structuredquery.idl"; */
36 
37 cpp_quote("/* FIXME: #include <sherrors.h> */")
38 
39 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
40 cpp_quote("#undef PlaySound")
41 cpp_quote("#endif")
42 
43 
44 /*****************************************************************************
45  * IPersistFolder interface
46  */
47 [
48  object,
49  uuid(000214ea-0000-0000-c000-000000000046),
51 ]
53 {
55 
57 }
58 
59 
60 /*****************************************************************************
61  * IPersistFolder2 interface
62  */
63 [
64  object,
65  uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f),
67 ]
69 {
71 
73 }
74 
75 
76 /*****************************************************************************
77  * IPersistIDList interface
78  */
79 [
80  object,
81  uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5),
83 ]
85 {
87  HRESULT GetIDList( [out] LPITEMIDLIST *ppidl );
88 }
89 
90 
91 /*****************************************************************************
92  * IEnumIDList interface
93  */
94 [
95  object,
96  uuid(000214f2-0000-0000-c000-000000000046),
98 ]
99 interface IEnumIDList : IUnknown
100 {
102 
103  HRESULT Next(
104  [in] ULONG celt,
105  [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt,
106  [out] ULONG *pceltFetched);
107 
108  HRESULT Skip( [in] ULONG celt );
109  HRESULT Reset();
110  HRESULT Clone( [out] IEnumIDList **ppenum );
111 }
112 
113 /*****************************************************************************
114  * IShellPropSheetExt interface
115  */
116 cpp_quote("#if 0")
118 cpp_quote("#else")
119 cpp_quote("#include <prsht.h>")
120 cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
121 cpp_quote("#endif")
122 
123 [
124  object,
125  uuid(000214E9-0000-0000-C000-000000000046),
127  local
128 ]
130 {
133  };
134 
135  typedef UINT EXPPS;
136 
138  [in] LPFNSVADDPROPSHEETPAGE pfnAddPage,
139  [in] LPARAM lParam);
141  [in] EXPPS uPageID,
142  [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
143  [in] LPARAM lParam);
144 }
145 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
146 
147 /*****************************************************************************
148  * IShellFolder interface
149  */
150 [
151  object,
152  uuid(000214e6-0000-0000-c000-000000000046),
154 ]
156 {
158 
159  typedef enum tagSHGDN
160  {
167  } SHGNO;
168 
169  typedef DWORD SHGDNF;
170 
172  {
180  };
181 
182  typedef DWORD SHCONTF;
183 
184  cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
185  cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
186  cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
187  cpp_quote("#define SFGAO_STORAGE 0x00000008L")
188  cpp_quote("#define SFGAO_CANRENAME 0x00000010L")
189  cpp_quote("#define SFGAO_CANDELETE 0x00000020L")
190  cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L")
191  cpp_quote("#define SFGAO_DROPTARGET 0x00000100L")
192  cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L")
193  cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L")
194  cpp_quote("#define SFGAO_ISSLOW 0x00004000L")
195  cpp_quote("#define SFGAO_GHOSTED 0x00008000L")
196  cpp_quote("#define SFGAO_LINK 0x00010000L")
197  cpp_quote("#define SFGAO_SHARE 0x00020000L")
198  cpp_quote("#define SFGAO_READONLY 0x00040000L")
199  cpp_quote("#define SFGAO_HIDDEN 0x00080000L")
200  cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L")
201  cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L")
202  cpp_quote("#define SFGAO_FOLDER 0x20000000L")
203  cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L")
204  cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L")
205  cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L")
206  cpp_quote("#define SFGAO_VALIDATE 0x01000000L")
207  cpp_quote("#define SFGAO_REMOVABLE 0x02000000L")
208  cpp_quote("#define SFGAO_COMPRESSED 0x04000000L")
209  cpp_quote("#define SFGAO_BROWSABLE 0x08000000L")
210  cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L")
211  cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L")
212  cpp_quote("#define SFGAO_STREAM 0x00400000L")
213  cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L")
214 
215  typedef ULONG SFGAOF;
216 
218  [in] HWND hwndOwner,
219  [in] LPBC pbcReserved,
220  [in, string] LPOLESTR lpszDisplayName,
221  [out] ULONG *pchEaten,
222  [out] PIDLIST_RELATIVE *ppidl,
223  [in, out, unique] ULONG *pdwAttributes);
224 
226  [in] HWND hwndOwner,
227  [in] SHCONTF grfFlags,
228  [out] IEnumIDList **ppenumIDList);
229 
231  [in] PCUIDLIST_RELATIVE pidl,
232  [in] LPBC pbcReserved,
233  [in] REFIID riid,
234  [out, iid_is(riid)] void **ppvOut);
235 
237  [in] PCUIDLIST_RELATIVE pidl,
238  [in] LPBC pbcReserved,
239  [in] REFIID riid,
240  [out, iid_is(riid)] void **ppvObj);
241 
243  [in] LPARAM lParam,
244  [in] PCUIDLIST_RELATIVE pidl1,
245  [in] PCUIDLIST_RELATIVE pidl2);
246 
248  [in] HWND hwndOwner,
249  [in] REFIID riid,
250  [out, iid_is(riid)] void **ppvOut);
251 
253  [in] UINT cidl,
254  [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
255  [in, out] SFGAOF *rgfInOut);
256 
258  [in] HWND hwndOwner,
259  [in] UINT cidl,
260  [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
261  [in] REFIID riid,
262  [in, out, unique] UINT *prgfInOut,
263  [out, iid_is(riid)] void **ppvOut);
264 
266  [in] PCUITEMID_CHILD pidl,
267  [in] SHGDNF uFlags,
268  [out] STRRET *lpName);
269 
271  [in] HWND hwnd,
272  [in] PCUITEMID_CHILD pidl,
273  [in, string] LPCOLESTR lpszName,
274  [in] SHGDNF uFlags,
275  [out] PITEMID_CHILD *ppidlOut);
276 }
277 
278 
279 /*****************************************************************************
280  * IEnumExtraSearch interface
281  */
282 [
283  object,
284  uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13),
286 ]
288 {
290 
291  typedef struct
292  {
295  /*
296  *WCHAR wszMenuText[80];
297  *WCHAR wszHelpText[MAX_PATH];
298  */
299  WCHAR wszUrl[2084];
300  /*
301  *WCHAR wszIcon[MAX_PATH+10];
302  *WCHAR wszGreyIcon[MAX_PATH+10];
303  *WCHAR wszClrIcon[MAX_PATH+10];
304  */
306 
307  HRESULT Next(
308  [in] ULONG celt,
309  [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt,
310  [out] ULONG *pceltFetched);
311 
312  HRESULT Skip( [in] ULONG celt );
313  HRESULT Reset();
314  HRESULT Clone( [out] IEnumExtraSearch **ppenum );
315 }
316 
317 
318 /*****************************************************************************
319  * IShellFolder2 interface
320  */
321 [
322  object,
323  uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1),
325 ]
327 {
328  typedef struct
329  {
333  typedef const SHCOLUMNID *LPCSHCOLUMNID;
334 
335  HRESULT GetDefaultSearchGUID( [out] GUID *lpguid );
337  HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay );
338  HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags );
339  HRESULT GetDetailsEx( [in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
340  HRESULT GetDetailsOf( [in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
341  HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
342 }
343 
344 /*****************************************************************************
345  * IShellItem interface
346  */
347 [
348  object,
349  uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe),
351 ]
352 interface IShellItem : IUnknown
353 {
354  typedef [v1_enum] enum {
360  SIGDN_FILESYSPATH = 0x80058000,
361  SIGDN_URL = 0x80068000,
363  SIGDN_PARENTRELATIVE = 0x80080001
364  } SIGDN; /* & 0xFFFF => SHGDN */
365 
367  {
368  SICHINT_DISPLAY = 0x00000000,
369  SICHINT_CANONICAL = 0x10000000,
371  SICHINT_ALLFIELDS = 0x80000000
372  };
373  typedef DWORD SICHINTF;
374 
376  [in] IBindCtx *pbc,
377  [in] REFGUID rbhid,
378  [in] REFIID riid,
379  [out, iid_is(riid)] void **ppvOut);
380 
381  HRESULT GetParent( [out] IShellItem **ppsi );
382 
384  [in] SIGDN sigdnName,
385  [out] LPWSTR *ppszName);
386 
388  [in] SFGAOF sfgaoMask,
389  [out] SFGAOF *psfgaoAttribs);
390 
392  [in] IShellItem *psi,
393  [in] SICHINTF hint,
394  [out] int *piOrder);
395 }
396 
397 /*****************************************************************************
398  * IShellItem2 interface
399  */
400 [
401  object,
402  uuid(7E9FB0D3-919F-4307-AB2E-9B1860310C93),
404 ]
405 interface IShellItem2 : IShellItem
406 {
407  HRESULT GetPropertyStore(
408  [in] GETPROPERTYSTOREFLAGS flags,
409  [in] REFIID riid,
410  [out, iid_is(riid)] void **ppv);
411 
412  HRESULT GetPropertyStoreWithCreateObject(
413  [in] GETPROPERTYSTOREFLAGS flags,
414  [in] IUnknown *punkCreateObject,
415  [in] REFIID riid,
416  [out, iid_is(riid)] void **ppv);
417 
418  HRESULT GetPropertyStoreForKeys(
419  [in, size_is(cKeys)] const PROPERTYKEY *rgKeys,
420  [in] UINT cKeys,
421  [in] GETPROPERTYSTOREFLAGS flags,
422  [in] REFIID riid,
423  [out, iid_is(riid)] void **ppv);
424 
425  HRESULT GetPropertyDescriptionList(
426  [in] REFPROPERTYKEY keyType,
427  [in] REFIID riid,
428  [out, iid_is(riid)] void **ppv);
429 
430  HRESULT Update(
431  [in, unique] IBindCtx *pbc);
432 
433  HRESULT GetProperty(
435  [out] PROPVARIANT *ppropvar);
436 
437  HRESULT GetCLSID(
439  [out] CLSID *pclsid);
440 
443  [out] FILETIME *pft);
444 
445  HRESULT GetInt32(
447  [out] int *pi);
448 
449  HRESULT GetString(
451  [out, string] LPWSTR *ppsz);
452 
453  HRESULT GetUInt32(
455  [out] ULONG *pui);
456 
457  HRESULT GetUInt64(
459  [out] ULONGLONG *pull);
460 
461  HRESULT GetBool(
463  [out] BOOL *pf);
464 }
465 
466 typedef enum tagNWMF {
467  NWMF_UNLOADING = 0x0001,
468  NWMF_USERINITED = 0x0002,
469  NWMF_FIRST = 0x0004,
470  NWMF_OVERRIDEKEY = 0x0008,
471  NWMF_SHOWHELP = 0x0010,
472  NWMF_HTMLDIALOG = 0x0020,
473  NWMF_FROMDIALOGCHILD = 0x0040,
474  NWMF_USERREQUESTED = 0x0080,
475  NWMF_USERALLOWED = 0x0100
476 } NWMF;
477 
478 [
479  uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb),
480  object,
482 ]
484 {
486  [in, string] LPCWSTR pszUrl,
487  [in, string] LPCWSTR pszName,
488  [in, string] LPCWSTR pszUrlContext,
489  [in, string] LPCWSTR pszFeatures,
490  [in] BOOL fReplace,
491  [in] DWORD dwFlags,
492  [in] DWORD dwUserActionTime);
493 }
494 
495 cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
496 
497 /*****************************************************************************
498  * IEnumShellItems interface
499  */
500 [
501  object,
502  uuid(70629033-E363-4A28-A567-0DB78006E6D7),
504 ]
506 {
507  [local] HRESULT Next(
508  [in] ULONG celt,
509  [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
510  [out] ULONG *pceltFetched);
511 
512  [call_as(Next)] HRESULT RemoteNext(
513  [in] ULONG celt,
514  [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
515  [out] ULONG *pceltFetched);
516 
517  HRESULT Skip(
518  [in] ULONG celt);
519 
520  HRESULT Reset();
521 
522  HRESULT Clone(
523  [out] IEnumShellItems **ppenum);
524 }
525 
526 /*****************************************************************************
527  * IShellItemArray interface
528  */
529 [
530  object,
531  uuid(B63EA76D-1F85-456F-A19C-48159EFA858B),
533 ]
534 interface IShellItemArray : IUnknown
535 {
536  typedef [v1_enum] enum SIATTRIBFLAGS {
537  SIATTRIBFLAGS_AND = 0x0001,
538  SIATTRIBFLAGS_OR = 0x0002,
539  SIATTRIBFLAGS_APPCOMPAT = 0x0003,
540  SIATTRIBFLAGS_MASK = 0x0003,
541  SIATTRIBFLAGS_ALLITEMS = 0x4000
542  } SIATTRIBFLAGS;
543  cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)")
544 
545  HRESULT BindToHandler(
546  [in, unique] IBindCtx *pbc,
547  [in] REFGUID bhid,
548  [in] REFIID riid,
549  [out, iid_is(riid)] void **ppvOut);
550 
551  HRESULT GetPropertyStore(
552  [in] GETPROPERTYSTOREFLAGS flags,
553  [in] REFIID riid,
554  [out, iid_is(riid)] void **ppv);
555 
556  HRESULT GetPropertyDescriptionList(
557  [in] REFPROPERTYKEY keyType,
558  [in] REFIID riid,
559  [out, iid_is(riid)] void **ppv);
560 
561  HRESULT GetAttributes(
562  [in] SIATTRIBFLAGS AttribFlags,
563  [in] SFGAOF sfgaoMask,
564  [out] SFGAOF *psfgaoAttribs);
565 
566  HRESULT GetCount(
567  [out] DWORD *pdwNumItems);
568 
569  HRESULT GetItemAt(
570  [in] DWORD dwIndex,
571  [out] IShellItem **ppsi);
572 
573  HRESULT EnumItems(
574  [out] IEnumShellItems **ppenumShellItems);
575 
576 }
577 
579 {
580  DOGIF_DEFAULT = 0x0,
581  DOGIF_TRAVERSE_LINK = 0x1,
582  DOGIF_NO_HDROP = 0x2,
583  DOGIF_NO_URL = 0x4,
584  DOGIF_ONLY_IF_ONE = 0x8
586 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)")
587 
593 cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);")
594 cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);")
596 cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia);")
598 
599 /*****************************************************************************
600  * IShellItemFilter interface
601  */
602 [
603  object,
604  uuid(2659B475-EEB8-48B7-8F07-B378810F48CF),
606 ]
608 {
609  HRESULT IncludeItem(
610  [in] IShellItem *psi);
611 
612  HRESULT GetEnumFlagsForItem(
613  [in] IShellItem *psi,
614  [out] SHCONTF *pgrfFlags);
615 }
616 
617 /*****************************************************************************
618  * FOLDERSETTINGS
619  */
620 typedef char *LPVIEWSETTINGS;
621 
622 typedef enum
623 {
624  FWF_AUTOARRANGE = 0x00000001,
625  FWF_ABBREVIATEDNAMES = 0x00000002,
626  FWF_SNAPTOGRID = 0x00000004,
627  FWF_OWNERDATA = 0x00000008,
628  FWF_BESTFITWINDOW = 0x00000010,
629  FWF_DESKTOP = 0x00000020,
630  FWF_SINGLESEL = 0x00000040,
631  FWF_NOSUBFOLDERS = 0x00000080,
632  FWF_TRANSPARENT = 0x00000100,
633  FWF_NOCLIENTEDGE = 0x00000200,
634  FWF_NOSCROLL = 0x00000400,
635  FWF_ALIGNLEFT = 0x00000800,
636  FWF_NOICONS = 0x00001000,
637  FWF_SHOWSELALWAYS = 0x00002000,
638  FWF_NOVISIBLE = 0x00004000,
640  FWF_NOWEBVIEW = 0x00010000,
641  FWF_HIDEFILENAMES = 0x00020000,
642  FWF_CHECKSELECT = 0x00040000,
643  FWF_NOENUMREFRESH = 0x00080000,
644  FWF_NOGROUPING = 0x00100000,
645  FWF_FULLROWSELECT = 0x00200000,
646  FWF_NOFILTERS = 0x00400000,
647  FWF_NOCOLUMNHEADER = 0x00800000,
649  FWF_EXTENDEDTILES = 0x02000000,
650  FWF_TRICHECKSELECT = 0x04000000,
651  FWF_AUTOCHECKSELECT = 0x08000000,
653  FWF_SUBSETGROUPS = 0x20000000,
654  FWF_USESEARCHFOLDER = 0x40000000,
655  FWF_ALLOWRTLREADING = 0x80000000
656 } FOLDERFLAGS;
657 
658 typedef enum
659 {
660  FVM_AUTO =-1,
661  FVM_ICON = 1,
664  FVM_LIST = 3,
667  FVM_TILE = 6,
672 
673 typedef struct
674 {
679 
680 /*****************************************************************************
681  * IShellIcon interface
682  */
683 [
684  uuid(000214e5-0000-0000-c000-000000000046),
685  object,
687 ]
688 interface IShellIcon : IUnknown
689 {
690  HRESULT GetIconOf(
691  [in] PCUITEMID_CHILD pidl,
692  [in] UINT flags,
693  [out] int *pIconIndex);
694 }
695 
696 /*****************************************************************************
697  * IShellView interface
698  */
699 interface IShellBrowser; /* forward declaration */
700 [
701  object,
702  uuid(000214e3-0000-0000-c000-000000000046),
704 ]
706 {
708 
709  cpp_quote("#define SVSI_DESELECT 0x00000000")
710  cpp_quote("#define SVSI_SELECT 0x00000001")
711  cpp_quote("#define SVSI_EDIT 0x00000003")
712  cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004")
713  cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008")
714  cpp_quote("#define SVSI_FOCUSED 0x00000010")
715  cpp_quote("#define SVSI_TRANSLATEPT 0x00000020")
716  cpp_quote("#define SVSI_SELECTIONMARK 0x00000040")
717  cpp_quote("#define SVSI_POSITIONITEM 0x00000080")
718  cpp_quote("#define SVSI_CHECK 0x00000100")
719  cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000")
720 
721  typedef UINT SVSIF;
722 
723  typedef enum
724  {
725  SVGIO_BACKGROUND = 0x00000000,
726  SVGIO_SELECTION = 0x00000001,
727  SVGIO_ALLVIEW = 0x00000002,
728  SVGIO_CHECKED = 0x00000003,
729  SVGIO_TYPE_MASK = 0x0000000f,
730  SVGIO_FLAG_VIEWORDER = 0x80000000,
731  } SVGIO;
732 
733  typedef enum
734  {
735  SVUIA_DEACTIVATE = 0,
736  SVUIA_ACTIVATE_NOFOCUS = 1,
737  SVUIA_ACTIVATE_FOCUS = 2,
738  SVUIA_INPLACEACTIVATE = 3
739  } SVUIA_STATUS;
740 
741  HRESULT TranslateAccelerator( [in] MSG *pmsg );
742  HRESULT EnableModeless( [in] BOOL fEnable );
743  HRESULT UIActivate( [in] UINT uState );
744  HRESULT Refresh();
745  HRESULT CreateViewWindow(
746  [in] IShellView *psvPrevious,
747  [in] LPCFOLDERSETTINGS lpfs,
748  [in] IShellBrowser *psb,
749  [out] RECT *prcView,
750  [out] HWND *phWnd);
751 
752  HRESULT DestroyViewWindow();
753  HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs );
754 
755  [local] HRESULT AddPropertySheetPages(
756  [in] DWORD dwReserved,
757  [in] LPFNSVADDPROPSHEETPAGE pfn,
758  [in] LPARAM lparam);
759 
760  HRESULT SaveViewState();
761  HRESULT SelectItem(
762  [in] LPCITEMIDLIST pidlItem,
763  [in] SVSIF uFlags);
764  HRESULT GetItemObject(
765  [in] UINT uItem,
766  [in] REFIID riid,
767  [out, iid_is(riid)] void **ppv);
768 }
769 
770 [
771  object,
772  uuid(88e39e80-3578-11cf-ae69-08002b2e1262),
774 ]
776 {
777  typedef GUID SHELLVIEWID;
778 cpp_quote("#include <pshpack8.h>")
780  {
789 cpp_quote("#include <poppack.h>")
790 
791  HRESULT GetView(
792  [in, out] SHELLVIEWID *view_guid,
793  [in] ULONG view_type
794  );
795  HRESULT CreateViewWindow2(
796  [in] LPSV2CVW2_PARAMS view_params
797  );
798  HRESULT HandleRename(
799  [in] LPCITEMIDLIST new_pidl
800  );
801  HRESULT SelectAndPositionItem(
802  [in] LPCITEMIDLIST item,
803  [in] UINT flags,
804  [in] POINT *point
805  );
806 }
807 
808 [
809  object,
810  uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
812 ]
814 {
816  {
817  SV3CVW3_DEFAULT = 0x00000000,
818  SV3CVW3_NONINTERACTIVE = 0x00000001,
819  SV3CVW3_FORCEVIEWMODE = 0x00000002,
820  SV3CVW3_FORCEFOLDERFLAGS = 0x00000004
821  };
822 
824 
825  HRESULT CreateViewWindow3(
826  [in] IShellBrowser *owner,
827  [in, unique] IShellView *prev_view,
828  [in] SV3CVW3_FLAGS view_flags,
829  [in] FOLDERFLAGS mask,
830  [in] FOLDERFLAGS flags,
831  [in] FOLDERVIEWMODE mode,
832  [in, unique] const SHELLVIEWID *view_id,
833  [in] const RECT *rect,
834  [out] HWND *hwnd);
835 }
836 
837 /*****************************************************************************
838  * IFolderView interface
839  */
840 [
841  uuid(cde725b0-ccc9-4519-917e-325d72fab4ce),
842  object,
844 ]
846 {
847  HRESULT GetCurrentViewMode( [out] UINT *mode );
848  HRESULT SetCurrentViewMode( [in] UINT mode );
849  HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv );
850  HRESULT Item(
851  [in] int index,
852  [out] PITEMID_CHILD *ppidl
853  );
854  HRESULT ItemCount(
855  [in] UINT flags,
856  [out] int *items
857  );
858  HRESULT Items(
859  [in] UINT flags,
860  [in] REFIID riid,
861  [out, iid_is(riid)] void **ppv
862  );
863  HRESULT GetSelectionMarkedItem( [out] int *item );
864  HRESULT GetFocusedItem( [out] int *item );
865  HRESULT GetItemPosition(
866  [in] PCUITEMID_CHILD pidl,
867  [out] POINT* ppt
868  );
869  HRESULT GetSpacing( [in, out, unique] POINT* pt );
870  HRESULT GetDefaultSpacing( [out] POINT* pt );
871  HRESULT GetAutoArrange();
872  HRESULT SelectItem(
873  [in] int item,
874  [in] DWORD flags
875  );
876  HRESULT SelectAndPositionItems(
877  [in] UINT cidl,
878  [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
879  [in, unique, size_is(cidl)] POINT* apt,
880  [in] DWORD flags
881  );
882 }
883 
885 {
888 };
889 typedef int SORTDIRECTION;
890 
891 typedef struct SORTCOLUMN
892 {
893  PROPERTYKEY propkey;
895 } SORTCOLUMN;
896 
897 typedef [v1_enum] enum FVTEXTTYPE
898 {
900 } FVTEXTTYPE;
901 
902 [
903  uuid(1af3a467-214f-4298-908e-06b03e0b39f9),
904  object,
906 ]
908 {
909  HRESULT SetGroupBy(
911  [in] BOOL ascending);
912 
913  [local]
914  HRESULT GetGroupBy(
915  [out] PROPERTYKEY *pkey,
916  [out] BOOL *ascending);
917 
918  [call_as(GetGroupBy)]
919  HRESULT RemoteGetGroupBy(
920  [out] PROPERTYKEY *pkey,
921  [out] BOOL *ascending);
922 
923  HRESULT SetViewProperty(
924  [in] PCUITEMID_CHILD pidl,
925  [in] REFPROPERTYKEY propkey,
926  [in] REFPROPVARIANT propvar);
927 
928  HRESULT GetViewProperty(
929  [in] PCUITEMID_CHILD pidl,
930  [in] REFPROPERTYKEY propkey,
931  [out] PROPVARIANT *propvar);
932 
933  HRESULT SetTileViewProperties(
934  [in] PCUITEMID_CHILD pidl,
935  [in, string] LPCWSTR prop_list);
936 
937  HRESULT SetExtendedTileViewProperties(
938  [in] PCUITEMID_CHILD pidl,
939  [in, string] LPCWSTR prop_list);
940 
941  HRESULT SetText(
942  [in] FVTEXTTYPE type,
943  [in] LPCWSTR text);
944 
945  HRESULT SetCurrentFolderFlags(
946  [in] DWORD mask,
947  [in] DWORD flags);
948 
949  HRESULT GetCurrentFolderFlags([out] DWORD *flags);
950 
951  HRESULT GetSortColumnCount([out] int *columns);
952 
953  HRESULT SetSortColumns(
954  [in, size_is(count)] const SORTCOLUMN *columns,
955  [in] int count);
956 
957  HRESULT GetSortColumns(
958  [out, size_is(count)] SORTCOLUMN *columns,
959  [in] int count);
960 
961  HRESULT GetItem(
962  [in] int ittem,
963  [in] REFIID riid,
964  [out, iid_is(riid)] void **ppv);
965 
966  HRESULT GetVisibleItem(
967  [in] int start,
968  [in] BOOL previous,
969  [out] int *item);
970 
972  [in] int start,
973  [out] int *item);
974 
975  HRESULT GetSelection(
976  [in] BOOL none_implies_folder,
977  [out] IShellItemArray **array);
978 
979  HRESULT GetSelectionState(
980  [in] PCUITEMID_CHILD pidl,
981  [out] DWORD *flags);
982 
983  HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb);
984 
985  HRESULT SetViewModeAndIconSize(
987  [in] int size);
988 
989  HRESULT GetViewModeAndIconSize(
990  [out] FOLDERVIEWMODE *mode,
991  [out] int *size);
992 
993  HRESULT SetGroupSubsetCount([in] UINT visible_rows);
994 
995  HRESULT GetGroupSubsetCount([out] UINT *visible_rows);
996 
997  HRESULT SetRedraw([in] BOOL redraw);
998 
999  HRESULT IsMoveInSameFolder();
1000 
1001  HRESULT DoRename();
1002 }
1003 
1004 /*****************************************************************************
1005  * IShellBrowser interface
1006  */
1007 [
1008  object,
1009  uuid(000214e2-0000-0000-c000-000000000046),
1011 ]
1013 {
1015 
1016 cpp_quote("#define SBSP_DEFBROWSER 0x00000000")
1017 cpp_quote("#define SBSP_SAMEBROWSER 0x00000001")
1018 cpp_quote("#define SBSP_NEWBROWSER 0x00000002")
1019 cpp_quote("#define SBSP_DEFMODE 0x00000000")
1020 cpp_quote("#define SBSP_OPENMODE 0x00000010")
1021 cpp_quote("#define SBSP_EXPLOREMODE 0x00000020")
1022 cpp_quote("#define SBSP_HELPMODE 0x00000040")
1023 cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080")
1024 cpp_quote("#define SBSP_ABSOLUTE 0x00000000")
1025 cpp_quote("#define SBSP_RELATIVE 0x00001000")
1026 cpp_quote("#define SBSP_PARENT 0x00002000")
1027 cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")
1028 cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")
1029 cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
1030 cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000")
1031 cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000")
1032 cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000")
1033 cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000")
1034 cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000")
1035 cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000")
1036 cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000")
1037 cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000")
1038 cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
1039 cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
1040 cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000")
1041 cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000")
1042 cpp_quote("#define SBSP_REDIRECT 0x40000000")
1043 cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
1044 
1045 cpp_quote("#define FCW_STATUS 0x0001")
1046 cpp_quote("#define FCW_TOOLBAR 0x0002")
1047 cpp_quote("#define FCW_TREE 0x0003")
1048 cpp_quote("#define FCW_INTERNETBAR 0x0006")
1049 cpp_quote("#define FCW_PROGRESS 0x0008")
1050 
1051 cpp_quote("#define FCT_MERGE 0x0001")
1052 cpp_quote("#define FCT_CONFIGABLE 0x0002")
1053 cpp_quote("#define FCT_ADDTOEND 0x0004")
1054 
1055 cpp_quote("#if 0")
1056  typedef LPARAM LPTBBUTTONSB;
1057 cpp_quote("#else")
1058 cpp_quote("#include <commctrl.h>")
1059 cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
1060 cpp_quote("#endif")
1061 
1062  HRESULT InsertMenusSB(
1063  [in] HMENU hmenuShared,
1064  [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
1065 
1066  HRESULT SetMenuSB(
1067  [in] HMENU hmenuShared,
1068  [in] HOLEMENU holemenuReserved,
1069  [in] HWND hwndActiveObject);
1070 
1071  HRESULT RemoveMenusSB( [in] HMENU hmenuShared );
1072  HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText );
1073  HRESULT EnableModelessSB( [in] BOOL fEnable );
1074  HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID );
1075 
1076  HRESULT BrowseObject(
1077  [in] LPCITEMIDLIST pidl,
1078  [in] UINT wFlags);
1079 
1080  HRESULT GetViewStateStream(
1081  [in] DWORD grfMode,
1082  [out] IStream **ppStrm);
1083 
1084  HRESULT GetControlWindow(
1085  [in] UINT id,
1086  [out] HWND *phwnd);
1087 
1088  [local] HRESULT SendControlMsg(
1089  [in] UINT id,
1090  [in] UINT uMsg,
1091  [in] WPARAM wParam,
1092  [in] LPARAM lParam,
1093  [in] LRESULT *pret);
1094 
1095  HRESULT QueryActiveShellView( [out] IShellView **ppshv );
1096  HRESULT OnViewWindowActive( [in] IShellView *pshv );
1097 
1098  [local]
1099  HRESULT SetToolbarItems(
1100  [in] LPTBBUTTONSB lpButtons,
1101  [in] UINT nButtons,
1102  [in] UINT uFlags);
1103 }
1104 
1105 
1106 /*****************************************************************************
1107  * IShellLinkA interface
1108  */
1109 [
1110  object,
1111  uuid(000214ee-0000-0000-c000-000000000046),
1113 ]
1115 {
1116  typedef enum
1117  {
1118  SLR_NO_UI = 0x0001,
1119  SLR_ANY_MATCH = 0x0002,
1120  SLR_UPDATE = 0x0004,
1121  SLR_NOUPDATE = 0x0008,
1122  SLR_NOSEARCH = 0x0010,
1123  SLR_NOTRACK = 0x0020,
1124  SLR_NOLINKINFO = 0x0040,
1125  SLR_INVOKE_MSI = 0x0080,
1126  SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
1127  } SLR_FLAGS;
1128 
1129  typedef enum
1130  {
1131  SLGP_SHORTPATH = 0x0001,
1132  SLGP_UNCPRIORITY = 0x0002,
1133  SLGP_RAWPATH = 0x0004,
1134  } SLGP_FLAGS;
1135 
1136  HRESULT GetPath(
1137  [out, size_is(cch)] LPSTR pszFile,
1138  [in] int cch,
1140  [in] DWORD fFlags);
1141 
1142  HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
1143 
1144  HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
1145 
1146  HRESULT GetDescription(
1147  [out, size_is(cch)] LPSTR pszName,
1148  [in] int cch);
1149 
1150  HRESULT SetDescription( [in] LPCSTR pszName );
1151 
1152  HRESULT GetWorkingDirectory(
1153  [out, size_is(cch)] LPSTR pszDir,
1154  [in] int cch);
1155 
1156  HRESULT SetWorkingDirectory( [in] LPCSTR pszDir );
1157 
1158  HRESULT GetArguments(
1159  [out, size_is(cch)] LPSTR pszArgs,
1160  [in] int cch);
1161 
1162  HRESULT SetArguments( [in] LPCSTR pszArgs );
1163 
1164  HRESULT GetHotkey( [out] WORD *pwHotkey );
1165 
1166  HRESULT SetHotkey( [in] WORD wHotkey );
1167 
1168  HRESULT GetShowCmd( [out] int *piShowCmd );
1169 
1170  HRESULT SetShowCmd( [in] int iShowCmd );
1171 
1172  HRESULT GetIconLocation(
1173  [out, size_is(cch)] LPSTR pszIconPath,
1174  [in] int cch,
1175  [out] int *piIcon);
1176 
1177  HRESULT SetIconLocation(
1178  [in] LPCSTR pszIconPath,
1179  [in] int iIcon);
1180 
1181  HRESULT SetRelativePath(
1182  [in] LPCSTR pszPathRel,
1183  [in] DWORD dwReserved);
1184 
1185  HRESULT Resolve(
1186  [in] HWND hwnd,
1187  [in] DWORD fFlags);
1188 
1189  HRESULT SetPath( [in] LPCSTR pszFile );
1190 }
1191 
1192 
1193 /*****************************************************************************
1194  * IShellLinkW interface
1195  */
1196 [
1197  object,
1198  uuid(000214f9-0000-0000-c000-000000000046),
1200 ]
1202 {
1203  HRESULT GetPath(
1204  [out, size_is(cch)] LPWSTR pszFile,
1205  [in] int cch,
1206  [in, out] WIN32_FIND_DATAW *pfd,
1207  [in] DWORD fFlags);
1208 
1209  HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
1210 
1211  HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
1212 
1213  HRESULT GetDescription(
1214  [out, size_is(cch)] LPWSTR pszName,
1215  [in] int cch);
1216 
1217  HRESULT SetDescription( [in] LPCWSTR pszName );
1218 
1219  HRESULT GetWorkingDirectory(
1220  [out, size_is(cch)] LPWSTR pszDir,
1221  [in] int cch);
1222 
1223  HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir );
1224 
1225  HRESULT GetArguments(
1226  [out, size_is(cch)] LPWSTR pszArgs,
1227  [in] int cch);
1228 
1229  HRESULT SetArguments( [in] LPCWSTR pszArgs );
1230 
1231  HRESULT GetHotkey( [out] WORD *pwHotkey );
1232 
1233  HRESULT SetHotkey( [in] WORD wHotkey );
1234 
1235  HRESULT GetShowCmd( [out] int *piShowCmd );
1236 
1237  HRESULT SetShowCmd( [in] int iShowCmd );
1238 
1239  HRESULT GetIconLocation(
1240  [out, size_is(cch)] LPWSTR pszIconPath,
1241  [in] int cch,
1242  [out] int *piIcon);
1243 
1244  HRESULT SetIconLocation(
1245  [in] LPCWSTR pszIconPath,
1246  [in] int iIcon);
1247 
1248  HRESULT SetRelativePath(
1249  [in] LPCWSTR pszPathRel,
1250  [in] DWORD dwReserved);
1251 
1252  HRESULT Resolve(
1253  [in] HWND hwnd,
1254  [in] DWORD fFlags);
1255 
1256  HRESULT SetPath( [in] LPCWSTR pszFile );
1257 }
1258 
1259 cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)")
1260 
1261 
1262 /*****************************************************************************
1263  * IShellExtInit interface
1264  */
1265 [
1266  object,
1267  uuid(000214e8-0000-0000-c000-000000000046),
1269  local
1270 ]
1272 {
1274 
1276  [in] LPCITEMIDLIST pidlFolder,
1277  [in] IDataObject *pdtobj,
1278  [in] HKEY hkeyProgID);
1279 }
1280 
1281 
1282 /*******************************************************************************/
1283 /* Note: the following interfaces are not in shobjidl.idl under Windows, they */
1284 /* are declared directly in shlobj.h. It hopefully won't break anything to put */
1285 /* them here anyway. */
1286 /*******************************************************************************/
1287 
1288 #ifndef MAX_PATH
1289 #define MAX_PATH 260
1290 #endif
1291 
1292 
1293 /*****************************************************************************
1294  * IPersistFolder3 interface
1295  */
1296 [
1297  object,
1298  uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf),
1300 ]
1302 {
1303  typedef struct
1304  {
1306  WCHAR szTargetParsingName[MAX_PATH];
1307  WCHAR szNetworkProvider[MAX_PATH];
1309  int csidl;
1311 
1312  HRESULT InitializeEx(
1313  [in] IBindCtx *pbc,
1314  [in] LPCITEMIDLIST pidlRoot,
1315  [in] const PERSIST_FOLDER_TARGET_INFO *ppfti);
1316 
1317  HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti );
1318 }
1319 
1320 
1321 /*****************************************************************************
1322  * IExtractIconA interface
1323  */
1324 [
1325  object,
1326  uuid(000214eb-0000-0000-c000-000000000046),
1328  local
1329 ]
1331 {
1332 cpp_quote("#define GIL_OPENICON 0x0001")
1333 cpp_quote("#define GIL_FORSHELL 0x0002")
1334 cpp_quote("#define GIL_ASYNC 0x0020")
1335 cpp_quote("#define GIL_DEFAULTICON 0x0040")
1336 cpp_quote("#define GIL_FORSHORTCUT 0x0080")
1337 
1338 cpp_quote("#define GIL_SIMULATEDOC 0x0001")
1339 cpp_quote("#define GIL_PERINSTANCE 0x0002")
1340 cpp_quote("#define GIL_PERCLASS 0x0004")
1341 cpp_quote("#define GIL_NOTFILENAME 0x0008")
1342 cpp_quote("#define GIL_DONTCACHE 0x0010")
1343 
1344  typedef IExtractIconA *LPEXTRACTICONA;
1345 
1346  HRESULT GetIconLocation(
1347  [in] UINT uFlags,
1348  [out, size_is(cchMax)] LPSTR szIconFile,
1349  [in] UINT cchMax,
1350  [out] INT *piIndex,
1351  [out] UINT *pwFlags);
1352 
1353  HRESULT Extract(
1354  [in] LPCSTR pszFile,
1355  [in] UINT nIconIndex,
1356  [out] HICON *phiconLarge,
1357  [out] HICON *phiconSmall,
1358  [in] UINT nIconSize );
1359 }
1360 
1361 
1362 /*****************************************************************************
1363  * IExtractIconW interface
1364  */
1365 [
1366  object,
1367  uuid(000214fa-0000-0000-c000-000000000046),
1369  local
1370 ]
1372 {
1374 
1375  HRESULT GetIconLocation(
1376  [in] UINT uFlags,
1377  [out, size_is(cchMax)] LPWSTR szIconFile,
1378  [in] UINT cchMax,
1379  [out] INT *piIndex,
1380  [out] UINT *pwFlags);
1381 
1382  HRESULT Extract(
1383  [in] LPCWSTR pszFile,
1384  [in] UINT nIconIndex,
1385  [out] HICON *phiconLarge,
1386  [out] HICON *phiconSmall,
1387  [in] UINT nIconSize );
1388 }
1389 
1390 cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)")
1391 cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)")
1392 
1393 
1394 /*****************************************************************************
1395  * ICommDlgBrowser interface
1396  */
1397 [
1398  object,
1399  uuid(000214f1-0000-0000-c000-000000000046),
1401 ]
1403 {
1404 cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")
1405 cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")
1406 cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")
1407 cpp_quote("#define CDBOSC_RENAME 0x00000003")
1408 cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
1409 
1411 
1412  HRESULT OnDefaultCommand( [in] IShellView *shv );
1413  HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange );
1414  HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl );
1415 }
1416 
1417 
1418 /*****************************************************************************
1419  * ICommDlgBrowser2 interface
1420  */
1421 [
1422  object,
1423  uuid(10339516-2894-11D2-9039-00C04F8EEB3E),
1425 ]
1427 {
1428 
1429  HRESULT Notify(
1430  [in] IShellView *ppshv,
1431  [in] DWORD dwNotifyType);
1432 
1433  HRESULT GetDefaultMenuText(
1434  [in] IShellView *ppshv,
1435  [out, string, size_is(cchMax)] LPWSTR pszText,
1436  [in] int cchMax);
1437 
1438  HRESULT GetViewFlags(
1439  [out] DWORD *pdwFlags);
1440 }
1441 
1442 
1443 /*****************************************************************************
1444  * ICommDlgBrowser3 interface
1445  */
1446 [
1447  object,
1448  uuid(C8AD25A1-3294-41EE-8165-71174BD01C57),
1450 ]
1452 {
1453 
1454  HRESULT OnColumnClicked(
1455  [in] IShellView *ppshv,
1456  [in] int iColumn);
1457 
1458  HRESULT GetCurrentFilter(
1459  [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec,
1460  [in] int cchFileSpec);
1461 
1462  HRESULT OnPreviewCreated(
1463  [in] IShellView *ppshv);
1464 }
1465 
1466 /*****************************************************************************
1467  * IDockingWindow interface
1468  */
1469 [
1470  object,
1471  uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8)
1472 ]
1474 {
1475  HRESULT ShowDW(
1476  [in] BOOL fShow);
1477 
1478  HRESULT CloseDW(
1479  [in] DWORD dwReserved);
1480 
1481  HRESULT ResizeBorderDW(
1482  [in] LPCRECT prcBorder,
1483  [in] IUnknown *punkToolbarSite,
1484  [in] BOOL fReserved);
1485 };
1486 
1487 
1488 /*****************************************************************************
1489  * IDockingWindowFrame interface
1490  */
1491 [
1492  object,
1493  uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8),
1495  local
1496 ]
1498 {
1499 cpp_quote("#define DWFRF_NORMAL 0x0000")
1500 cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001")
1501 cpp_quote("#define DWFAF_HIDDEN 0x0001")
1502 
1503  HRESULT AddToolbar(
1504  [in] IUnknown *punkSrc,
1505  [in] LPCWSTR pwszItem,
1506  [in] DWORD dwAddFlags);
1507 
1508  HRESULT RemoveToolbar(
1509  [in] IUnknown *punkSrc,
1510  [in] DWORD dwRemoveFlags);
1511 
1512  HRESULT FindToolbar(
1513  [in] LPCWSTR pwszItem,
1514  [in] REFIID riid,
1515  [out] LPVOID *ppvObj);
1516 }
1517 
1518 
1519 /*****************************************************************************
1520  * IDragSourceHelper interface
1521  */
1522 [
1523  object,
1524  uuid(de5bf786-477a-11d2-839d-00c04fd918d0),
1526  local
1527 ]
1529 {
1530  typedef struct
1531  {
1537 
1538  HRESULT InitializeFromBitmap(
1539  [in] LPSHDRAGIMAGE pshdi,
1540  [in] IDataObject *pDataObject);
1541 
1542  HRESULT InitializeFromWindow(
1543  [in] HWND hwnd,
1544  [in] POINT *ppt,
1545  [in] IDataObject *pDataObject);
1546 }
1547 
1548 
1549 /*****************************************************************************
1550  * IDropTargetHelper interface
1551  */
1552 [
1553  object,
1554  uuid(4657278b-411b-11d2-839a-00c04fd918d0),
1556  local
1557 ]
1559 {
1560  HRESULT DragEnter(
1561  [in] HWND hwndTarget,
1562  [in] IDataObject *pDataObject,
1563  [in] POINT *ppt,
1564  [in] DWORD dwEffect);
1565 
1566  HRESULT DragLeave();
1567 
1568  HRESULT DragOver(
1569  [in] POINT *ppt,
1570  [in] DWORD dwEffect);
1571 
1572  HRESULT Drop(
1573  [in] IDataObject *pDataObject,
1574  [in] POINT *ppt,
1575  [in] DWORD dwEffect);
1576 
1577  HRESULT Show( [in] BOOL fShow );
1578 }
1579 
1580 
1581 /*****************************************************************************
1582  * IContextMenu interface
1583  */
1584 [
1585  object,
1586  uuid(000214e4-0000-0000-c000-000000000046),
1588  local
1589 ]
1591 {
1592 cpp_quote("#define CMF_NORMAL 0x00000000")
1593 cpp_quote("#define CMF_DEFAULTONLY 0x00000001")
1594 cpp_quote("#define CMF_VERBSONLY 0x00000002")
1595 cpp_quote("#define CMF_EXPLORE 0x00000004")
1596 cpp_quote("#define CMF_NOVERBS 0x00000008")
1597 cpp_quote("#define CMF_CANRENAME 0x00000010")
1598 cpp_quote("#define CMF_NODEFAULT 0x00000020")
1599 cpp_quote("#define CMF_INCLUDESTATIC 0x00000040")
1600 cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100")
1601 cpp_quote("#define CMF_RESERVED 0xffff0000")
1602 
1603 cpp_quote("#define GCS_VERBA 0x00000000")
1604 cpp_quote("#define GCS_HELPTEXTA 0x00000001")
1605 cpp_quote("#define GCS_VALIDATEA 0x00000002")
1606 cpp_quote("#define GCS_VERBW 0x00000004")
1607 cpp_quote("#define GCS_HELPTEXTW 0x00000005")
1608 cpp_quote("#define GCS_VALIDATEW 0x00000006")
1609 cpp_quote("#define GCS_UNICODE 0x00000004")
1610 cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)")
1611 cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)")
1612 cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)")
1613 
1614 cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")
1615 cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")
1616 cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")
1617 cpp_quote("#if defined(__GNUC__)")
1618 cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }")
1619 cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }")
1620 cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }")
1621 cpp_quote("#elif defined(_MSC_VER)")
1622 cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"")
1623 cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"")
1624 cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")
1625 cpp_quote("#else")
1626 cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};")
1627 cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};")
1628 cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};")
1629 cpp_quote("#endif")
1630 cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)")
1631 cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")
1632 cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
1633 
1634 cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
1635 cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
1636 cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
1637 cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
1638 cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
1639 cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
1640 cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
1641 cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
1642 cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
1643 cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC")
1644 cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
1645 cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
1646 cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
1647 cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")
1648 cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS")
1649 
1650  typedef IContextMenu *LPCONTEXTMENU;
1651 
1652  typedef struct tagCMINVOKECOMMANDINFO
1653  {
1654  DWORD cbSize;
1655  DWORD fMask;
1656  HWND hwnd;
1657  LPCSTR lpVerb;
1658  LPCSTR lpParameters;
1659  LPCSTR lpDirectory;
1660  INT nShow;
1661  DWORD dwHotKey;
1662  HANDLE hIcon;
1663  } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
1664 
1665  typedef struct tagCMInvokeCommandInfoEx
1666  {
1667  DWORD cbSize;
1668  DWORD fMask;
1669  HWND hwnd;
1670  LPCSTR lpVerb;
1671  LPCSTR lpParameters;
1672  LPCSTR lpDirectory;
1673  INT nShow;
1674  DWORD dwHotKey;
1675  HANDLE hIcon;
1676  LPCSTR lpTitle;
1677  LPCWSTR lpVerbW;
1678  LPCWSTR lpParametersW;
1679  LPCWSTR lpDirectoryW;
1680  LPCWSTR lpTitleW;
1681  POINT ptInvoke;
1682  } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
1683 
1684  HRESULT QueryContextMenu(
1685  [in] HMENU hmenu,
1686  [in] UINT indexMenu,
1687  [in] UINT idCmdFirst,
1688  [in] UINT idCmdLast,
1689  [in] UINT uFlags);
1690 
1691  HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici );
1692 
1693  HRESULT GetCommandString(
1694  [in] UINT_PTR idCmd,
1695  [in] UINT uType,
1696  [out] UINT *pwReserved,
1697  [out, size_is(cchMax)] LPSTR pszName,
1698  [in] UINT cchMax);
1699 }
1700 
1701 
1702 /*****************************************************************************
1703  * IContextMenu2 interface
1704  */
1705 [
1706  object,
1707  uuid(000214f4-0000-0000-c000-000000000046),
1708  pointer_default(unique),
1709  local
1710 ]
1711 interface IContextMenu2 : IContextMenu
1712 {
1713  typedef IContextMenu2 *LPCONTEXTMENU2;
1714 
1715  HRESULT HandleMenuMsg(
1716  [in] UINT uMsg,
1717  [in] WPARAM wParam,
1718  [in] LPARAM lParam);
1719 }
1720 
1721 
1722 /*****************************************************************************
1723  * IContextMenu3 interface
1724  */
1725 [
1726  object,
1727  uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719),
1728  pointer_default(unique),
1729  local
1730 ]
1731 interface IContextMenu3 : IContextMenu2
1732 {
1733  typedef IContextMenu3 *LPCONTEXTMENU3;
1734 
1735  HRESULT HandleMenuMsg2(
1736  [in] UINT uMsg,
1737  [in] WPARAM wParam,
1738  [in] LPARAM lParam,
1739  [out] LRESULT *plResult);
1740 }
1741 
1742 /*****************************************************************************
1743  * IContextMenuCB interface
1744  */
1745 
1746 [
1747  object,
1748  uuid(3409e930-5a39-11d1-83fa-00a0c90dc849),
1749  pointer_default(unique),
1750  local
1751 ]
1752 interface IContextMenuCB : IUnknown
1753 {
1754  HRESULT CallBack(
1755  [in] IShellFolder *psf,
1756  [in] HWND hwndOwner,
1757  [in] IDataObject *pdtobj,
1758  [in] UINT uMsg,
1759  [in] WPARAM wParam,
1760  [in] LPARAM lParam);
1761 }
1762 
1763 /*****************************************************************************
1764  * IShellExecuteHookA interface
1765  */
1766 [
1767  object,
1768  uuid(000214f5-0000-0000-c000-000000000046),
1769  pointer_default(unique),
1770  local
1771 ]
1772 interface IShellExecuteHookA : IUnknown
1773 {
1774  cpp_quote("struct _SHELLEXECUTEINFOA;")
1775  HRESULT Execute(
1776  [in, out] struct _SHELLEXECUTEINFOA* pei);
1777 }
1778 
1779 
1780 /*****************************************************************************
1781  * IShellExecuteHookW interface
1782  */
1783 [
1784  object,
1785  uuid(000214fb-0000-0000-c000-000000000046),
1786  pointer_default(unique),
1787  local
1788 ]
1789 interface IShellExecuteHookW : IUnknown
1790 {
1791  cpp_quote("struct _SHELLEXECUTEINFOW;")
1792  HRESULT Execute(
1793  [in, out] struct _SHELLEXECUTEINFOW* pei);
1794 }
1795 
1796 /*****************************************************************************
1797  * IShellLinkDataList interface
1798  */
1799 [
1800  object,
1801  uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1),
1802  pointer_default(unique)
1803 ]
1804 interface IShellLinkDataList : IUnknown
1805 {
1806  [local] HRESULT AddDataBlock(
1807  [in] void *pDataBlock);
1808  [local] HRESULT CopyDataBlock(
1809  [in] DWORD dwSig,
1810  [out] void **ppDataBlock);
1811  HRESULT RemoveDataBlock(
1812  [in] DWORD dwSig);
1813  HRESULT GetFlags(
1814  [out] DWORD *pdwFlags);
1815  HRESULT SetFlags(
1816  [in] DWORD dwFlags);
1817 }
1818 
1819 
1820 /*****************************************************************************
1821  * IResolveShellLink interface
1822  */
1823 [
1824  object,
1825  uuid(5cd52983-9449-11d2-963a-00c04f79adf0),
1826  pointer_default(unique)
1827 ]
1828 interface IResolveShellLink : IUnknown
1829 {
1830  HRESULT ResolveShellLink(
1831  [in] IUnknown *punk,
1832  [in] HWND hwnd,
1833  [in] DWORD fFlags);
1834 }
1835 
1836 
1837 /*****************************************************************************
1838  * IURLSearchHook interface
1839  */
1840 [
1841  object,
1842  uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497),
1843  pointer_default(unique),
1844  local
1845 ]
1846 interface IURLSearchHook : IUnknown
1847 {
1848  HRESULT Translate(
1849  [in, out] LPWSTR lpwszSearchURL,
1850  [in] DWORD cchBufferSize);
1851 }
1852 
1853 
1854 /*****************************************************************************
1855  * ISearchContext interface
1856  */
1857 [
1858  object,
1859  uuid(09f656a2-41af-480c-88f7-16cc0d164615),
1860  pointer_default(unique),
1861  local
1862 ]
1863 interface ISearchContext : IUnknown
1864 {
1865  HRESULT GetSearchUrl(
1866  [in] BSTR *pbstrSearchUrl);
1867  HRESULT GetSearchText(
1868  [in] BSTR *pbstrSearchText);
1869  HRESULT GetSearchStyle(
1870  [in] BSTR *pdwSearchStyle);
1871 }
1872 
1873 
1874 /*****************************************************************************
1875  * IURLSearchHook2 interface
1876  */
1877 [
1878  object,
1879  uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0),
1880  pointer_default(unique),
1881  local
1882 ]
1883 interface IURLSearchHook2 : IURLSearchHook
1884 {
1885  HRESULT TranslateWithSearchContext(
1886  [in, out] LPWSTR lpwszSearchURL,
1887  [in] DWORD cchBufferSize,
1888  [in] ISearchContext *pSearchContext);
1889 }
1890 
1891 
1892 cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")
1893 
1894 /*****************************************************************************
1895  * INewShortcutHookA interface
1896  */
1897 [
1898  object,
1899  uuid(000214e1-0000-0000-c000-000000000046),
1900  pointer_default(unique),
1901  local
1902 ]
1903 interface INewShortcutHookA : IUnknown
1904 {
1905  HRESULT SetReferent(
1906  [in] LPCSTR pcszReferent,
1907  [in] HWND hwnd);
1908  HRESULT GetReferent(
1909  [out] LPSTR pcszReferent,
1910  [in] int cchReferent);
1911  HRESULT SetFolder(
1912  [in] LPCSTR pcszReferent);
1913  HRESULT GetFolder(
1914  [out] LPSTR pcszReferent,
1915  [in] int cchFolder);
1916  HRESULT GetName(
1917  [out] LPSTR pszName,
1918  [in] int cchName);
1919  HRESULT GetExtension(
1920  [out] LPSTR pszExtension,
1921  [in] int cchExtension);
1922 }
1923 
1924 
1925 /*****************************************************************************
1926  * INewShortcutHookW interface
1927  */
1928 [
1929  object,
1930  uuid(000214f7-0000-0000-c000-000000000046),
1931  pointer_default(unique),
1932  local
1933 ]
1934 interface INewShortcutHookW : IUnknown
1935 {
1936  HRESULT SetReferent(
1937  [in] LPCWSTR pcszReferent,
1938  [in] HWND hwnd);
1939  HRESULT GetReferent(
1940  [out] LPWSTR pcszReferent,
1941  [in] int cchReferent);
1942  HRESULT SetFolder(
1943  [in] LPCWSTR pcszReferent);
1944  HRESULT GetFolder(
1945  [out] LPWSTR pcszReferent,
1946  [in] int cchFolder);
1947  HRESULT GetName(
1948  [out] LPWSTR pszName,
1949  [in] int cchName);
1950  HRESULT GetExtension(
1951  [out] LPWSTR pszExtension,
1952  [in] int cchExtension);
1953 }
1954 
1955 /*****************************************************************************
1956  * IRunnableTask interface
1957  */
1958 [
1959  object,
1960  uuid(85788d00-6807-11d0-b810-00c04fd706ec),
1961  pointer_default(unique),
1962  local
1963 ]
1964 interface IRunnableTask : IUnknown
1965 {
1966  HRESULT Run();
1967  HRESULT Kill([in] BOOL fWait);
1968  HRESULT Suspend();
1969  HRESULT Resume();
1970  ULONG IsRunning();
1971 }
1972 
1973 /*****************************************************************************
1974  * IShellChangeNotify interface
1975  */
1976 [
1977  object,
1978  uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
1979  pointer_default(unique),
1980  local
1981 ]
1982 interface IShellChangeNotify : IUnknown
1983 {
1984  HRESULT OnChange(
1985  [in] LONG lEvent,
1986  [in] LPCITEMIDLIST pidl1,
1987  [in] LPCITEMIDLIST pidl2);
1988 }
1989 
1990 cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"")
1991 
1992 /*****************************************************************************
1993  * IFileSystemBindData interface
1994  */
1995 [
1996  object,
1997  uuid(01e18d10-4d8b-11d2-855d-006008059367),
1999  local
2000 ]
2002 {
2003  HRESULT SetFindData(
2004  [in] const WIN32_FIND_DATAW *pfd);
2005  HRESULT GetFindData(
2006  [out] WIN32_FIND_DATAW *pfd);
2007 }
2008 
2009 /*****************************************************************************
2010  * ITaskbarList interface
2011  */
2012 [
2013  object,
2014  uuid(56FDF342-FD6D-11d0-958A-006097C9A090),
2016 ]
2018 {
2019  HRESULT HrInit();
2020 
2021  HRESULT AddTab(
2022  [in] HWND hwnd);
2023 
2024  HRESULT DeleteTab(
2025  [in] HWND hwnd);
2026 
2027  HRESULT ActivateTab(
2028  [in] HWND hwnd);
2029 
2030  HRESULT SetActiveAlt(
2031  [in] HWND hwnd);
2032 }
2033 
2034 /*****************************************************************************
2035  * ITaskbarList2 interface
2036  */
2037 [
2038  object,
2039  uuid(602D4995-B13A-429B-A66E-1935E44F4317),
2041 ]
2043 {
2044  HRESULT MarkFullscreenWindow(
2045  [in] HWND hwnd,
2046  [in] BOOL fullscreen);
2047 }
2048 
2049 cpp_quote("#ifdef MIDL_PASS")
2051 cpp_quote("#endif")
2052 
2053 typedef [v1_enum] enum THUMBBUTTONFLAGS {
2054  THBF_ENABLED = 0x0000,
2055  THBF_DISABLED = 0x0001,
2058  THBF_HIDDEN = 0x0008,
2061 
2062 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)")
2063 
2064 typedef [v1_enum] enum THUMBBUTTONMASK {
2065  THB_BITMAP = 0x0001,
2066  THB_ICON = 0x0002,
2067  THB_TOOLTIP = 0x0004,
2068  THB_FLAGS = 0x0008
2070 
2071 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)")
2072 
2073 cpp_quote("#include <pshpack8.h>")
2074 typedef struct THUMBBUTTON {
2076  UINT iId;
2077  UINT iBitmap;
2078  HICON hIcon;
2079  WCHAR szTip[260];
2082 cpp_quote("#include <poppack.h>")
2083 
2084 [
2085  uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
2086  object
2087 ]
2089 {
2090  typedef [v1_enum] enum TBPFLAG {
2091  TBPF_NOPROGRESS = 0x0000,
2092  TBPF_INDETERMINATE = 0x0001,
2093  TBPF_NORMAL = 0x0002,
2094  TBPF_ERROR = 0x0004,
2095  TBPF_PAUSED = 0x0008
2096  } TBPFLAG;
2097 
2098  cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)")
2099 
2100  HRESULT SetProgressValue(
2101  [in] HWND hwnd,
2102  [in] ULONGLONG ullCompleted,
2103  [in] ULONGLONG ullTotal);
2104 
2105  HRESULT SetProgressState(
2106  [in] HWND hwnd,
2107  [in] TBPFLAG tbpFlags);
2108 
2109  HRESULT RegisterTab(
2110  [in] HWND hwndTab,
2111  [in] HWND hwndMDI);
2112 
2113  HRESULT UnregisterTab([in] HWND hwndTab);
2114 
2115  HRESULT SetTabOrder(
2116  [in] HWND hwndTab,
2117  [in] HWND hwndInsertBefore);
2118 
2119  HRESULT SetTabActive(
2120  [in] HWND hwndTab,
2121  [in] HWND hwndMDI,
2122  [in] DWORD dwReserved);
2123 
2124  HRESULT ThumbBarAddButtons(
2125  [in] HWND hwnd,
2126  [in] UINT cButtons,
2127  [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
2128 
2129  HRESULT ThumbBarUpdateButtons(
2130  [in] HWND hwnd,
2131  [in] UINT cButtons,
2132  [in, size_is(cButtons)] LPTHUMBBUTTON pButton);
2133 
2134  HRESULT ThumbBarSetImageList(
2135  [in] HWND hwnd,
2136  [in] HIMAGELIST himl);
2137 
2138  HRESULT SetOverlayIcon(
2139  [in] HWND hwnd,
2140  [in] HICON hIcon,
2141  [in, unique, string] LPCWSTR pszDescription);
2142 
2143  HRESULT SetThumbnailTooltip(
2144  [in] HWND hwnd,
2145  [in, unique, string] LPCWSTR pszTip);
2146 
2147  HRESULT SetThumbnailClip(
2148  [in] HWND hwnd,
2149  [in] RECT *prcClip);
2150 }
2151 
2152 [
2153  uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a),
2154  object
2155 ]
2157 {
2158  typedef [v1_enum] enum STPFLAG {
2159  STPF_NONE = 0x0000,
2160  STPF_USEAPPTHUMBNAILALWAYS = 0x0001,
2161  STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002,
2162  STPF_USEAPPPEEKALWAYS = 0x0004,
2163  STPF_USEAPPPEEKWHENACTIVE = 0x0008
2164  } STPFLAG;
2165 
2166  cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)")
2167 
2168  HRESULT SetTabProperties(
2169  [in] HWND hwndTab,
2170  [in] STPFLAG stpFlags);
2171 }
2172 
2173 /*****************************************************************************
2174  * IDefaultExtractIconInit interface
2175  */
2176 
2177 [
2178  object,
2179  uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */
2180  pointer_default(unique),
2181  local
2182 ]
2184 {
2185  HRESULT SetDefaultIcon(
2186  [in] LPCWSTR pszFile,
2187  [in] int iIcon);
2188  HRESULT SetFlags(
2189  [in] UINT uFlags);
2190  HRESULT SetKey(
2191  [in] HKEY hkey);
2192  HRESULT SetNormalIcon(
2193  [in] LPCWSTR pszFile,
2194  [in] int iIcon);
2195  HRESULT SetOpenIcon(
2196  [in] LPCWSTR pszFile,
2197  [in] int iIcon);
2198  HRESULT SetShortcutIcon(
2199  [in] LPCWSTR pszFile,
2200  [in] int iIcon);
2201 }
2202 
2203 
2204 #ifdef __REACTOS__
2205 /*****************************************************************************
2206  * IExplorerCommand interface (Vista+)
2207  */
2208 
2209 interface IEnumExplorerCommand;
2210 
2211 [
2212  uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9),
2213  pointer_default(unique)
2214 ]
2215 interface IExplorerCommand : IUnknown
2216 {
2217  cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source")
2218  typedef [v1_enum] enum _EXPCMDSTATE
2219  {
2220  ECS_ENABLED = 0x000,
2221  ECS_DISABLED = 0x001,
2222  ECS_HIDDEN = 0x002,
2223  ECS_CHECKBOX = 0x004,
2224  ECS_CHECKED = 0x008,
2225  ECS_RADIOCHECK = 0x010, // Windows 7
2226  } EXPCMDSTATE;
2227 
2228  typedef [v1_enum] enum _EXPCMDFLAGS
2229  {
2230  ECF_DEFAULT = 0x000,
2231  ECF_HASSUBCOMMANDS = 0x001,
2232  ECF_HASSPLITBUTTON = 0x002,
2233  ECF_HIDELABEL = 0x004,
2234  ECF_ISSEPARATOR = 0x008,
2235  ECF_HASLUASHIELD = 0x010,
2236  ECF_SEPARATORBEFORE = 0x020, // Windows 7
2237  ECF_SEPARATORAFTER = 0x040, // Windows 7
2238  ECF_ISDROPDOWN = 0x080, // Windows 7
2239  ECF_TOGGLEABLE = 0x100, // Windows 8
2240  ECF_AUTOMENUICONS = 0x200, // Windows 8
2241  } EXPCMDFLAGS;
2242 
2243  HRESULT GetTitle(
2244  [in, unique] IShellItemArray *psiItemArray,
2245  [out, string] LPWSTR *ppszName);
2246  HRESULT GetIcon(
2247  [in, unique] IShellItemArray *psiItemArray,
2248  [out, string] LPWSTR *ppszIcon);
2249  HRESULT GetToolTip(
2250  [in, unique] IShellItemArray *psiItemArray,
2251  [out, string] LPWSTR *ppszInfotip);
2252  HRESULT GetCanonicalName(
2253  [out] GUID* pguidCommandName);
2254  HRESULT GetState(
2255  [in] IShellItemArray *psiItemArray,
2256  [in] BOOL fOkToBeSlow,
2257  [out] EXPCMDSTATE *pCmdState);
2258  HRESULT Invoke(
2259  [in] IShellItemArray *psiItemArray,
2260  [in, unique] IBindCtx *pbc);
2261  HRESULT GetFlags(
2262  [out] EXPCMDFLAGS *pFlags);
2263  HRESULT EnumSubCommands(
2264  [out] IEnumExplorerCommand **ppEnum);
2265 };
2266 
2267 
2268 /*****************************************************************************
2269  * IExplorerCommandState interface (Vista+)
2270  */
2271 [
2272  object,
2273  uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE),
2274  pointer_default(unique)
2275 ]
2276 interface IExplorerCommandState : IUnknown
2277 {
2278  HRESULT GetState(
2279  [in] IShellItemArray *psiItemArray,
2280  [in] BOOL fOkToBeSlow,
2281  [out] EXPCMDSTATE *pCmdState);
2282 }
2283 
2284 
2285 /*****************************************************************************
2286  * IInitializeCommand interface (Vista+)
2287  */
2288 [
2289  object,
2290  uuid(85075ACF-231F-40EA-9610-D26B7B58F638),
2291  pointer_default(unique)
2292 ]
2293 interface IInitializeCommand : IUnknown
2294 {
2296  [in, string] LPCWSTR pszCommandName,
2297  [in] IPropertyBag *ppb);
2298 }
2299 
2300 
2301 /*****************************************************************************
2302  * IEnumExplorerCommand interface (Vista+)
2303  */
2304 [
2305  object,
2306  uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8),
2307  pointer_default(unique)
2308 ]
2309 interface IEnumExplorerCommand : IUnknown
2310 {
2311  [local]
2312  HRESULT Next(
2313  [in] ULONG celt,
2314  [out] IExplorerCommand** pUICommand,
2315  [out, optional] ULONG *pceltFetched);
2316  [call_as(Next)]
2317  HRESULT RemoteNext(
2318  [in] ULONG celt,
2319  [out] IExplorerCommand** pUICommand,
2320  [out, optional] ULONG *pceltFetched);
2321  HRESULT Skip(
2322  [in] ULONG celt);
2323  HRESULT Reset();
2324  HRESULT Clone(
2325  [out] IEnumExplorerCommand **ppenum);
2326 };
2327 
2328 
2329 /*****************************************************************************
2330  * IExplorerCommandProvider interface (Vista+)
2331  */
2332 [
2333  uuid(64961751-0835-43C0-8FFE-D57686530E64),
2334  pointer_default(unique)
2335 ]
2336 interface IExplorerCommandProvider : IUnknown
2337 {
2338  cpp_quote("// GetCommands usually creates an IEnumExplorerCommand")
2339  cpp_quote("// GetCommand usually creates an IExplorerCommand")
2340 
2341  HRESULT GetCommands(
2342  [in] IUnknown *punkSite,
2343  [in] REFIID riid,
2344  [out, iid_is(riid)] void **ppv);
2345  HRESULT GetCommand(
2346  [in] REFGUID rguidCommandId,
2347  [in] REFIID riid,
2348  [out, iid_is(riid)] void **ppv);
2349 };
2350 
2351 #endif // __REACTOS__
2352 
2353 /*****************************************************************************
2354  * IDeskBand interface
2355  */
2356 cpp_quote("#define DBIM_MINSIZE 0x0001")
2357 cpp_quote("#define DBIM_MAXSIZE 0x0002")
2358 cpp_quote("#define DBIM_INTEGRAL 0x0004")
2359 cpp_quote("#define DBIM_ACTUAL 0x0008")
2360 cpp_quote("#define DBIM_TITLE 0x0010")
2361 cpp_quote("#define DBIM_MODEFLAGS 0x0020")
2362 cpp_quote("#define DBIM_BKCOLOR 0x0040")
2363 
2364 cpp_quote("#include <pshpack8.h>")
2365 
2366 typedef struct tagDESKBANDINFO
2367 {
2373  WCHAR wszTitle[256];
2376 } DESKBANDINFO;
2377 
2378 cpp_quote("#include <poppack.h>")
2379 
2380 cpp_quote("#define DBIMF_NORMAL 0x0000")
2381 cpp_quote("#define DBIMF_FIXED 0x0001")
2382 cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)")
2383 cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008")
2384 cpp_quote("#define DBIMF_UNDELETEABLE 0x0010")
2385 cpp_quote("#define DBIMF_DEBOSSED 0x0020")
2386 cpp_quote("#define DBIMF_BKCOLOR 0x0040")
2387 cpp_quote("#define DBIMF_USECHEVRON 0x0080")
2388 cpp_quote("#define DBIMF_BREAK 0x0100")
2389 cpp_quote("#define DBIMF_ADDTOFRONT 0x0200")
2390 cpp_quote("#define DBIMF_TOPALIGN 0x0400")
2391 cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
2392 cpp_quote("#define DBIMF_NOGRIPPER 0x0800")
2393 cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000")
2394 cpp_quote("#define DBIMF_NOMARGINS 0x2000")
2395 cpp_quote("#endif // NTDDI_LONGHORN")
2396 
2397 cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000")
2398 cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001")
2399 cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002")
2400 cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004")
2401 
2411 };
2412 
2413 cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1")
2414 cpp_quote("#define DBPC_SELECTLAST (DWORD)-2")
2415 
2416 cpp_quote("#define CGID_DeskBand IID_IDeskBand")
2417 
2418 [
2419  uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC),
2420  object,
2421 ]
2423 {
2424  HRESULT GetBandInfo(
2425  [in] DWORD dwBandID,
2426  [in] DWORD dwViewMode,
2427  [in, out] DESKBANDINFO* pdbi);
2428 }
2429 
2430 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
2431 
2432 [
2433  uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC),
2434  object,
2435  pointer_default(unique),
2436  local
2437 ]
2439 {
2440  HRESULT SetClient([in] IUnknown* punkClient);
2441 
2442  HRESULT GetClient([out] IUnknown** ppunkClient);
2443 
2444  HRESULT OnPosRectChangeDB([in] RECT *prc);
2445 }
2446 
2447 
2448 /*****************************************************************************
2449  * IMenuPopup interface
2450  */
2451 [
2452  uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4),
2453  object,
2454  pointer_default(unique),
2455  local
2456 ]
2458 {
2460  {
2461  MPOS_EXECUTE = 0,
2466  MPOS_CHILDTRACKING
2467  };
2468 
2470  {
2471  MPPF_SETFOCUS = 0x00000001,
2472  MPPF_INITIALSELECT = 0x00000002,
2473  MPPF_NOANIMATE = 0x00000004,
2474  MPPF_KEYBOARD = 0x00000010,
2475  MPPF_REPOSITION = 0x00000020,
2476  MPPF_FORCEZORDER = 0x00000040,
2477  MPPF_FINALSELECT = 0x00000080,
2478  MPPF_TOP = 0x20000000,
2479  MPPF_LEFT = 0x40000000,
2480  MPPF_RIGHT = 0x60000000,
2481  MPPF_BOTTOM = 0x80000000,
2482  MPPF_POS_MASK = 0xE0000000,
2483  MPPF_ALIGN_LEFT = 0x02000000,
2484  MPPF_ALIGN_RIGHT = 0x04000000
2485  };
2486  typedef int MP_POPUPFLAGS;
2487 
2488  HRESULT Popup(
2489  [in] POINTL *ppt,
2490  [in] RECTL *prcExclude,
2491  [in] MP_POPUPFLAGS dwFlags);
2492 
2493  HRESULT OnSelect([in] DWORD dwSelectType);
2494 
2495  HRESULT SetSubMenu(
2496  [in] IMenuPopup* pmp,
2497  [in] BOOL fSet);
2498 }
2499 
2500 cpp_quote("#endif /* _WIN32_IE_IE60 */")
2501 
2502 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)")
2503 
2504 /*****************************************************************************
2505  * IBandSite interface
2506  */
2507 cpp_quote("#include <pshpack8.h>")
2508 
2510 {
2514 } BANDSITEINFO;
2515 
2516 cpp_quote("#include <poppack.h>")
2517 
2518 
2522 };
2523 
2524 cpp_quote("#define BSIM_STATE 0x00000001")
2525 cpp_quote("#define BSIM_STYLE 0x00000002")
2526 
2527 cpp_quote("#define BSSF_VISIBLE 0x00000001")
2528 cpp_quote("#define BSSF_NOTITLE 0x00000002")
2529 cpp_quote("#define BSSF_UNDELETEABLE 0x00001000")
2530 
2531 cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000")
2532 cpp_quote("#define BSIS_NOGRIPPER 0x00000001")
2533 cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002")
2534 cpp_quote("#define BSIS_LEFTALIGN 0x00000004")
2535 cpp_quote("#define BSIS_SINGLECLICK 0x00000008")
2536 cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010")
2537 cpp_quote("#define BSIS_NODROPTARGET 0x00000020")
2538 cpp_quote("#define BSIS_NOCAPTION 0x00000040")
2539 cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080")
2540 cpp_quote("#define BSIS_LOCKED 0x00000100")
2541 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
2542 cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200")
2543 cpp_quote("#endif /* _WIN32_IE_IE70 */")
2544 
2545 cpp_quote("#define SID_SBandSite IID_IBandSite")
2546 cpp_quote("#define CGID_BandSite IID_IBandSite")
2547 
2548 [
2549  object,
2550  uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5)
2551 ]
2552 interface IBandSite : IUnknown
2553 {
2554  HRESULT AddBand([in] IUnknown* punk);
2555 
2556  HRESULT EnumBands(
2557  [in] UINT uBand,
2558  [out] DWORD* pdwBandID);
2559 
2560  HRESULT QueryBand(
2561  [in] DWORD dwBandID,
2562  [out] IDeskBand** ppstb,
2563  [out] DWORD* pdwState,
2564  [out, string, size_is(cchName)] LPWSTR pszName,
2565  [in] int cchName);
2566 
2567  HRESULT SetBandState(
2568  [in] DWORD dwBandID,
2569  [in] DWORD dwMask,
2570  [in] DWORD dwState);
2571 
2572  HRESULT RemoveBand([in] DWORD dwBandID);
2573 
2574  HRESULT GetBandObject(
2575  [in] DWORD dwBandID,
2576  [in] REFIID riid,
2577  [out, iid_is(riid)] void **ppv);
2578 
2579  HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo);
2580 
2581  HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo);
2582 }
2583 
2584 cpp_quote("#endif /* _WIN32_IE_IE40 */")
2585 
2586 /*****************************************************************************
2587  * IMenuBand interface
2588  */
2589 [
2590  uuid(568804CD-CBD7-11d0-9816-00C04FD91972),
2591  object,
2592  pointer_default(unique),
2593  local
2594 ]
2595 interface IMenuBand : IUnknown
2596 {
2598  MBHANDCID_PIDLSELECT = 0,
2599  };
2600 
2601  HRESULT IsMenuMessage([in] MSG* pmsg);
2602 
2603  HRESULT TranslateMenuMessage(
2604  [in, out] MSG* pmsg,
2605  [out] LRESULT* plRet);
2606 }
2607 
2608 /*****************************************************************************
2609  * IShellMenuCallback interface
2610  */
2611 cpp_quote("#include <pshpack8.h>")
2612 
2614 {
2626  void *pvUserData;
2627 } SMDATA, *LPSMDATA;
2628 
2629 cpp_quote("#define SMDM_SHELLFOLDER 0x00000001")
2630 cpp_quote("#define SMDM_HMENU 0x00000002")
2631 cpp_quote("#define SMDM_TOOLBAR 0x00000004")
2632 
2634 {
2638  int iIcon;
2639 } SMINFO, *PSMINFO;
2640 
2642 {
2647 
2648 cpp_quote("#include <poppack.h>")
2649 
2650 enum
2651 {
2652  SMIM_TYPE = 0x00000001,
2653  SMIM_FLAGS = 0x00000002,
2654  SMIM_ICON = 0x00000004
2655 };
2656 
2657 enum
2658 {
2659  SMIT_SEPARATOR = 0x00000001,
2660  SMIT_STRING = 0x00000002
2661 };
2662 
2663 enum
2664 {
2665  SMIF_ICON = 0x00000001,
2666  SMIF_ACCELERATOR = 0x00000002,
2667  SMIF_DROPTARGET = 0x00000004,
2668  SMIF_SUBMENU = 0x00000008,
2669  SMIF_CHECKED = 0x00000020,
2670  SMIF_DROPCASCADE = 0x00000040,
2671  SMIF_HIDDEN = 0x00000080,
2672  SMIF_DISABLED = 0x00000100,
2673  SMIF_TRACKPOPUP = 0x00000200,
2674  SMIF_DEMOTED = 0x00000400,
2675  SMIF_ALTSTATE = 0x00000800,
2676  SMIF_DRAGNDROP = 0x00001000,
2677  SMIF_NEW = 0x00002000,
2678 };
2679 
2680 
2681 cpp_quote("#define SMC_INITMENU 0x00000001")
2682 cpp_quote("#define SMC_CREATE 0x00000002")
2683 cpp_quote("#define SMC_EXITMENU 0x00000003")
2684 cpp_quote("#define SMC_GETINFO 0x00000005")
2685 cpp_quote("#define SMC_GETSFINFO 0x00000006")
2686 cpp_quote("#define SMC_GETOBJECT 0x00000007")
2687 cpp_quote("#define SMC_GETSFOBJECT 0x00000008")
2688 cpp_quote("#define SMC_SFEXEC 0x00000009")
2689 cpp_quote("#define SMC_SFSELECTITEM 0x0000000A")
2690 cpp_quote("#define SMC_REFRESH 0x00000010")
2691 cpp_quote("#define SMC_DEMOTE 0x00000011")
2692 cpp_quote("#define SMC_PROMOTE 0x00000012")
2693 cpp_quote("#define SMC_DEFAULTICON 0x00000016")
2694 cpp_quote("#define SMC_NEWITEM 0x00000017")
2695 cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019")
2696 cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A")
2697 cpp_quote("#define SMC_SETSFOBJECT 0x0000002D")
2698 cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E")
2699 cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F")
2700 cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030")
2701 
2702 [
2703  uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0),
2704  object,
2705  pointer_default(unique),
2706  local
2707 ]
2709 {
2710  HRESULT CallbackSM(
2711  [in, out] LPSMDATA psmd,
2712  [in] UINT uMsg,
2713  [in] WPARAM wParam,
2714  [in] LPARAM lParam);
2715 }
2716 
2717 
2718 /*****************************************************************************
2719  * IShellMenu interface
2720  */
2721 
2722 cpp_quote("#define SMINIT_DEFAULT 0x00000000")
2723 cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002")
2724 cpp_quote("#define SMINIT_TOPLEVEL 0x00000004")
2725 cpp_quote("#define SMINIT_CACHED 0x00000010")
2726 cpp_quote("#define SMINIT_VERTICAL 0x10000000")
2727 cpp_quote("#define SMINIT_HORIZONTAL 0x20000000")
2728 cpp_quote("")
2729 cpp_quote("#define ANCESTORDEFAULT (UINT)-1")
2730 cpp_quote("")
2731 cpp_quote("#define SMSET_TOP 0x10000000")
2732 cpp_quote("#define SMSET_BOTTOM 0x20000000")
2733 cpp_quote("#define SMSET_DONTOWN 0x00000001")
2734 cpp_quote("")
2735 cpp_quote("#define SMINV_REFRESH 0x00000001")
2736 cpp_quote("#define SMINV_ID 0x00000008")
2737 
2738 [
2739  uuid(EE1F7637-E138-11d1-8379-00C04FD918D0),
2740  object,
2741  pointer_default(unique),
2742  local
2743 ]
2745 {
2747  [in] IShellMenuCallback *psmc,
2748  [in] UINT uId,
2749  [in] UINT uIdAncestor,
2750  [in] DWORD dwFlags);
2751 
2753  [out] IShellMenuCallback **ppsmc,
2754  [out] UINT *puId,
2755  [out] UINT *puIdAncestor,
2756  [out] DWORD *pdwFlags);
2757 
2758  HRESULT SetShellFolder(
2759  [in] IShellFolder *psf,
2760  [in] LPCITEMIDLIST pidlFolder,
2761  [in] HKEY hKey,
2762  [in] DWORD dwFlags);
2763 
2764  HRESULT GetShellFolder(
2765  [out] DWORD *pdwFlags,
2766  [out] LPITEMIDLIST *ppidl,
2767  [in] REFIID riid,
2768  [out] void **ppv);
2769 
2770  HRESULT SetMenu(
2771  [in] HMENU hmenu,
2772  [in] HWND hwnd,
2773  [in] DWORD dwFlags);
2774 
2775  HRESULT GetMenu(
2776  [out] HMENU *phmenu,
2777  [out] HWND *phwnd,
2778  [out] DWORD *pdwFlags);
2779 
2780  HRESULT InvalidateItem(
2781  [in] LPSMDATA psmd,
2782  [in] DWORD dwFlags);
2783 
2784  HRESULT GetState(
2785  [out] LPSMDATA psmd);
2786 
2787  HRESULT SetMenuToolbar(
2788  [in] IUnknown *punk,
2789  [in] DWORD dwFlags);
2790 }
2791 
2792 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
2793 
2794 /*****************************************************************************
2795  * ITrackShellMenu interface
2796  */
2797 [
2798  uuid(8278F932-2A3E-11d2-838F-00C04FD918D0),
2799  object,
2800  pointer_default(unique),
2801  local
2802 ]
2804 {
2805  HRESULT SetObscured(
2806  [in] HWND hwndTB,
2807  [in] IUnknown *punkBand,
2808  DWORD dwSMSetFlags);
2809 
2810  HRESULT Popup(
2811  [in] HWND hwnd,
2812  [in] POINTL *ppt,
2813  [in] RECTL *prcExclude,
2814  MP_POPUPFLAGS dwFlags);
2815 };
2816 
2817 cpp_quote("#endif /* _WIN32_IE_IE60 */")
2818 
2819 /*****************************************************************************
2820  * IAutoCompleteDropDown interface
2821  */
2822 [
2823  object,
2824  uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
2825  pointer_default(unique)
2826 ]
2828 {
2829 cpp_quote("#define ACDD_VISIBLE 0x0001")
2830 
2831  HRESULT GetDropDownStatus(
2832  [out] DWORD *pdwFlags,
2833  [out, string] LPWSTR *ppwszString);
2834 
2835  HRESULT ResetEnumerator();
2836 }
2837 
2838 /*****************************************************************************
2839  * IProfferService interface
2840  */
2841 [
2842  object,
2843  uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
2844  pointer_default(unique)
2845 ]
2847 {
2848  HRESULT ProfferService(
2849  [in] REFGUID service,
2850  [in] IServiceProvider *pService,
2851  [out] DWORD *pCookie);
2852 
2853  HRESULT RevokeService([in] DWORD cookie);
2854 }
2855 
2856 /*****************************************************************************
2857  * IExplorerBrowserEvents interface
2858  */
2859 [
2860  object,
2861  uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F)
2862 ]
2863 interface IExplorerBrowserEvents : IUnknown
2864 {
2865  HRESULT OnNavigationPending(
2866  [in] PCIDLIST_ABSOLUTE pidlFolder);
2867 
2868  HRESULT OnViewCreated(
2869  [in] IShellView *psv);
2870 
2871  HRESULT OnNavigationComplete(
2872  [in] PCIDLIST_ABSOLUTE pidlFolder);
2873 
2874  HRESULT OnNavigationFailed(
2875  [in] PCIDLIST_ABSOLUTE pidlFolder);
2876 }
2877 
2878 typedef GUID EXPLORERPANE;
2879 typedef EXPLORERPANE *REFEXPLORERPANE;
2880 
2881 cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
2882 
2883 /*****************************************************************************
2884  * IExplorerPaneVisibility interface
2885  */
2886 [
2887  object,
2888  uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC)
2889 ]
2890 interface IExplorerPaneVisibility : IUnknown
2891 {
2892  typedef enum tagEXPLORERPANESTATE {
2893  EPS_DONTCARE = 0x0,
2894  EPS_DEFAULT_ON = 0x1,
2895  EPS_DEFAULT_OFF = 0x2,
2896  EPS_STATE_MASK = 0xffff,
2897  EPS_INITIALSTATE = 0x10000,
2898  EPS_FORCE = 0x20000
2899  } EXPLORERPANESTATE;
2900 
2901  HRESULT GetPaneState(
2902  [in] REFEXPLORERPANE ep,
2903  [out] EXPLORERPANESTATE *peps);
2904 }
2905 
2906 typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS {
2907  EBF_NONE = 0,
2908  EBF_SELECTFROMDATAOBJECT = 0x100,
2909  EBF_NODROPTARGET = 0x200
2910 } EXPLORER_BROWSER_FILL_FLAGS;
2911 
2913  EBO_NONE = 0x00,
2923 
2924 cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
2925 
2926 /*****************************************************************************
2927  * IExplorerBrowser interface
2928  */
2929 [
2930  object,
2931  uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6),
2932  pointer_default(unique)
2933 ]
2935 {
2936 
2938  [in] HWND hwndParent,
2939  [in] const RECT *prc,
2940  [in, unique] const FOLDERSETTINGS *pfs);
2941 
2942  HRESULT Destroy();
2943 
2944  [local] HRESULT SetRect(
2945  [in,out,unique] HDWP *phdwp,
2946  [in] RECT rcBrowser);
2947 
2948  HRESULT SetPropertyBag(
2949  [in, string] LPCWSTR pszPropertyBag);
2950 
2951  HRESULT SetEmptyText(
2952  [in, string] LPCWSTR pszEmptyText);
2953 
2954  HRESULT SetFolderSettings(
2955  [in] const FOLDERSETTINGS *pfs);
2956 
2957  HRESULT Advise(
2958  [in] IExplorerBrowserEvents *psbe,
2959  [out] DWORD *pdwCookie);
2960 
2961  HRESULT Unadvise(
2962  [in] DWORD dwCookie);
2963 
2964  HRESULT SetOptions(
2965  [in] EXPLORER_BROWSER_OPTIONS dwFlag);
2966 
2967  HRESULT GetOptions(
2968  [out] EXPLORER_BROWSER_OPTIONS *pdwFlag);
2969 
2970  HRESULT BrowseToIDList(
2971  [in] PCUIDLIST_RELATIVE pidl,
2972  [in] UINT uFlags);
2973 
2974  HRESULT BrowseToObject(
2975  [in] IUnknown *punk,
2976  [in] UINT uFlags);
2977 
2978  HRESULT FillFromObject(
2979  [in] IUnknown *punk,
2980  [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
2981 
2982  HRESULT RemoveAll();
2983 
2984  HRESULT GetCurrentView(
2985  [in] REFIID riid,
2986  [out, iid_is(riid)] void **ppv);
2987 }
2988 
2989 /*****************************************************************************
2990  * INameSpaceTreeControl interface
2991  */
2992 [
2993  object,
2994  uuid(028212A3-B627-47E9-8856-C14265554E4F)
2995 ]
2997 {
2999  NSTCS_HASEXPANDOS = 0x00000001,
3000  NSTCS_HASLINES = 0x00000002,
3001  NSTCS_SINGLECLICKEXPAND = 0x00000004,
3002  NSTCS_FULLROWSELECT = 0x00000008,
3003  NSTCS_SPRINGEXPAND = 0x00000010,
3004  NSTCS_HORIZONTALSCROLL = 0x00000020,
3005  NSTCS_ROOTHASEXPANDO = 0x00000040,
3006  NSTCS_SHOWSELECTIONALWAYS = 0x00000080,
3007  NSTCS_NOINFOTIP = 0x00000200,
3008  NSTCS_EVENHEIGHT = 0x00000400,
3009  NSTCS_NOREPLACEOPEN = 0x00000800,
3010  NSTCS_DISABLEDRAGDROP = 0x00001000,
3011  NSTCS_NOORDERSTREAM = 0x00002000,
3012  NSTCS_RICHTOOLTIP = 0x00004000,
3013  NSTCS_BORDER = 0x00008000,
3014  NSTCS_NOEDITLABELS = 0x00010000,
3015  NSTCS_TABSTOP = 0x00020000,
3016  NSTCS_FAVORITESMODE = 0x00080000,
3017  NSTCS_AUTOHSCROLL = 0x00100000,
3018  NSTCS_FADEINOUTEXPANDOS = 0x00200000,
3019  NSTCS_EMPTYTEXT = 0x00400000,
3020  NSTCS_CHECKBOXES = 0x00800000,
3021  NSTCS_PARTIALCHECKBOXES = 0x01000000,
3022  NSTCS_EXCLUSIONCHECKBOXES = 0x02000000,
3023  NSTCS_DIMMEDCHECKBOXES = 0x04000000,
3024  NSTCS_NOINDENTCHECKS = 0x08000000,
3025  NSTCS_ALLOWJUNCTIONS = 0x10000000,
3026  NSTCS_SHOWTABSBUTTON = 0x20000000,
3027  NSTCS_SHOWDELETEBUTTON = 0x40000000,
3028  NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
3029  };
3030  typedef DWORD NSTCSTYLE;
3031 
3033  NSTCRS_VISIBLE = 0x0000,
3034  NSTCRS_HIDDEN = 0x0001,
3035  NSTCRS_EXPANDED = 0x0002
3036  };
3038 
3040  NSTCIS_NONE = 0x0000,
3041  NSTCIS_SELECTED = 0x0001,
3042  NSTCIS_EXPANDED = 0x0002,
3043  NSTCIS_BOLD = 0x0004,
3044  NSTCIS_DISABLED = 0x0008,
3045  NSTCIS_SELECTEDNOEXPAND = 0x0010
3046  };
3048 
3049  typedef [v1_enum] enum NSTCGNI {
3050  NSTCGNI_NEXT = 0,
3051  NSTCGNI_NEXTVISIBLE = 1,
3052  NSTCGNI_PREV = 2,
3053  NSTCGNI_PREVVISIBLE = 3,
3054  NSTCGNI_PARENT = 4,
3055  NSTCGNI_CHILD = 5,
3056  NSTCGNI_FIRSTVISIBLE = 6,
3057  NSTCGNI_LASTVISIBLE = 7
3058  } NSTCGNI;
3059 
3061  [in] HWND hwndParent,
3062  [in, unique] RECT *prc,
3063  [in] NSTCSTYLE nstcsFlags);
3064 
3065  HRESULT TreeAdvise(
3066  [in] IUnknown *punk,
3067  [out] DWORD *pdwCookie);
3068 
3069  HRESULT TreeUnadvise(
3070  [in] DWORD dwCookie);
3071 
3072  HRESULT AppendRoot(
3073  [in] IShellItem *psiRoot,
3074  [in] SHCONTF grfEnumFlags,
3075  [in] NSTCROOTSTYLE grfRootStyle,
3076  [in, unique] IShellItemFilter *pif);
3077 
3078  HRESULT InsertRoot(
3079  [in] int iIndex,
3080  [in] IShellItem *psiRoot,
3081  [in] SHCONTF grfEnumFlags,
3082  [in] NSTCROOTSTYLE grfRootStyle,
3083  [in, unique] IShellItemFilter *pif);
3084 
3085  HRESULT RemoveRoot(
3086  [in] IShellItem *psiRoot);
3087 
3088  HRESULT RemoveAllRoots();
3089 
3090  HRESULT GetRootItems(
3091  [out] IShellItemArray **ppsiaRootItems);
3092 
3093  HRESULT SetItemState(
3094  [in] IShellItem *psi,
3095  [in] NSTCITEMSTATE nstcisMask,
3096  [in] NSTCITEMSTATE nstcisFlags);
3097 
3098  HRESULT GetItemState(
3099  [in] IShellItem *psi,
3100  [in] NSTCITEMSTATE nstcismask,
3101  [out] NSTCITEMSTATE *pnstcisFlags);
3102 
3103  HRESULT GetSelectedItems(
3104  [out] IShellItemArray **psiaItems);
3105 
3106  HRESULT GetItemCustomState(
3107  [in] IShellItem *psi,
3108  [out] int *piStateNumber);
3109 
3110  HRESULT SetItemCustomState(
3111  [in] IShellItem *psi,
3112  [in] int iStateNumber);
3113 
3114  HRESULT EnsureItemVisible(
3115  [in] IShellItem *psi);
3116 
3117  HRESULT SetTheme(
3118  [in, string] LPCWSTR pszTheme);
3119 
3120  HRESULT GetNextItem(
3121  [in, unique] IShellItem *psi,
3122  [in] NSTCGNI nstcgi,
3123  [out] IShellItem **ppsiNext);
3124 
3125  HRESULT HitTest(
3126  [in] POINT *ppt,
3127  [out] IShellItem **ppsiOut);
3128 
3129  HRESULT GetItemRect(
3130  [in] IShellItem *psi,
3131  [out] RECT *prect);
3132 
3133  HRESULT CollapseAll();
3134 }
3135 
3136 /*****************************************************************************
3137  * INameSpaceTreeControl2 interface
3138  */
3139 [
3140  object,
3141  uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C)
3142 ]
3144 {
3145  typedef [v1_enum] enum NSTCSTYLE2 {
3146  NSTCS2_DEFAULT = 0x00,
3147  NSTCS2_INTERRUPTNOTIFICATIONS = 0x01,
3148  NSTCS2_SHOWNULLSPACEMENU = 0x02,
3149  NSTCS2_DISPLAYPADDING = 0x04,
3150  NSTCS2_DISPLAYPINNEDONLY = 0x08,
3151  NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */
3152  NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */
3153  } NSTCSTYLE2;
3154  cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
3155 
3156  HRESULT SetControlStyle(
3157  [in] NSTCSTYLE nstcsMask,
3158  [in] NSTCSTYLE nstcsStyle);
3159 
3160  HRESULT GetControlStyle(
3161  [in] NSTCSTYLE nstcsMask,
3162  [out] NSTCSTYLE *pnstcsStyle);
3163 
3164  HRESULT SetControlStyle2(
3165  [in] NSTCSTYLE2 nstcsMask,
3166  [in] NSTCSTYLE2 nstcsStyle);
3167 
3168  HRESULT GetControlStyle2(
3169  [in] NSTCSTYLE2 nstcsMask,
3170  [out] NSTCSTYLE2 *pnstcsStyle);
3171 }
3172 
3173 /*****************************************************************************
3174  * INameSpaceTreeControlEvents interface
3175  */
3176 
3177 [
3178  object,
3179  uuid(93D77985-B3D8-4484-8318-672CDDA002CE),
3180  local
3181 ]
3183 {
3185  NSTCEHT_NOWHERE = 0x0001,
3186  NSTCEHT_ONITEMICON = 0x0002,
3187  NSTCEHT_ONITEMLABEL = 0x0004,
3188  NSTCEHT_ONITEMIDENT = 0x0008,
3189  NSTCEHT_ONITEMBUTTON = 0x0010,
3190  NSTCEHT_ONITEMRIGHT = 0x0020,
3191  NSTCEHT_ONITEMSTATEICON = 0x0040,
3192  NSTCEHT_ONITEM = 0x0046,
3193  NSTCEHT_ONITEMTABBUTTON = 0x1000
3194  };
3196 
3198  NSTCECT_LBUTTON = 0x1,
3199  NSTCECT_MBUTTON = 0x2,
3200  NSTCECT_RBUTTON = 0x3,
3201  NSTCECT_BUTTON = 0x3,
3202  NSTCECT_DBLCLICK = 0x4
3203  };
3205 
3206  HRESULT OnItemClick(
3207  [in] IShellItem *psi,
3208  [in] NSTCEHITTEST nstceHitTest,
3209  [in] NSTCECLICKTYPE nstceClickType);
3210 
3211  HRESULT OnPropertyItemCommit(
3212  [in] IShellItem *psi);
3213 
3214  HRESULT OnItemStateChanging(
3215  [in] IShellItem *psi,
3216  [in] NSTCITEMSTATE nstcisMask,
3217  [in] NSTCITEMSTATE nstcisState);
3218 
3219  HRESULT OnItemStateChanged(
3220  [in] IShellItem *psi,
3221  [in] NSTCITEMSTATE nstcisMask,
3222  [in] NSTCITEMSTATE nstcisState);
3223 
3224  HRESULT OnSelectionChanged(
3225  [in] IShellItemArray *psiaSelection);
3226 
3227  HRESULT OnKeyboardInput(
3228  [in] UINT uMsg,
3229  [in] WPARAM wParam,
3230  [in] LPARAM lParam);
3231 
3232  HRESULT OnBeforeExpand(
3233  [in] IShellItem *psi);
3234 
3235  HRESULT OnAfterExpand(
3236  [in] IShellItem *psi);
3237 
3239  [in] IShellItem *psi);
3240 
3242  [in] IShellItem *psi);
3243 
3244  HRESULT OnGetToolTip(
3245  [in] IShellItem *psi,
3246  [out, string, size_is(cchTip)] LPWSTR pszTip,
3247  [in] int cchTip);
3248 
3249  HRESULT OnBeforeItemDelete(
3250  [in] IShellItem *psi);
3251 
3252  HRESULT OnItemAdded(
3253  [in] IShellItem *psi,
3254  [in] BOOL fIsRoot);
3255 
3256  HRESULT OnItemDeleted(
3257  [in] IShellItem *psi,
3258  [in] BOOL fIsRoot);
3259 
3260  HRESULT OnBeforeContextMenu(
3261  [in, unique] IShellItem *psi,
3262  [in] REFIID riid,
3263  [out, iid_is(riid)] void **ppv);
3264 
3265  HRESULT OnAfterContextMenu(
3266  [in] IShellItem *psi,
3267  [in] IContextMenu *pcmIn,
3268  [in] REFIID riid,
3269  [out, iid_is(riid)] void **ppv);
3270 
3271  HRESULT OnBeforeStateImageChange(
3272  [in] IShellItem *psi);
3273 
3274  HRESULT OnGetDefaultIconIndex(
3275  [in] IShellItem *psi,
3276  [out] int *piDefaultIcon,
3277  [out] int *piOpenIcon);
3278 }
3279 
3280 /*****************************************************************************
3281  * INameSpaceTreeControlCustomDraw interface
3282  */
3283 [
3284  object,
3285  uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78),
3286  local
3287 ]
3288 
3290 {
3291  typedef struct NSTCCUSTOMDRAW
3292  {
3295  NSTCITEMSTATE nstcis;
3297  int iImage;
3298  HIMAGELIST himl;
3299  int iLevel;
3300  int iIndent;
3301  } NSTCCUSTOMDRAW;
3302 
3303  HRESULT PrePaint(
3304  [in] HDC hdc,
3305  [in] RECT *prc,
3306  [out] LRESULT *plres);
3307 
3308  HRESULT PostPaint(
3309  [in] HDC hdc,
3310  [in] RECT *prc);
3311 
3312  HRESULT ItemPrePaint(
3313  [in] HDC hdc,
3314  [in] RECT *prc,
3315  [in, out] COLORREF *pclrText,
3316  [in, out] COLORREF *pclrTextBk,
3317  [out] LRESULT *plres);
3318 
3319  HRESULT ItemPostPaint(
3320  [in] HDC hdc,
3321  [in] RECT *prc,
3322  [in] NSTCCUSTOMDRAW *pnstccdItem);
3323 }
3324 
3325 /*****************************************************************************
3326  * INameSpaceTreeControlDropHandler interface
3327  */
3328 [
3329  object,
3330  uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51),
3331  local
3332 ]
3334 {
3335  HRESULT OnDragEnter(
3336  [in, unique] IShellItem *psiOver,
3337  [in] IShellItemArray *psiaData,
3338  [in] BOOL fOutsideSource,
3339  [in] DWORD grfKeyState,
3340  [in, out] DWORD *pdwEffect);
3341 
3342  HRESULT OnDragOver(
3343  [in, unique] IShellItem *psiOver,
3344  [in] IShellItemArray *psiaData,
3345  [in] DWORD grfKeyState,
3346  [in, out] DWORD *pdwEffect);
3347 
3348  HRESULT OnDragPosition(
3349  [in, unique] IShellItem *psiOver,
3350  [in] IShellItemArray *psiaData,
3351  [in] int iNewPosition,
3352  [in] int iOldPosition);
3353 
3354  HRESULT OnDrop(
3355  [in, unique] IShellItem *psiOver,
3356  [in] IShellItemArray *psiaData,
3357  [in] int iPosition,
3358  [in] DWORD grfKeyState,
3359  [in, out] DWORD *pdwEffect);
3360 
3361  HRESULT OnDropPosition(
3362  [in, unique] IShellItem *psiOver,
3363  [in] IShellItemArray *psiaData,
3364  [in] int iNewPosition,
3365  [in] int iOldPosition);
3366 
3367  HRESULT OnDragLeave(
3368  [in, unique] IShellItem *psiOver);
3369 }
3370 cpp_quote("#define NSTCDHPOS_ONTOP -1")
3371 
3373 
3375 {
3380 
3382 {
3387 
3388 /*****************************************************************************
3389  * IFileDialogEvents interface
3390  */
3391 [
3392  object,
3393  uuid(973510DB-7D7F-452B-8975-74A85828D354),
3394  pointer_default(unique)
3395 ]
3396 interface IFileDialogEvents : IUnknown
3397 {
3398  HRESULT OnFileOk(
3399  [in] IFileDialog *pfd);
3400 
3401  HRESULT OnFolderChanging(
3402  [in] IFileDialog *pfd,
3403  [in] IShellItem *psiFolder);
3404 
3405  HRESULT OnFolderChange(
3406  [in] IFileDialog *pfd);
3407 
3408  HRESULT OnSelectionChange(
3409  [in] IFileDialog *pfd);
3410 
3411  HRESULT OnShareViolation(
3412  [in] IFileDialog *pfd,
3413  [in] IShellItem *psi,
3414  [out] FDE_SHAREVIOLATION_RESPONSE *pResponse);
3415 
3416  HRESULT OnTypeChange(
3417  [in] IFileDialog *pfd);
3418 
3420  [in] IFileDialog *pfd,
3421  [in] IShellItem *psi,
3422  [out] FDE_OVERWRITE_RESPONSE *pResponse);
3423 }
3424 
3425 /*****************************************************************************
3426  * IModalWindow interface
3427  */
3428 [
3429  object,
3430  uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802),
3431  pointer_default(unique)
3432 ]
3433 interface IModalWindow : IUnknown
3434 {
3435  [local]
3436  HRESULT Show(
3437  [in, unique, annotation("__in_opt")] HWND hwndOwner);
3438 
3439  [call_as(Show)]
3440  HRESULT RemoteShow(
3441  [in, unique] HWND hwndOwner);
3442 }
3443 
3444 typedef [v1_enum] enum FDAP
3445 {
3446  FDAP_BOTTOM = 0,
3447  FDAP_TOP = 1
3448 } FDAP;
3449 
3450 /*****************************************************************************
3451  * IFileDialog interface
3452  */
3453 [
3454  object,
3455  uuid(42F85136-DB7E-439C-85F1-E4075D135FC8),
3456  pointer_default(unique)
3457 ]
3458 interface IFileDialog : IModalWindow
3459 {
3461  {
3462  FOS_OVERWRITEPROMPT = 0x00000002,
3463  FOS_STRICTFILETYPES = 0x00000004,
3464  FOS_NOCHANGEDIR = 0x00000008,
3465  FOS_PICKFOLDERS = 0x00000020,
3466  FOS_FORCEFILESYSTEM = 0x00000040,
3467  FOS_ALLNONSTORAGEITEMS = 0x00000080,
3468  FOS_NOVALIDATE = 0x00000100,
3469  FOS_ALLOWMULTISELECT = 0x00000200,
3470  FOS_PATHMUSTEXIST = 0x00000800,
3471  FOS_FILEMUSTEXIST = 0x00001000,
3472  FOS_CREATEPROMPT = 0x00002000,
3473  FOS_SHAREAWARE = 0x00004000,
3474  FOS_NOREADONLYRETURN = 0x00008000,
3475  FOS_NOTESTFILECREATE = 0x00010000,
3476  FOS_HIDEMRUPLACES = 0x00020000,
3477  FOS_HIDEPINNEDPLACES = 0x00040000,
3478  FOS_NODEREFERENCELINKS = 0x00100000,
3479  FOS_DONTADDTORECENT = 0x02000000,
3480  FOS_FORCESHOWHIDDEN = 0x10000000,
3481  FOS_DEFAULTNOMINIMODE = 0x20000000,
3482  FOS_FORCEPREVIEWPANEON = 0x40000000
3483  };
3485 
3486  HRESULT SetFileTypes(
3487  [in] UINT cFileTypes,
3488  [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec);
3489 
3490  HRESULT SetFileTypeIndex(
3491  [in] UINT iFileType);
3492 
3493  HRESULT GetFileTypeIndex(
3494  [out] UINT *piFileType);
3495 
3496  HRESULT Advise(
3497  [in] IFileDialogEvents *pfde,
3498  [out] DWORD *pdwCookie);
3499 
3500  HRESULT Unadvise(
3501  [in] DWORD dwCookie);
3502 
3503  HRESULT SetOptions(
3504  [in] FILEOPENDIALOGOPTIONS fos);
3505 
3506  HRESULT GetOptions(
3507  [in] FILEOPENDIALOGOPTIONS *pfos);
3508 
3509  HRESULT SetDefaultFolder(
3510  [in] IShellItem *psi);
3511 
3512  HRESULT SetFolder(
3513  [in] IShellItem *psi);
3514 
3516  [out] IShellItem **ppsi);
3517 
3518  HRESULT GetCurrentSelection(
3519  [out] IShellItem **ppsi);
3520 
3522  [in, string] LPCWSTR pszName);
3523 
3525  [out, string] LPWSTR *pszName);
3526 
3527  HRESULT SetTitle(
3528  [in, string] LPCWSTR pszTitle);
3529 
3530  HRESULT SetOkButtonLabel(
3531  [in, string] LPCWSTR pszText);
3532 
3533  HRESULT SetFileNameLabel(
3534  [in, string] LPCWSTR pszLabel);
3535 
3536  HRESULT GetResult(
3537  [out] IShellItem **ppsi);
3538 
3539  HRESULT AddPlace(
3540  [in] IShellItem *psi,
3541  [in] FDAP fdap);
3542 
3543  HRESULT SetDefaultExtension(
3544  [in, string] LPCWSTR pszDefaultExtension);
3545 
3546  HRESULT Close(
3547  [in] HRESULT hr);
3548 
3549  HRESULT SetClientGuid(
3550  [in] REFGUID guid);
3551 
3552  HRESULT ClearClientData();
3553 
3554  HRESULT SetFilter(
3555  [in] IShellItemFilter *pFilter);
3556 }
3557 
3558 /*****************************************************************************
3559  * IFileDialog2 interface
3560  */
3561 [
3562  object,
3563  uuid(61744FC7-85B5-4791-A9B0-272276309B13),
3564  pointer_default(unique)
3565 ]
3567 {
3568  HRESULT SetCancelButtonLabel(
3569  [in] LPCWSTR pszLabel);
3570 
3571  HRESULT SetNavigationRoot(
3572  [in] IShellItem *psi);
3573 }
3574 
3575 /*****************************************************************************
3576  * IFileOperationProgressSink interface
3577  */
3578 [
3579  object,
3580  uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2),
3581  pointer_default(unique)
3582 ]
3583 interface IFileOperationProgressSink : IUnknown
3584 {
3585  HRESULT StartOperations();
3586 
3587  HRESULT FinishOperations(
3588  [in] HRESULT hrResult);
3589 
3590  HRESULT PreRenameItem(
3591  [in] DWORD dwFlags,
3592  [in] IShellItem *psiItem,
3593  [in, unique, string] LPCWSTR pszNewName);
3594 
3595  HRESULT PostRenameItem(
3596  [in] DWORD dwFlags,
3597  [in] IShellItem *psiItem,
3598  [in, string] LPCWSTR pszNewName,
3599  [in] HRESULT hrRename,
3600  [in] IShellItem *psiNewlyCreated);
3601 
3602  HRESULT PreMoveItem(
3603  [in] DWORD dwFlags,
3604  [in] IShellItem *psiItem,
3605  [in] IShellItem *psiDestinationFolder,
3606  [in, unique, string] LPCWSTR pszNewName);
3607 
3608  HRESULT PostMoveItem(
3609  [in] DWORD dwFlags,
3610  [in] IShellItem *psiItem,
3611  [in] IShellItem *psiDestinationFolder,
3612  [in, unique, string] LPCWSTR pszNewName,
3613  [in] HRESULT hrMove,
3614  [in] IShellItem *psiNewlyCreated);
3615 
3616  HRESULT PreCopyItem(
3617  [in] DWORD dwFlags,
3618  [in] IShellItem *psiItem,
3619  [in] IShellItem *psiDestinationFolder,
3620  [in, unique, string] LPCWSTR pszNewName);
3621 
3622  HRESULT PostCopyItem(
3623  [in] DWORD dwFlags,
3624  [in] IShellItem *psiItem,
3625  [in] IShellItem *psiDestinationFolder,
3626  [in, unique, string] LPCWSTR pszNewName,
3627  [in] HRESULT hrCopy,
3628  [in] IShellItem *psiNewlyCreated);
3629 
3630  HRESULT PreDeleteItem(
3631  [in] DWORD dwFlags,
3632  [in] IShellItem *psiItem);
3633 
3634  HRESULT PostDeleteItem(
3635  [in] DWORD dwFlags,
3636  [in] IShellItem *psiItem,
3637  [in] HRESULT hrDelete,
3638  [in] IShellItem *psiNewlyCreated);
3639 
3640  HRESULT PreNewItem(
3641  [in] DWORD dwFlags,
3642  [in] IShellItem *psiDestinationFolder,
3643  [in, unique, string] LPCWSTR pszNewName);
3644 
3645  HRESULT PostNewItem(
3646  [in] DWORD dwFlags,
3647  [in] IShellItem *psiDestinationFolder,
3648  [in, unique, string] LPCWSTR pszNewName,
3649  [in, unique, string] LPCWSTR pszTemplateName,
3650  [in] DWORD dwFileAttributes,
3651  [in] HRESULT hrNew,
3652  [in] IShellItem *psiNewItem);
3653 
3655  [in] UINT iWorkTotal,
3656  [in] UINT iWorkSoFar);
3657 
3658  HRESULT ResetTimer();
3659 
3660  HRESULT PauseTimer();
3661 
3662  HRESULT ResumeTimer();
3663 }
3664 
3665 /*****************************************************************************
3666  * IFileSaveDialog interface
3667  */
3668 [
3669  object,
3670  uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB),
3671  pointer_default(unique)
3672 ]
3674 {
3675  HRESULT SetSaveAsItem(
3676  [in] IShellItem *psi);
3677 
3678  HRESULT SetProperties(
3679  [in] IPropertyStore *pStore);
3680 
3681  HRESULT SetCollectedProperties(
3682  [in] IPropertyDescriptionList *pList,
3683  [in] BOOL fAppendDefault);
3684 
3685  HRESULT GetProperties(
3686  [in] IPropertyStore **ppStore);
3687 
3688  HRESULT ApplyProperties(
3689  [in] IShellItem *psi,
3690  [in] IPropertyStore *pStore,
3691  [in, unique] HWND hwnd,
3692  [in, unique] IFileOperationProgressSink *pSink);
3693 }
3694 
3695 
3696 /*****************************************************************************
3697  * IFileOpenDialog interface
3698  */
3699 [
3700  object,
3701  uuid(D57C7288-D4AD-4768-BE02-9D969532D960),
3702  pointer_default(unique)
3703 ]
3704 interface IFileOpenDialog : IFileDialog
3705 {
3706  HRESULT GetResults(
3707  [out] IShellItemArray **ppenum);
3708 
3709  HRESULT GetSelectedItems(
3710  [out] IShellItemArray **ppsai);
3711 }
3712 
3713 typedef [v1_enum] enum CDCONTROLSTATEF
3714 {
3715  CDCS_INACTIVE = 0x0,
3716  CDCS_ENABLED = 0x1,
3717  CDCS_VISIBLE = 0x2,
3718  CDCS_ENABLEDVISIBLE = 0x3
3719 } CDCONTROLSTATEF;
3720 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)")
3721 /*****************************************************************************
3722  * IFileDialogCustomize interface
3723  */
3724 [
3725  object,
3726  uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034),
3727  pointer_default(unique)
3728 ]
3729 interface IFileDialogCustomize : IUnknown
3730 {
3731  HRESULT EnableOpenDropDown(
3732  [in] DWORD dwIDCtl);
3733 
3734  HRESULT AddMenu(
3735  [in] DWORD dwIDCtl,
3736  [in, string] LPCWSTR pszLabel);
3737 
3739  [in] DWORD dwIDCtl,
3740  [in, string] LPCWSTR pszLabel);
3741 
3743  [in] DWORD dwIDCtl);
3744 
3746  [in] DWORD dwIDCtl);
3747 
3749  [in] DWORD dwIDCtl,
3750  [in, string] LPCWSTR pszLabel,
3751  [in] BOOL bChecked);
3752 
3754  [in] DWORD dwIDCtl,
3755  [in, string] LPCWSTR pszText);
3756 
3758  [in] DWORD dwIDCtl);
3759 
3760  HRESULT AddText(
3761  [in] DWORD dwIDCtl,
3762  [in, string] LPCWSTR pszText);
3763 
3765  [in] DWORD dwIDCtl,
3766  [in, string] LPCWSTR pszLabel);
3767 
3769  [in] DWORD dwIDCtl,
3770  [out] CDCONTROLSTATEF *pdwState);
3771 
3773  [in] DWORD dwIDCtl,
3774  [in] CDCONTROLSTATEF dwState);
3775 
3777  [in] DWORD dwIDCtl,
3778  [out, string] WCHAR **ppszText);
3779 
3781  [in] DWORD dwIDCtl,
3782  [in, string] LPCWSTR pszText);
3783 
3785  [in] DWORD dwIDCtl,
3786  [out] BOOL *pbChecked);
3787 
3789  [in] DWORD dwIDCtl,
3790  [in] BOOL bChecked);
3791 
3793  [in] DWORD dwIDCtl,
3794  [in] DWORD dwIDItem,
3795  [in] LPCWSTR pszLabel);
3796 
3798  [in] DWORD dwIDCtl,
3799  [in] DWORD dwIDItem);
3800 
3802  [in] DWORD dwIDCtl);
3803 
3805  [in] DWORD dwIDCtl,
3806  [in] DWORD dwIDItem,
3807  [out] CDCONTROLSTATEF *pdwState);
3808 
3810  [in] DWORD dwIDCtl,
3811  [in] DWORD dwIDItem,
3812  [in] CDCONTROLSTATEF dwState);
3813 
3815  [in] DWORD dwIDCtl,
3816  [out] DWORD *pdwIDItem);
3817 
3819  [in] DWORD dwIDCtl,
3820  [in] DWORD dwIDItem);
3821 
3823  [in] DWORD dwIDCtl,
3824  [in, string] LPCWSTR pszLabel);
3825 
3827 
3829  [in] DWORD dwIDCtl);
3830 
3832  [in] DWORD dwIDCtl,
3833  [in] DWORD dwIDItem,
3834  [in, string] LPCWSTR pszLabel);
3835 }
3836 
3837 /*****************************************************************************
3838  * IFileDialogControlEvents interface
3839  */
3840 [
3841  object,
3842  uuid(36116642-D713-4B97-9B83-7484A9D00433),
3843  pointer_default(unique)
3844 ]
3845 interface IFileDialogControlEvents : IUnknown
3846 {
3847  HRESULT OnItemSelected(
3848  [in] IFileDialogCustomize *pfdc,
3849  [in] DWORD dwIDCtl,
3850  [in] DWORD dwIDItem);
3851 
3852  HRESULT OnButtonClicked(
3853  [in] IFileDialogCustomize *pfdc,
3854  [in] DWORD dwIDCtl);
3855 
3856  HRESULT OnCheckButtonToggled(
3857  [in] IFileDialogCustomize *pfdc,
3858  [in] BOOL dwIDCtl,
3859  [in] BOOL bChecked);
3860 
3861  HRESULT OnControlActivating(
3862  [in] IFileDialogCustomize *pfdc,
3863  [in] DWORD dwIDCtl);
3864 }
3865 
3866 typedef [v1_enum] enum tagKF_CATEGORY
3867 {
3868  KF_CATEGORY_VIRTUAL = 0x00000001,
3869  KF_CATEGORY_FIXED = 0x00000002,
3870  KF_CATEGORY_COMMON = 0x00000003,
3871  KF_CATEGORY_PERUSER = 0x00000004
3872 } KF_CATEGORY;
3873 
3875 {
3883 
3885 {
3887  KFDF_ROAMABLE = 0x00000004,
3888  KFDF_PRECREATE = 0x00000008,
3889  KFDF_STREAM = 0x00000010,
3892 
3894 {
3895  KF_CATEGORY category;
3909 
3910 [
3911  object,
3912  uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488),
3914 ]
3915 interface IKnownFolder : IUnknown
3916 {
3917  HRESULT GetId(
3918  [out] KNOWNFOLDERID *pkfid);
3919 
3920  HRESULT GetCategory(
3921  [out] KF_CATEGORY *pCategory);
3922 
3923  HRESULT GetShellItem(
3924  [in] DWORD dwFlags,
3925  [in] REFIID riid,
3926  [out, iid_is(riid)] void **ppv);
3927 
3928  HRESULT GetPath(
3929  [in] DWORD dwFlags,
3930  [out, string] LPWSTR *ppszPath);
3931 
3932  HRESULT SetPath(
3933  [in] DWORD dwFlags,
3934  [in, string] LPCWSTR pszPath);
3935 
3936  HRESULT GetIDList(
3937  [in] DWORD dwFlags,
3938  [out] PIDLIST_ABSOLUTE *ppidl);
3939 
3940  HRESULT GetFolderType(
3941  [out] FOLDERTYPEID *pftid);
3942 
3943  HRESULT GetRedirectionCapabilities(
3944  [out] KF_REDIRECTION_CAPABILITIES *pCapabilities);
3945 
3946  HRESULT GetFolderDefinition(
3947  [out] KNOWNFOLDER_DEFINITION *pKFD);
3948 }
3949 
3950 typedef [v1_enum] enum tagKF_REDIRECT_FLAGS
3951 {
3952  KF_REDIRECT_USER_EXCLUSIVE = 0x00000001,
3953  KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002,
3954  KF_REDIRECT_OWNER_USER = 0x00000004,
3955  KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008,
3956  KF_REDIRECT_CHECK_ONLY = 0x00000010,
3957  KF_REDIRECT_WITH_UI = 0x00000020,
3958  KF_REDIRECT_UNPIN = 0x00000040,
3959  KF_REDIRECT_PIN = 0x00000080,
3960  KF_REDIRECT_COPY_CONTENTS = 0x00000200,
3961  KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400,
3963 } KF_REDIRECT_FLAGS;
3964 
3965 [
3966  object,
3967  uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018),
3969 ]
3970 interface IKnownFolderManager : IUnknown
3971 {
3972  typedef [v1_enum] enum tagFFFP_MODE
3973  {
3975  FFFP_NEARESTPARENTMATCH
3976  } FFFP_MODE;
3977 
3978  HRESULT FolderIdFromCsidl(
3979  [in] int nCsidl,
3980  [out] KNOWNFOLDERID *pfid);
3981 
3982  HRESULT FolderIdToCsidl(
3983  [in] REFKNOWNFOLDERID rfid,
3984  [out] int *pnCsidl);
3985 
3986  HRESULT GetFolderIds(
3987  [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId,
3988  [in, out] UINT *pCount);
3989 
3991  [in] REFKNOWNFOLDERID rfid,
3992  [out] IKnownFolder **ppkf);
3993 
3994  HRESULT GetFolderByName(
3995  [in, string] LPCWSTR pszCanonicalName,
3996  [out] IKnownFolder **ppkf);
3997 
3998  HRESULT RegisterFolder(
3999  [in] REFKNOWNFOLDERID rfid,
4000  [in] KNOWNFOLDER_DEFINITION const *pKFD);
4001 
4002  HRESULT UnregisterFolder(
4003  [in] REFKNOWNFOLDERID rfid);
4004 
4005  HRESULT FindFolderFromPath(
4006  [in, string] LPCWSTR pszPath,
4007  [in] FFFP_MODE mode,
4008  [out] IKnownFolder **ppkf);
4009 
4010  HRESULT FindFolderFromIDList(
4011  [in] PCIDLIST_ABSOLUTE pidl,
4012  [out] IKnownFolder **ppkf);
4013 
4014  HRESULT Redirect(
4015  [in] REFKNOWNFOLDERID rfid,
4016  [in, unique] HWND hwnd,
4017  [in] KF_REDIRECT_FLAGS flags,
4018  [in, unique, string] LPCWSTR pszTargetPath,
4019  [in] UINT cFolders,
4020  [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion,
4021  [out, string] LPWSTR *ppszError);
4022 }
4023 
4024 /* function for releasing structure returned from IKnownFolder::GetFolderDefinition */
4025 cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)")
4026 cpp_quote("{")
4027 cpp_quote(" CoTaskMemFree(pKFD->pszName);")
4028 cpp_quote(" CoTaskMemFree(pKFD->pszDescription);")
4029 cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);")
4030 cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);")
4031 cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);")
4032 cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);")
4033 cpp_quote(" CoTaskMemFree(pKFD->pszIcon);")
4034 cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);")
4035 cpp_quote("}")
4036 
4037 typedef [v1_enum] enum ASSOCIATIONLEVEL {
4038  AL_MACHINE,
4039  AL_EFFECTIVE,
4040  AL_USER
4041 } ASSOCIATIONLEVEL;
4042 
4043 typedef [v1_enum] enum ASSOCIATIONTYPE {
4044  AT_FILEEXTENSION,
4045  AT_URLPROTOCOL,
4046  AT_STARTMENUCLIENT,
4047  AT_MIMETYPE
4048 } ASSOCIATIONTYPE;
4049 
4050 [
4051  object,
4052  uuid(4e530b0a-e611-4c77-a3ac-9031d022281b),
4053  pointer_default(unique)
4054 ]
4055 interface IApplicationAssociationRegistration : IUnknown
4056 {
4057  HRESULT QueryCurrentDefault(
4058  [in, string] LPCWSTR pszQuery,
4059  [in] ASSOCIATIONTYPE atQueryType,
4060  [in] ASSOCIATIONLEVEL alQueryLevel,
4061  [out, string] LPWSTR *ppszAssociation);
4062 
4063  HRESULT QueryAppIsDefault(
4064  [in, string] LPCWSTR pszQuery,
4065  [in] ASSOCIATIONTYPE atQueryType,
4066  [in] ASSOCIATIONLEVEL alQueryLevel,
4067  [in, string] LPCWSTR pszAppRegistryName,
4068  [out] BOOL *pfDefault);
4069 
4070  HRESULT QueryAppIsDefaultAll(
4071  [in] ASSOCIATIONLEVEL alQueryLevel,
4072  [in, string] LPCWSTR pszAppRegistryName,
4073  [out] BOOL* pfDefault);
4074 
4075  HRESULT SetAppAsDefault(
4076  [in, string] LPCWSTR pszAppRegistryName,
4077  [in, string] LPCWSTR pszSet,
4078  [in] ASSOCIATIONTYPE atSetType);
4079 
4080  HRESULT SetAppAsDefaultAll(
4081  [in, string] LPCWSTR pszAppRegistryName);
4082 
4083  HRESULT ClearUserAssociations();
4084 }
4085 
4086 [
4087  uuid(6332debf-87b5-4670-90c0-5e57b408a49e),
4088  object,
4089  pointer_default(unique)
4090 ]
4091 interface ICustomDestinationList : IUnknown
4092 {
4093  typedef [v1_enum] enum KNOWNDESTCATEGORY {
4094  KDC_FREQUENT = 1,
4095  KDC_RECENT
4096  } KNOWNDESTCATEGORY;
4097 
4098  HRESULT SetAppID([in, string] LPCWSTR pszAppID);
4099 
4100  HRESULT BeginList(
4101  [out] UINT *pcMinSlots,
4102  [in] REFIID riid,
4103  [out, iid_is(riid)] void **ppv);
4104 
4105  HRESULT AppendCategory(
4106  [in, string] LPCWSTR pszCategory,
4107  [in] IObjectArray *poa);
4108 
4109  HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category);
4110  HRESULT AddUserTasks([in] IObjectArray *poa);
4111  HRESULT CommitList();
4112 
4113  HRESULT GetRemovedDestinations(
4114  [in] REFIID riid,
4115  [out, iid_is(riid)] void **ppv);
4116 
4117  HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID);
4118  HRESULT AbortList();
4119 }
4120 
4121 [
4122  uuid(ddefe873-6997-4e68-be26-39b633adbe12),
4123  object,
4124  pointer_default(unique)
4125 ]
4126 interface IQueryCancelAutoPlay : IUnknown
4127 {
4128  HRESULT AllowAutoPlay([in, string] LPCWSTR path,
4129  [in] DWORD content_type,
4130  [in, string] LPCWSTR label,
4131  [in] DWORD serial_number);
4132 }
4133 
4134 [
4135  uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88),
4136  pointer_default(unique)
4137 ]
4138 interface ITransferAdviseSink : IUnknown
4139 {
4140  [v1_enum] enum _TRANSFER_ADVISE_STATE
4141  {
4142  TS_NONE = 0,
4143  TS_PERFORMING = 1,
4144  TS_PREPARING = 2,
4145  TS_INDETERMINATE = 4
4146  };
4147  typedef DWORD TRANSFER_ADVISE_STATE;
4148 
4149  HRESULT UpdateProgress([in] ULONGLONG size_current,
4150  [in] ULONGLONG size_total,
4151  [in] INT files_current,
4152  [in] INT files_total,
4153  [in] INT folders_current,
4154  [in] INT folders_total);
4155  HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state);
4156  HRESULT ConfirmOverwrite([in] IShellItem *source,
4157  [in] IShellItem *dest_parent,
4158  [in, string] LPCWSTR name);
4159  HRESULT ConfirmEncryptLoss([in] IShellItem *source);
4160  HRESULT FileFailure([in] IShellItem *item,
4161  [in, unique, string] LPCWSTR itemname,
4162  [in] HRESULT hr,
4163  [in, out, unique, size_is(crename)] LPWSTR rename,
4164  [in] ULONG crename);
4165  HRESULT SubStreamFailure([in] IShellItem *item,
4166  [in, string] LPCWSTR stream,
4167  [in] HRESULT hr);
4168  HRESULT PropertyFailure([in] IShellItem *item,
4169  [in, unique] const PROPERTYKEY *key,
4170  [in] HRESULT hr);
4171 }
4172 
4173 [v1_enum] enum _TRANSFER_SOURCE_FLAGS
4174 {
4175  TSF_NORMAL = 0,
4176  TSF_FAIL_EXIST = 0,
4177  TSF_RENAME_EXIST = 0x1,
4178  TSF_OVERWRITE_EXIST = 0x2,
4179  TSF_ALLOW_DECRYPTION = 0x4,
4180  TSF_NO_SECURITY = 0x8,
4181  TSF_COPY_CREATION_TIME = 0x10,
4182  TSF_COPY_WRITE_TIME = 0x20,
4183  TSF_USE_FULL_ACCESS = 0x40,
4184  TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
4185  TSF_COPY_HARD_LINK = 0x100,
4186  TSF_COPY_LOCALIZED_NAME = 0x200,
4187  TSF_MOVE_AS_COPY_DELETE = 0x400,
4188  TSF_SUSPEND_SHELLEVENTS = 0x800
4189 };
4190 typedef DWORD TRANSFER_SOURCE_FLAGS;
4191 
4192 [
4193  uuid(00adb003-bde9-45c6-8e29-d09f9353e108),
4194  object,
4195  pointer_default(unique)
4196 ]
4197 interface ITransferSource : IUnknown
4198 {
4199  HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
4200  HRESULT Unadvise([in] DWORD cookie);
4201  HRESULT SetProperties([in] IPropertyChangeArray *array);
4202  HRESULT OpenItem([in] IShellItem *item,
4203  [in] TRANSFER_SOURCE_FLAGS flags,
4204  [in] REFIID riid,
4205  [out, iid_is(riid)] void **ppv);
4206  HRESULT MoveItem([in] IShellItem *item,
4207  [in] IShellItem *parent_dest,
4208  [in, string] LPCWSTR name_dest,
4209  [in] TRANSFER_SOURCE_FLAGS flags,
4210  [out] IShellItem **newitem);
4211  HRESULT RecycleItem([in] IShellItem *source,
4212  [in] IShellItem *parent_dest,
4213  [in] TRANSFER_SOURCE_FLAGS flags,
4214  [out] IShellItem **new_dest);
4215  HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags);
4216  HRESULT RenameItem([in] IShellItem *source,
4217  [in, string] LPCWSTR newname,
4218  [in] TRANSFER_SOURCE_FLAGS flags,
4219  [out] IShellItem **new_dest);
4220  HRESULT LinkItem([in] IShellItem *source,
4221  [in] IShellItem *parent_dest,
4222  [in, unique, string] LPCWSTR new_name,
4223  [in] TRANSFER_SOURCE_FLAGS flags,
4224  [out] IShellItem **new_dest);
4225  HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem);
4226  HRESULT GetDefaultDestinationName([in] IShellItem *source,
4227  [in] IShellItem *parent_dest,
4228  [out, string] LPWSTR *dest_name);
4229  HRESULT EnterFolder([in] IShellItem *child_folder);
4230  HRESULT LeaveFolder([in] IShellItem *child_folder);
4231 }
4232 
4233 [
4234  uuid(48addd32-3ca5-4124-abe3-b5a72531b207),
4235  object,
4236  pointer_default(unique)
4237 ]
4238 interface ITransferDestination : IUnknown
4239 {
4240  HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie);
4241  HRESULT Unadvise([in] DWORD cookie);
4242  HRESULT CreateItem([in, string] LPCWSTR name,
4243  [in] DWORD attr,
4244  [in] ULONGLONG size,
4245  [in] TRANSFER_SOURCE_FLAGS flags,
4246  [in] REFIID riid,
4247  [out, iid_is(riid)] void **ppv,
4248  [in] REFIID resources,
4249  [out, iid_is(riid)] void **presources);
4250 }
4251 
4252 [
4253  uuid(92218cab-ecaa-4335-8133-807fd234c2ee),
4254  object,
4255  pointer_default(unique)
4256 ]
4257 interface IAssocHandlerInvoker : IUnknown
4258 {
4259  HRESULT SupportsSelection();
4260  HRESULT Invoke();
4261 }
4262 
4263 [
4264  uuid(f04061ac-1659-4a3f-a954-775aa57fc083),
4265  object,
4266  pointer_default(unique)
4267 ]
4268 interface IAssocHandler : IUnknown
4269 {
4270  HRESULT GetName([out, string] LPWSTR *name);
4271  HRESULT GetUIName([out, string] LPWSTR *uiname);
4272  HRESULT GetIconLocation([out, string] LPWSTR *path,
4273  [out] int *index);
4274  HRESULT IsRecommended();
4275  HRESULT MakeDefault([in, string] LPCWSTR description);
4276  HRESULT Invoke([in] IDataObject *object);
4277  HRESULT CreateInvoker([in] IDataObject *object,
4278  [out] IAssocHandlerInvoker **invoker);
4279 }
4280 
4281 [
4282  uuid(973810ae-9599-4b88-9e4d-6ee98c9552da),
4283  object,
4284  pointer_default(unique)
4285 ]
4286 interface IEnumAssocHandlers : IUnknown
4287 {
4288  HRESULT Next([in] ULONG count,
4289  [out, size_is(count), length_is(*fetched)] IAssocHandler **handlers,
4290  [out] ULONG *fetched);
4291 }
4292 
4293 typedef enum ASSOC_FILTER
4294 {
4295  ASSOC_FILTER_NONE = 0,
4296  ASSOC_FILTER_RECOMMENDED
4297 } ASSOC_FILTER;
4298 cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);")
4299 
4300 typedef [v1_enum] enum ACTIVATEOPTIONS
4301 {
4302  AO_NONE = 0x00000000,
4303  AO_DESIGNMODE = 0x00000001,
4304  AO_NOERRORUI = 0x00000002,
4305  AO_NOSPLASHSCREEN = 0x00000004
4306 } ACTIVATEOPTIONS;
4307 
4308 [
4309  uuid(2e941141-7f97-4756-ba1d-9decde894a3d),
4310  object,
4311  pointer_default(unique)
4312 ]
4313 interface IApplicationActivationManager : IUnknown
4314 {
4315  HRESULT ActivateApplication([in] LPCWSTR appusermodelid,
4316  [in, unique] LPCWSTR arguments,
4317  [in] ACTIVATEOPTIONS options,
4318  [out] DWORD *processid);
4319  HRESULT ActivateForFile([in] LPCWSTR appusermodelid,
4320  [in] IShellItemArray *itemarray,
4321  [in, unique] LPCWSTR verb,
4322  [out] DWORD *processid);
4323  HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid,
4324  [in] IShellItemArray *itemarray,
4325  [out] DWORD *processid);
4326 }
4327 
4328 /*****************************************************************************
4329  * ShellObjects typelibrary
4330  */
4331 [
4332  uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE),
4333  lcid(0x0000),
4334  version(1.0)
4335 ]
4336 library ShellObjects
4337 {
4338  [
4339  uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB)
4340  ]
4341  coclass ExplorerBrowser
4342  {
4343  interface IExplorerBrowser;
4344  }
4345 
4346  [
4347  uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7)
4348  ]
4349  coclass FileOpenDialog
4350  {
4351  interface IFileOpenDialog;
4352  }
4353 
4354  [
4355  uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B)
4356  ]
4357  coclass FileSaveDialog
4358  {
4359  interface IFileSaveDialog;
4360  }
4361 
4362  [
4363  uuid(AE054212-3535-4430-83ED-D501AA6680E6)
4364  ]
4365  coclass NamespaceTreeControl
4366  {
4367  interface INameSpaceTreeControl2;
4368  }
4369 
4370  [
4371  uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a)
4372  ]
4373  coclass KnownFolderManager
4374  {
4375  interface IKnownFolderManager;
4376  }
4377 
4378  [
4379  uuid(591209c7-767b-42b2-9fba-44ee4615f2c7)
4380  ]
4381  coclass ApplicationAssociationRegistration
4382  {
4383  interface IApplicationAssociationRegistration;
4384  }
4385 
4386  [
4387  uuid(00021401-0000-0000-c000-000000000046)
4388  ]
4389  coclass ShellLink
4390  {
4391  interface IShellLinkW;
4392  }
4393 
4394  [
4395  uuid(56fdf344-fd6d-11d0-958a-006097c9a090)
4396  ]
4397  coclass TaskbarList
4398  {
4399  interface ITaskbarList4;
4400  }
4401 
4402  [
4403  uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6)
4404  ]
4405  coclass DestinationList {
4406  interface ICustomDestinationList;
4407  }
4408 
4409  [
4410  uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a)
4411  ]
4412  coclass EnumerableObjectCollection
4413  {
4414  interface IEnumObjects;
4415  }
4416 
4417  [
4418  uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a)
4419  ]
4420  coclass QueryCancelAutoPlay
4421  {
4422  interface IQueryCancelAutoPlay;
4423  }
4424 
4425  [
4426  uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917)
4427  ]
4428  coclass ShellItem {
4429  interface IShellItem2;
4430  }
4431 
4432  [
4433  uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c)
4434  ]
4435  coclass ApplicationActivationManager
4436  {
4437  interface IApplicationActivationManager;
4438  }
4439 
4440 #ifdef __REACTOS__
4441  [
4442  uuid(0010890e-8789-413c-adbc-48f5b511b3af)
4443  ]
4444  coclass UserNotification
4445  {
4446  interface IUserNotification;
4447  }
4448 #endif // __REACTOS__
4449 
4450 }
4451 
4452 enum _OPPROGDLGF
4453 {
4454  OPPROGDLG_DEFAULT = 0,
4455  OPPROGDLG_ENABLEPAUSE = 0x80,
4456  OPPROGDLG_ALLOWUNDO = 0x100,
4457  OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
4458  OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
4459  OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
4460  OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
4461 };
4462 typedef DWORD OPPROGDLGF;
4463 
4464 enum _PDMODE
4465 {
4466  PDM_DEFAULT = 0,
4467  PDM_RUN = 0x1,
4468  PDM_PREFLIGHT = 0x2,
4469  PDM_UNDOING = 0x4,
4470  PDM_ERRORSBLOCKING = 0x8,
4471  PDM_INDETERMINATE = 0x10
4472 };
4473 typedef DWORD PDMODE;
4474 
4475 typedef enum PDOPSTATUS
4476 {
4477  PDOPS_RUNNING = 1,
4478  PDOPS_PAUSED = 2,
4479  PDOPS_CANCELLED = 3,
4480  PDOPS_STOPPED = 4,
4481  PDOPS_ERRORS = 5
4482 } PDOPSTATUS;
4483 
4484 typedef enum _SPACTION
4485 {
4486  SPACTION_NONE = 0,
4487  SPACTION_MOVING = 1,
4488  SPACTION_COPYING = 2,
4489  SPACTION_RECYCLING = 3,
4490  SPACTION_APPLYINGATTRIBS = 4,
4491  SPACTION_DOWNLOADING = 5,
4492  SPACTION_SEARCHING_INTERNET = 6,
4493  SPACTION_CALCULATING = 7,
4494  SPACTION_UPLOADING = 8,
4495  SPACTION_SEARCHING_FILES = 9,
4496  SPACTION_DELETING = 10,
4497  SPACTION_RENAMING = 11,
4498  SPACTION_FORMATTING = 12,
4499  SPACTION_COPY_MOVING = 13
4500 } SPACTION;
4501 
4502 [
4503  uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C),
4504  object,
4505  pointer_default(unique)
4506 ]
4507 interface IOperationsProgressDialog : IUnknown
4508 {
4509  HRESULT StartProgressDialog(
4510  [in] HWND hwndOwner,
4511  [in] OPPROGDLGF flags);
4512  HRESULT StopProgressDialog();
4513  HRESULT SetOperation(
4514  [in] SPACTION action);
4515  HRESULT SetMode(
4516  [in] PDMODE mode);
4517  HRESULT UpdateProgress(
4518  [in] ULONGLONG ullPointsCurrent,
4519  [in] ULONGLONG ullPointsTotal,
4520  [in] ULONGLONG ullSizeCurrent,
4521  [in] ULONGLONG ullSizeTotal,
4522  [in] ULONGLONG ullItemsCurrent,
4523  [in] ULONGLONG ullItemsTotal);
4524  HRESULT UpdateLocations(
4525  [in, optional] IShellItem *psiSource,
4526  [in, optional] IShellItem *psiTarget,
4527  [in, optional] IShellItem *psiItem);
4528  HRESULT ResetTimer();
4529  HRESULT PauseTimer();
4530  HRESULT ResumeTimer();
4531  HRESULT GetMilliseconds(
4532  [out] ULONGLONG *pullElapsed,
4533  [out] ULONGLONG *pullRemaining);
4534  HRESULT GetOperationStatus(
4535  [out] PDOPSTATUS *popstatus);
4536 };
4537 
4538 [
4539  uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8),
4540  object,
4541  pointer_default(unique)
4542 ]
4543 interface IFileOperation : IUnknown
4544 {
4545  HRESULT Advise(
4546  [in] IFileOperationProgressSink *pfops,
4547  [out] DWORD *pdwCookie);
4548  HRESULT Unadvise(
4549  [in] DWORD dwCookie);
4550  HRESULT SetOperationFlags(
4551  [in] DWORD dwOperationFlags);
4552  HRESULT SetProgressMessage(
4553  [in] LPCWSTR pszMessage);
4554  HRESULT SetProgressDialog(
4555  [in] IOperationsProgressDialog *popd);
4556  HRESULT SetProperties(
4557  [in] IPropertyChangeArray *pproparray);
4558  HRESULT SetOwnerWindow(
4559  [in] HWND hwndOwner);
4560  HRESULT ApplyPropertiesToItem(
4561  [in] IShellItem *psiItem);
4562  HRESULT ApplyPropertiesToItems(
4563  [in] IUnknown *punkItems);
4564  HRESULT RenameItem(
4565  [in] IShellItem *psiItem,
4566  [in] LPCWSTR pszNewName,
4567  [in] IFileOperationProgressSink *pfopsItem);
4568  HRESULT RenameItems(
4569  [in] IUnknown *pUnkItems,
4570  [in] LPCWSTR pszNewName);
4571  HRESULT MoveItem(
4572  [in] IShellItem *psiItem,
4573  [in] IShellItem *psiDestinationFolder,
4574  [in] LPCWSTR pszNewName,
4575  [in] IFileOperationProgressSink *pfopsItem);
4576  HRESULT MoveItems(
4577  [in] IUnknown *punkItems,
4578  [in] IShellItem *psiDestinationFolder);
4579  HRESULT CopyItem(
4580  [in] IShellItem *psiItem,
4581  [in] IShellItem *psiDestinationFolder,
4582  [in] LPCWSTR pszCopyName,
4583  [in] IFileOperationProgressSink *pfopsItem);
4584  HRESULT CopyItems(
4585  [in] IUnknown *punkItems,
4586  [in] IShellItem *psiDestinationFolder);
4587  HRESULT DeleteItem(
4588  [in] IShellItem *psiItem,
4589  [in] IFileOperationProgressSink *pfopsItem);
4590  HRESULT DeleteItems(
4591  [in] IUnknown *punkItems);
4592  HRESULT NewItem(
4593  [in] IShellItem *psiDestinationFolder,
4594  [in] DWORD dwFileAttributes,
4595  [in] LPCWSTR pszName,
4596  [in] LPCWSTR pszTemplateName,
4597  [in] IFileOperationProgressSink *pfopsItem);
4598  HRESULT PerformOperations();
4599  HRESULT GetAnyOperationsAborted(
4600  [out] BOOL *pfAnyOperationsAborted);
4601 };
4602 
4603 [
4604  uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC),
4605  object,
4606  local,
4607  pointer_default(unique)
4608 ]
4609 interface IShellTaskScheduler : IUnknown
4610 {
4611  HRESULT AddTask(
4612  [in] IRunnableTask *pTask,
4613  [in] REFGUID rtoid,
4614  [in] DWORD_PTR lParam,
4615  [in] DWORD dwPriority);
4616  HRESULT RemoveTasks(
4617  [in] REFGUID rtoid,
4618  [in] DWORD_PTR lParam,
4619  [in] BOOL fWaitIfRunning);
4620  UINT CountTasks(
4621  [in] REFGUID rtoid);
4622  HRESULT Status(
4623  [in] DWORD dwReleaseStatus,
4624  [in] DWORD dwThreadTimeout);
4625 }
4626 
4627 
4628 [
4629  uuid(47c01f95-e185-412c-b5c5-4f27df965aea),
4630  object,
4631  pointer_default(unique)
4632 ]
4633 interface IFolderBandPriv : IUnknown
4634 {
4635  HRESULT SetCascade([in] BOOL fCascade);
4636 
4637  HRESULT SetAccelerators([in] BOOL fAccelerators);
4638 
4639  HRESULT SetNoIcons([in] BOOL fNoIcons);
4640 
4641  HRESULT SetNoText([in] BOOL fNoText);
4642 }
4643 
4644 
4645 #ifdef __REACTOS__
4646 /*****************************************************************************
4647  * IQueryContinue interface
4648  */
4649 
4650 [
4651  uuid(7307055c-b24a-486b-9f25-163e597a28a9),
4652  object,
4653  pointer_default(unique)
4654 ]
4655 interface IQueryContinue : IUnknown
4656 {
4657  // Returns S_OK if the operation should continue, and S_FALSE if not.
4658  HRESULT QueryContinue();
4659 }
4660 
4661 
4662 /*****************************************************************************
4663  * IUserNotification interface
4664  */
4665 
4666 [
4667  uuid(ba9711ba-5893-4787-a7e1-41277151550b),
4668  object,
4669  pointer_default(unique)
4670 ]
4671 interface IUserNotification : IUnknown
4672 {
4673  HRESULT SetBalloonInfo(
4674  [in, unique, string] LPCWSTR pszTitle,
4675  [in, unique, string] LPCWSTR pszText,
4676  [in] DWORD dwInfoFlags);
4677 
4678  HRESULT SetBalloonRetry(
4679  [in] DWORD dwShowTime, // Time intervals in milliseconds
4680  [in] DWORD dwInterval,
4681  [in] UINT cRetryCount);
4682 
4683  HRESULT SetIconInfo(
4684  [in, unique] HICON hIcon,
4685  [in, unique, string] LPCWSTR pszToolTip);
4686 
4687  // Blocks until the notification times out.
4688  HRESULT Show(
4689  [in, unique] IQueryContinue *pqc,
4690  [in] DWORD dwContinuePollInterval);
4691 
4692  HRESULT PlaySound(
4693  [in, string] LPCWSTR pszSoundName);
4694 };
4695 
4696 
4697 /*****************************************************************************
4698  * IUserNotificationCallback interface (Vista+)
4699  */
4700 
4701 [
4702  uuid(19108294-0441-4aff-8013-fa0a730b0bea),
4703  object
4704 ]
4705 interface IUserNotificationCallback : IUnknown
4706 {
4707  HRESULT OnBalloonUserClick([in] POINT * pt);
4708  HRESULT OnLeftClick([in] POINT * pt);
4709  HRESULT OnContextMenu([in] POINT * pt);
4710 };
4711 
4712 
4713 /*****************************************************************************
4714  * IUserNotification2 interface (Vista+)
4715  */
4716 
4717 [
4718  uuid(215913cc-57eb-4fab-ab5a-e5fa7bea2a6c),
4719  object,
4720  pointer_default(unique)
4721 ]
4722 interface IUserNotification2 : IUnknown
4723 {
4724  HRESULT SetBalloonInfo(
4725  [in, unique, string] LPCWSTR pszTitle,
4726  [in, unique, string] LPCWSTR pszText,
4727  [in] DWORD dwInfoFlags);
4728 
4729  HRESULT SetBalloonRetry(
4730  [in] DWORD dwShowTime, // Time intervals in milliseconds
4731  [in] DWORD dwInterval,
4732  [in] UINT cRetryCount);
4733 
4734  HRESULT SetIconInfo(
4735  [in, unique] HICON hIcon,
4736  [in, unique, string] LPCWSTR pszToolTip);
4737 
4738  // Blocks until the notification times out.
4739  HRESULT Show(
4740  [in, unique] IQueryContinue *pqc,
4741  [in] DWORD dwContinuePollInterval,
4742  [in, unique] IUserNotificationCallback *pSink);
4743 
4744  HRESULT PlaySound(
4745  [in, string] LPCWSTR pszSoundName);
4746 };
4747 
4748 #endif // __REACTOS__
DBIM_BKCOLOR struct tagDESKBANDINFO DESKBANDINFO
DWORD dwMask
Definition: shobjidl.idl:2635
enum tagKF_REDIRECTION_CAPABILITIES KF_REDIRECTION_CAPABILITIES
#define EnableModeless(type)
Definition: ordinal.c:3400
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define HDC
Definition: msvc.h:22
#define TranslateAccelerator
Definition: winuser.h:5721
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia)
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
Definition: prsht.h:309
THUMBBUTTON
Definition: shobjidl.idl:2081
KF_DEFINITION_FLAGS kfdFlags
Definition: shobjidl.idl:3906
DWORD SV3CVW3_FLAGS
Definition: shobjidl.idl:823
static HICON
Definition: imagelist.c:84
HRESULT AddPages([in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam)
char * GetFolder(const char *pszFullPath)
Definition: hpp.c:68
BOOL SetDescription(LPCTSTR ServiceName, LPCTSTR Description)
Definition: description.c:99
unsigned short WORD
Definition: ntddk_ex.h:93
#define REFIID
Definition: guiddef.h:113
tagSORTDIRECTION
Definition: shobjidl.idl:884
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
Definition: pidl.c:1472
#define HBITMAP
Definition: msvc.h:28
static const WCHAR wszFriendlyName[]
Definition: createdevenum.c:54
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:422
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt, [out] ULONG *pceltFetched)
LPITEMIDLIST pidlItem
Definition: shobjidl.idl:2624
tagMENUBANDHANDLERCID
Definition: shobjidl.idl:2597
static HMENU hmenu
Definition: win.c:66
Definition: scsiwmi.h:51
HRESULT SetControlState([in] DWORD dwIDCtl, [in] CDCONTROLSTATEF dwState)
static PWCHAR GetFileName(PWCHAR Path)
Definition: cabinet.c:275
GUID SHELLVIEWID
Definition: shobjidl.idl:777
interface IBindCtx * LPBC
Definition: objfwd.h:18
HRESULT ParseDisplayName([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
HRESULT Reset()
HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum)
HRESULT GetControlItemState([in] DWORD dwIDCtl, [in] DWORD dwIDItem, [out] CDCONTROLSTATEF *pdwState)
HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv)
tagDESKBANDCID
Definition: shobjidl.idl:2402
HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv)
HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt, [out] ULONG *pceltFetched)
#define pt(x, y)
Definition: drawing.c:79
#define SEE_MASK_HASTITLE
Definition: shellapi.h:49
__wchar_t WCHAR
Definition: xmlstorage.h:180
REFIID riid
Definition: precomp.h:44
struct tagBANDSITEINFO BANDSITEINFO
#define SEE_MASK_NO_CONSOLE
Definition: shellapi.h:38
INT BOOL fShow
Definition: msvc.h:54
const WCHAR * text
Definition: package.c:1827
DWORD dwMask
Definition: msvc.h:86
HRESULT Reset()
UINT uIdParent
Definition: shobjidl.idl:2620
static BOOL OnEndLabelEdit(LPNMLVDISPINFO pnmv)
Definition: users.c:551
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
Definition: sdbtypes.h:24
#define B(row, col)
Definition: m_matrix.c:146
LPCWSTR pszText
Definition: msvc.h:103
Definition: cdrw_hw.h:28
THUMBBUTTONFLAGS
Definition: shobjidl.idl:2053
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
HRESULT SetControlItemState([in] DWORD dwIDCtl, [in] DWORD dwIDItem, [in] CDCONTROLSTATEF dwState)
IShellBrowser * psbOwner
Definition: shobjidl.idl:784
struct IEnumExtraSearch::EXTRASEARCH * LPEXTRASEARCH
_In_ LPCSTR lpName
Definition: winbase.h:2729
REFIID LPVOID * ppv
Definition: atlbase.h:39
UINT uMsg
Definition: precomp.h:45
PVOID *typedef PWSTR
Definition: winlogon.h:65
HANDLE HWND
Definition: compat.h:13
#define SEE_MASK_ASYNCOK
Definition: shellapi.h:52
IUnknown * punk
Definition: shobjidl.idl:2622
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
Definition: shtypes.idl:70
HRESULT MapColumnToSCID([in] UINT iColumn, [in] SHCOLUMNID *pscid)
#define SEE_MASK_HASLINKNAME
Definition: shellapi.h:48
tagKF_REDIRECTION_CAPABILITIES
Definition: shobjidl.idl:3874
HRESULT WINAPI Extract(SESSION *dest, LPCSTR szCabName)
Definition: cabinet_main.c:328
HRESULT Compare([in] IShellItem *psi, [in] SICHINTF hint, [out] int *piOrder)
struct FOLDERSETTINGS * LPFOLDERSETTINGS
* LPTHUMBBUTTON
Definition: shobjidl.idl:2081
static SIGDN
Definition: shelldispatch.c:49
HRESULT Skip([in] ULONG celt)
char * LPSTR
Definition: xmlstorage.h:182
Definition: