Revert the sync.
[reactos.git] / include / psdk / shobjidl.idl
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 /* FIXME: import "propsys.idl"; */
34 /* FIXME: import "structuredquery.idl"; */
35
36 cpp_quote("/* FIXME: #include <sherrors.h> */")
37
38
39 /*****************************************************************************
40 * IPersistFolder interface
41 */
42 [
43 object,
44 uuid(000214ea-0000-0000-c000-000000000046),
45 pointer_default(unique)
46 ]
47 interface IPersistFolder : IPersist
48 {
49 typedef IPersistFolder *LPPERSISTFOLDER;
50
51 HRESULT Initialize( [in] LPCITEMIDLIST pidl );
52 }
53
54
55 /*****************************************************************************
56 * IPersistFolder2 interface
57 */
58 [
59 object,
60 uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f),
61 pointer_default(unique)
62 ]
63 interface IPersistFolder2 : IPersistFolder
64 {
65 typedef IPersistFolder2 *LPPERSISTFOLDER2;
66
67 HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl );
68 }
69
70
71 /*****************************************************************************
72 * IPersistIDList interface
73 */
74 [
75 object,
76 uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5),
77 pointer_default(unique)
78 ]
79 interface IPersistIDList : IPersist
80 {
81 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
82 HRESULT GetIDList( [out] LPITEMIDLIST *ppidl );
83 }
84
85
86 /*****************************************************************************
87 * IEnumIDList interface
88 */
89 [
90 object,
91 uuid(000214f2-0000-0000-c000-000000000046),
92 pointer_default(unique)
93 ]
94 interface IEnumIDList : IUnknown
95 {
96 typedef IEnumIDList *LPENUMIDLIST;
97
98 HRESULT Next(
99 [in] ULONG celt,
100 [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt,
101 [out] ULONG *pceltFetched);
102
103 HRESULT Skip( [in] ULONG celt );
104 HRESULT Reset();
105 HRESULT Clone( [out] IEnumIDList **ppenum );
106 }
107
108 /*****************************************************************************
109 * IShellPropSheetExt interface
110 */
111 cpp_quote("#if 0")
112 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
113 cpp_quote("#else")
114 cpp_quote("#include <prsht.h>")
115 cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;")
116 cpp_quote("#endif")
117
118 [
119 object,
120 uuid(000214E9-0000-0000-C000-000000000046),
121 pointer_default(unique)
122 ]
123 interface IShellPropSheetExt : IUnknown
124 {
125 enum tagSHELLPROPSHEETEXTPAGEID {
126 EXPPS_FILETYPES = 0x1
127 };
128
129 typedef UINT EXPPS;
130
131 HRESULT AddPages(
132 [in] LPFNSVADDPROPSHEETPAGE pfnAddPage,
133 [in] LPARAM lParam);
134 HRESULT ReplacePage(
135 [in] EXPPS uPageID,
136 [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
137 [in] LPARAM lParam);
138 }
139 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
140
141 /*****************************************************************************
142 * IShellFolder interface
143 */
144 [
145 object,
146 uuid(000214e6-0000-0000-c000-000000000046),
147 pointer_default(unique)
148 ]
149 interface IShellFolder : IUnknown
150 {
151 typedef IShellFolder * LPSHELLFOLDER;
152
153 typedef enum tagSHGDN
154 {
155 SHGDN_NORMAL = 0,
156 SHGDN_INFOLDER = 1,
157 SHGDN_FOREDITING = 0x1000,
158 SHGDN_INCLUDE_NONFILESYS = 0x2000,
159 SHGDN_FORADDRESSBAR = 0x4000,
160 SHGDN_FORPARSING = 0x8000
161 } SHGNO;
162
163 typedef DWORD SHGDNF;
164
165 enum tagSHCONTF
166 {
167 SHCONTF_FOLDERS = 32,
168 SHCONTF_NONFOLDERS = 64,
169 SHCONTF_INCLUDEHIDDEN = 128,
170 SHCONTF_INIT_ON_FIRST_NEXT = 256,
171 SHCONTF_NETPRINTERSRCH = 512,
172 SHCONTF_SHAREABLE = 1024,
173 SHCONTF_STORAGE = 2048
174 };
175
176 typedef DWORD SHCONTF;
177
178 cpp_quote("#define SHCIDS_ALLFIELDS 0x80000000L")
179 cpp_quote("#define SHCIDS_CANONICALONLY 0x10000000L")
180 cpp_quote("#define SHCIDS_BITMASK 0xFFFF0000L")
181 cpp_quote("#define SHCIDS_COLUMNMASK 0x0000FFFFL")
182 cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY")
183 cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE")
184 cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK")
185 cpp_quote("#define SFGAO_STORAGE 0x00000008L")
186 cpp_quote("#define SFGAO_CANRENAME 0x00000010L")
187 cpp_quote("#define SFGAO_CANDELETE 0x00000020L")
188 cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L")
189 cpp_quote("#define SFGAO_DROPTARGET 0x00000100L")
190 cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L")
191 cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L")
192 cpp_quote("#define SFGAO_ISSLOW 0x00004000L")
193 cpp_quote("#define SFGAO_GHOSTED 0x00008000L")
194 cpp_quote("#define SFGAO_LINK 0x00010000L")
195 cpp_quote("#define SFGAO_SHARE 0x00020000L")
196 cpp_quote("#define SFGAO_READONLY 0x00040000L")
197 cpp_quote("#define SFGAO_HIDDEN 0x00080000L")
198 cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L")
199 cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L")
200 cpp_quote("#define SFGAO_FOLDER 0x20000000L")
201 cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L")
202 cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L")
203 cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L")
204 cpp_quote("#define SFGAO_VALIDATE 0x01000000L")
205 cpp_quote("#define SFGAO_REMOVABLE 0x02000000L")
206 cpp_quote("#define SFGAO_COMPRESSED 0x04000000L")
207 cpp_quote("#define SFGAO_BROWSABLE 0x08000000L")
208 cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L")
209 cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L")
210 cpp_quote("#define SFGAO_STREAM 0x00400000L")
211 cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L")
212
213 typedef ULONG SFGAOF;
214
215 HRESULT ParseDisplayName(
216 [in] HWND hwndOwner,
217 [in] LPBC pbcReserved,
218 [in, string] LPOLESTR lpszDisplayName,
219 [out] ULONG *pchEaten,
220 [out] LPITEMIDLIST *ppidl,
221 [in, out, unique] ULONG *pdwAttributes);
222
223 HRESULT EnumObjects(
224 [in] HWND hwndOwner,
225 [in] SHCONTF grfFlags,
226 [out] IEnumIDList **ppenumIDList);
227
228 HRESULT BindToObject(
229 [in] LPCITEMIDLIST pidl,
230 [in] LPBC pbcReserved,
231 [in] REFIID riid,
232 [out, iid_is(riid)] void **ppvOut);
233
234 HRESULT BindToStorage(
235 [in] LPCITEMIDLIST pidl,
236 [in] LPBC pbcReserved,
237 [in] REFIID riid,
238 [out, iid_is(riid)] void **ppvObj);
239
240 HRESULT CompareIDs(
241 [in] LPARAM lParam,
242 [in] LPCITEMIDLIST pidl1,
243 [in] LPCITEMIDLIST pidl2);
244
245 HRESULT CreateViewObject(
246 [in] HWND hwndOwner,
247 [in] REFIID riid,
248 [out, iid_is(riid)] void **ppvOut);
249
250 HRESULT GetAttributesOf(
251 [in] UINT cidl,
252 [in, size_is(cidl)] LPCITEMIDLIST *apidl,
253 [in, out] SFGAOF *rgfInOut);
254
255 HRESULT GetUIObjectOf(
256 [in] HWND hwndOwner,
257 [in] UINT cidl,
258 [in, size_is(cidl)] LPCITEMIDLIST *apidl,
259 [in] REFIID riid,
260 [in, out, unique] UINT *prgfInOut,
261 [out, iid_is(riid)] void **ppvOut);
262
263 HRESULT GetDisplayNameOf(
264 [in] LPCITEMIDLIST pidl,
265 [in] SHGDNF uFlags,
266 [out] STRRET *lpName);
267
268 HRESULT SetNameOf(
269 [in] HWND hwnd,
270 [in] LPCITEMIDLIST pidl,
271 [in, string] LPCOLESTR lpszName,
272 [in] SHGDNF uFlags,
273 [out] LPITEMIDLIST *ppidlOut);
274 }
275
276
277 /*****************************************************************************
278 * IEnumExtraSearch interface
279 */
280 [
281 object,
282 uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13),
283 pointer_default(unique)
284 ]
285 interface IEnumExtraSearch : IUnknown
286 {
287 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
288
289 typedef struct
290 {
291 GUID guidSearch;
292 WCHAR wszFriendlyName[80];
293 /*
294 *WCHAR wszMenuText[80];
295 *WCHAR wszHelpText[MAX_PATH];
296 */
297 WCHAR wszUrl[2084];
298 /*
299 *WCHAR wszIcon[MAX_PATH+10];
300 *WCHAR wszGreyIcon[MAX_PATH+10];
301 *WCHAR wszClrIcon[MAX_PATH+10];
302 */
303 } EXTRASEARCH, *LPEXTRASEARCH;
304
305 HRESULT Next(
306 [in] ULONG celt,
307 [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt,
308 [out] ULONG *pceltFetched);
309
310 HRESULT Skip( [in] ULONG celt );
311 HRESULT Reset();
312 HRESULT Clone( [out] IEnumExtraSearch **ppenum );
313 }
314
315
316 /*****************************************************************************
317 * IShellFolder2 interface
318 */
319 [
320 object,
321 uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1),
322 pointer_default(unique)
323 ]
324 interface IShellFolder2 : IShellFolder
325 {
326 typedef struct
327 {
328 GUID fmtid;
329 DWORD pid;
330 } SHCOLUMNID, *LPSHCOLUMNID;
331 typedef const SHCOLUMNID *LPCSHCOLUMNID;
332
333 HRESULT GetDefaultSearchGUID( [out] GUID *lpguid );
334 HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum );
335 HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay );
336 HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags );
337 HRESULT GetDetailsEx( [in] LPCITEMIDLIST pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv);
338 HRESULT GetDetailsOf( [in] LPCITEMIDLIST pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd);
339 HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid );
340 }
341
342 /*****************************************************************************
343 * IShellItem interface
344 */
345 [
346 object,
347 uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe),
348 pointer_default(unique)
349 ]
350 interface IShellItem : IUnknown
351 {
352 typedef DWORD SIGDN;
353
354 typedef DWORD SICHINTF;
355
356 HRESULT BindToHandler(
357 [in] IBindCtx *pbc,
358 [in] REFGUID rbhid,
359 [in] REFIID riid,
360 [out, iid_is(riid)] void **ppvOut);
361
362 HRESULT GetParent( [out] IShellItem **ppsi );
363
364 HRESULT GetDisplayName(
365 [in] SIGDN sigdnName,
366 [out] LPWSTR *ppszName);
367
368 HRESULT GetAttributes(
369 [in] SFGAOF sfgaoMask,
370 [out] SFGAOF *psfgaoAttribs);
371
372 HRESULT Compare(
373 [in] IShellItem *psi,
374 [in] SICHINTF hint,
375 [out] int *piOrder);
376 }
377
378 /*****************************************************************************
379 * FOLDERSETTINGS
380 */
381 typedef char *LPVIEWSETTINGS;
382
383 typedef enum
384 {
385 FWF_AUTOARRANGE = 0x00000001,
386 FWF_ABBREVIATEDNAMES = 0x00000002,
387 FWF_SNAPTOGRID = 0x00000004,
388 FWF_OWNERDATA = 0x00000008,
389 FWF_BESTFITWINDOW = 0x00000010,
390 FWF_DESKTOP = 0x00000020,
391 FWF_SINGLESEL = 0x00000040,
392 FWF_NOSUBFOLDERS = 0x00000080,
393 FWF_TRANSPARENT = 0x00000100,
394 FWF_NOCLIENTEDGE = 0x00000200,
395 FWF_NOSCROLL = 0x00000400,
396 FWF_ALIGNLEFT = 0x00000800,
397 FWF_NOICONS = 0x00001000,
398 FWF_SHOWSELALWAYS = 0x00002000,
399 FWF_NOVISIBLE = 0x00004000,
400 FWF_SINGLECLICKACTIVATE = 0x00008000,
401 FWF_NOWEBVIEW = 0x00010000,
402 FWF_HIDEFILENAMES = 0x00020000,
403 FWF_CHECKSELECT = 0x00040000
404 } FOLDERFLAGS;
405
406 typedef enum
407 {
408 FVM_ICON = 1,
409 FVM_FIRST = FVM_ICON,
410 FVM_SMALLICON = 2,
411 FVM_LIST = 3,
412 FVM_DETAILS = 4,
413 FVM_THUMBNAIL = 5,
414 FVM_TILE = 6,
415 FVM_THUMBSTRIP = 7,
416 FVM_LAST = FVM_THUMBSTRIP
417 } FOLDERVIEWMODE;
418
419 typedef struct
420 {
421 UINT ViewMode;
422 UINT fFlags;
423 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
424 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
425
426
427 /*****************************************************************************
428 * IShellView interface
429 */
430 interface IShellBrowser; /* forward declaration */
431 [
432 object,
433 uuid(000214e3-0000-0000-c000-000000000046),
434 pointer_default(unique)
435 ]
436 interface IShellView : IOleWindow
437 {
438 typedef IShellView *LPSHELLVIEW;
439
440 cpp_quote("#define SVSI_DESELECT 0x00000000")
441 cpp_quote("#define SVSI_SELECT 0x00000001")
442 cpp_quote("#define SVSI_EDIT 0x00000003")
443 cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004")
444 cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008")
445 cpp_quote("#define SVSI_FOCUSED 0x00000010")
446 cpp_quote("#define SVSI_TRANSLATEPT 0x00000020")
447 cpp_quote("#define SVSI_SELECTIONMARK 0x00000040")
448 cpp_quote("#define SVSI_POSITIONITEM 0x00000080")
449 cpp_quote("#define SVSI_CHECK 0x00000100")
450 cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000")
451
452 typedef UINT SVSIF;
453
454 typedef enum
455 {
456 SVGIO_BACKGROUND = 0x00000000,
457 SVGIO_SELECTION = 0x00000001,
458 SVGIO_ALLVIEW = 0x00000002,
459 SVGIO_CHECKED = 0x00000003,
460 SVGIO_TYPE_MASK = 0x0000000f,
461 SVGIO_FLAG_VIEWORDER = 0x80000000,
462 } SVGIO;
463
464 typedef enum
465 {
466 SVUIA_DEACTIVATE = 0,
467 SVUIA_ACTIVATE_NOFOCUS = 1,
468 SVUIA_ACTIVATE_FOCUS = 2,
469 SVUIA_INPLACEACTIVATE = 3
470 } SVUIA_STATUS;
471
472 HRESULT TranslateAccelerator( [in] MSG *pmsg );
473 HRESULT EnableModeless( [in] BOOL fEnable );
474 HRESULT UIActivate( [in] UINT uState );
475 HRESULT Refresh();
476 HRESULT CreateViewWindow(
477 [in] IShellView *psvPrevious,
478 [in] LPCFOLDERSETTINGS lpfs,
479 [in] IShellBrowser *psb,
480 [out] RECT *prcView,
481 [out] HWND *phWnd);
482
483 HRESULT DestroyViewWindow();
484 HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs );
485
486 [local] HRESULT AddPropertySheetPages(
487 [in] DWORD dwReserved,
488 [in] LPFNSVADDPROPSHEETPAGE pfn,
489 [in] LPARAM lparam);
490
491 HRESULT SaveViewState();
492 HRESULT SelectItem(
493 [in] LPCITEMIDLIST pidlItem,
494 [in] SVSIF uFlags);
495 HRESULT GetItemObject(
496 [in] UINT uItem,
497 [in] REFIID riid,
498 [out, iid_is(riid)] void **ppv);
499 }
500
501
502 [
503 uuid(88E39E80-3578-11CF-AE69-08002B2E1262),
504 object,
505 pointer_default(unique)
506 ]
507 interface IShellView2 : IShellView
508 {
509 typedef GUID SHELLVIEWID;
510
511 cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")
512 cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")
513
514 cpp_quote("#include <pshpack8.h>")
515 typedef struct _SV2CVW2_PARAMS
516 {
517 DWORD cbSize;
518
519 IShellView *psvPrev;
520 LPCFOLDERSETTINGS pfs;
521 IShellBrowser *psbOwner;
522 RECT *prcView;
523 SHELLVIEWID const *pvid;
524 HWND hwndView;
525
526 } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
527
528 cpp_quote("#include <poppack.h>")
529
530 HRESULT GetView(
531 [in, out] SHELLVIEWID* pvid,
532 [in] ULONG uView);
533
534 HRESULT CreateViewWindow2(
535 [in] LPSV2CVW2_PARAMS lpParams);
536
537 HRESULT HandleRename(
538 [in, unique] PCUITEMID_CHILD pidlNew);
539
540 HRESULT SelectAndPositionItem(
541 [in] PCUITEMID_CHILD pidlItem,
542 [in] UINT uFlags,
543 [in, unique] POINT *ppt);
544 }
545
546
547 [
548 uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
549 object,
550 pointer_default(unique)
551 ]
552 interface IShellView3 : IShellView2
553 {
554 enum tagSV3CVW3
555 {
556 SV3CVW3_DEFAULT = 0x00000000,
557 SV3CVW3_NONINTERACTIVE = 0x00000001,
558 SV3CVW3_FORCEVIEWMODE = 0x00000002,
559 SV3CVW3_FORCEFOLDERFLAGS = 0x00000004,
560 };
561 typedef DWORD SV3CVW3_FLAGS;
562
563 HRESULT CreateViewWindow3(
564 [in] IShellBrowser *psbOwner,
565 [in, unique] IShellView *psvPrev,
566 [in] SV3CVW3_FLAGS dwViewFlags,
567 [in] FOLDERFLAGS dwMask,
568 [in] FOLDERFLAGS dwFlags,
569 [in] FOLDERVIEWMODE fvMode,
570 [in, unique] const SHELLVIEWID *pvid,
571 [in] const RECT *prcView,
572 [out] HWND *phwndView);
573 }
574
575
576 /*****************************************************************************
577 * IShellBrowser interface
578 */
579 [
580 object,
581 uuid(000214e2-0000-0000-c000-000000000046),
582 pointer_default(unique)
583 ]
584 interface IShellBrowser : IOleWindow
585 {
586 typedef IShellBrowser *LPSHELLBROWSER;
587
588 cpp_quote("#define SBSP_DEFBROWSER 0x00000000")
589 cpp_quote("#define SBSP_SAMEBROWSER 0x00000001")
590 cpp_quote("#define SBSP_NEWBROWSER 0x00000002")
591 cpp_quote("#define SBSP_DEFMODE 0x00000000")
592 cpp_quote("#define SBSP_OPENMODE 0x00000010")
593 cpp_quote("#define SBSP_EXPLOREMODE 0x00000020")
594 cpp_quote("#define SBSP_HELPMODE 0x00000040")
595 cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080")
596 cpp_quote("#define SBSP_ABSOLUTE 0x00000000")
597 cpp_quote("#define SBSP_RELATIVE 0x00001000")
598 cpp_quote("#define SBSP_PARENT 0x00002000")
599 cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000")
600 cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000")
601 cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000")
602 cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000")
603 cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000")
604 cpp_quote("#define SBSP_REDIRECT 0x40000000")
605 cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
606
607 cpp_quote("#define FCW_STATUS 0x0001")
608 cpp_quote("#define FCW_TOOLBAR 0x0002")
609 cpp_quote("#define FCW_TREE 0x0003")
610 cpp_quote("#define FCW_INTERNETBAR 0x0006")
611 cpp_quote("#define FCW_PROGRESS 0x0008")
612
613 cpp_quote("#define FCT_MERGE 0x0001")
614 cpp_quote("#define FCT_CONFIGABLE 0x0002")
615 cpp_quote("#define FCT_ADDTOEND 0x0004")
616
617 cpp_quote("#if 0")
618 typedef LPARAM LPTBBUTTONSB;
619 cpp_quote("#else")
620 cpp_quote("#include <commctrl.h>")
621 cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;")
622 cpp_quote("#endif")
623
624 HRESULT InsertMenusSB(
625 [in] HMENU hmenuShared,
626 [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths);
627
628 HRESULT SetMenuSB(
629 [in] HMENU hmenuShared,
630 [in] HOLEMENU holemenuReserved,
631 [in] HWND hwndActiveObject);
632
633 HRESULT RemoveMenusSB( [in] HMENU hmenuShared );
634 HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText );
635 HRESULT EnableModelessSB( [in] BOOL fEnable );
636 HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID );
637
638 HRESULT BrowseObject(
639 [in] LPCITEMIDLIST pidl,
640 [in] UINT wFlags);
641
642 HRESULT GetViewStateStream(
643 [in] DWORD grfMode,
644 [out] IStream **ppStrm);
645
646 HRESULT GetControlWindow(
647 [in] UINT id,
648 [out] HWND *phwnd);
649
650 [local] HRESULT SendControlMsg(
651 [in] UINT id,
652 [in] UINT uMsg,
653 [in] WPARAM wParam,
654 [in] LPARAM lParam,
655 [in] LRESULT *pret);
656
657 HRESULT QueryActiveShellView( [out] IShellView **ppshv );
658 HRESULT OnViewWindowActive( [in] IShellView *pshv );
659
660 [local]
661 HRESULT SetToolbarItems(
662 [in] LPTBBUTTONSB lpButtons,
663 [in] UINT nButtons,
664 [in] UINT uFlags);
665 }
666
667
668 /*****************************************************************************
669 * IShellLinkA interface
670 */
671 [
672 object,
673 uuid(000214ee-0000-0000-c000-000000000046),
674 pointer_default(unique)
675 ]
676 interface IShellLinkA : IUnknown
677 {
678 typedef enum
679 {
680 SLR_NO_UI = 0x0001,
681 SLR_ANY_MATCH = 0x0002,
682 SLR_UPDATE = 0x0004,
683 SLR_NOUPDATE = 0x0008,
684 SLR_NOSEARCH = 0x0010,
685 SLR_NOTRACK = 0x0020,
686 SLR_NOLINKINFO = 0x0040,
687 SLR_INVOKE_MSI = 0x0080,
688 SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
689 } SLR_FLAGS;
690
691 typedef enum
692 {
693 SLGP_SHORTPATH = 0x0001,
694 SLGP_UNCPRIORITY = 0x0002,
695 SLGP_RAWPATH = 0x0004,
696 } SLGP_FLAGS;
697
698 HRESULT GetPath(
699 [out, size_is(cch)] LPSTR pszFile,
700 [in] int cch,
701 [in, out] WIN32_FIND_DATAA *pfd,
702 [in] DWORD fFlags);
703
704 HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
705
706 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
707
708 HRESULT GetDescription(
709 [out, size_is(cch)] LPSTR pszName,
710 [in] int cch);
711
712 HRESULT SetDescription( [in] LPCSTR pszName );
713
714 HRESULT GetWorkingDirectory(
715 [out, size_is(cch)] LPSTR pszDir,
716 [in] int cch);
717
718 HRESULT SetWorkingDirectory( [in] LPCSTR pszDir );
719
720 HRESULT GetArguments(
721 [out, size_is(cch)] LPSTR pszArgs,
722 [in] int cch);
723
724 HRESULT SetArguments( [in] LPCSTR pszArgs );
725
726 HRESULT GetHotkey( [out] WORD *pwHotkey );
727
728 HRESULT SetHotkey( [in] WORD wHotkey );
729
730 HRESULT GetShowCmd( [out] int *piShowCmd );
731
732 HRESULT SetShowCmd( [in] int iShowCmd );
733
734 HRESULT GetIconLocation(
735 [out, size_is(cch)] LPSTR pszIconPath,
736 [in] int cch,
737 [out] int *piIcon);
738
739 HRESULT SetIconLocation(
740 [in] LPCSTR pszIconPath,
741 [in] int iIcon);
742
743 HRESULT SetRelativePath(
744 [in] LPCSTR pszPathRel,
745 [in] DWORD dwReserved);
746
747 HRESULT Resolve(
748 [in] HWND hwnd,
749 [in] DWORD fFlags);
750
751 HRESULT SetPath( [in] LPCSTR pszFile );
752 }
753
754
755 /*****************************************************************************
756 * IShellLinkW interface
757 */
758 [
759 object,
760 uuid(000214f9-0000-0000-c000-000000000046),
761 pointer_default(unique)
762 ]
763 interface IShellLinkW : IUnknown
764 {
765 HRESULT GetPath(
766 [out, size_is(cch)] LPWSTR pszFile,
767 [in] int cch,
768 [in, out] WIN32_FIND_DATAW *pfd,
769 [in] DWORD fFlags);
770
771 HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
772
773 HRESULT SetIDList( [in] LPCITEMIDLIST pidl );
774
775 HRESULT GetDescription(
776 [out, size_is(cch)] LPWSTR pszName,
777 [in] int cch);
778
779 HRESULT SetDescription( [in] LPCWSTR pszName );
780
781 HRESULT GetWorkingDirectory(
782 [out, size_is(cch)] LPWSTR pszDir,
783 [in] int cch);
784
785 HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir );
786
787 HRESULT GetArguments(
788 [out, size_is(cch)] LPWSTR pszArgs,
789 [in] int cch);
790
791 HRESULT SetArguments( [in] LPCWSTR pszArgs );
792
793 HRESULT GetHotkey( [out] WORD *pwHotkey );
794
795 HRESULT SetHotkey( [in] WORD wHotkey );
796
797 HRESULT GetShowCmd( [out] int *piShowCmd );
798
799 HRESULT SetShowCmd( [in] int iShowCmd );
800
801 HRESULT GetIconLocation(
802 [out, size_is(cch)] LPWSTR pszIconPath,
803 [in] int cch,
804 [out] int *piIcon);
805
806 HRESULT SetIconLocation(
807 [in] LPCWSTR pszIconPath,
808 [in] int iIcon);
809
810 HRESULT SetRelativePath(
811 [in] LPCWSTR pszPathRel,
812 [in] DWORD dwReserved);
813
814 HRESULT Resolve(
815 [in] HWND hwnd,
816 [in] DWORD fFlags);
817
818 HRESULT SetPath( [in] LPCWSTR pszFile );
819 }
820
821 cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)")
822
823
824 /*****************************************************************************
825 * IShellExtInit interface
826 */
827 [
828 object,
829 uuid(000214e8-0000-0000-c000-000000000046),
830 pointer_default(unique),
831 local
832 ]
833 interface IShellExtInit : IUnknown
834 {
835 typedef IShellExtInit *LPSHELLEXTINIT;
836
837 HRESULT Initialize(
838 [in] LPCITEMIDLIST pidlFolder,
839 [in] IDataObject *pdtobj,
840 [in] HKEY hkeyProgID);
841 }
842
843
844 /*******************************************************************************/
845 /* Note: the following interfaces are not in shobjidl.idl under Windows, they */
846 /* are declared directly in shlobj.h. It hopefully won't break anything to put */
847 /* them here anyway. */
848 /*******************************************************************************/
849
850 #ifndef MAX_PATH
851 #define MAX_PATH 260
852 #endif
853
854
855 /*****************************************************************************
856 * IPersistFolder3 interface
857 */
858 [
859 object,
860 uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf),
861 pointer_default(unique)
862 ]
863 interface IPersistFolder3 : IPersistFolder2
864 {
865 typedef struct
866 {
867 LPITEMIDLIST pidlTargetFolder;
868 WCHAR szTargetParsingName[MAX_PATH];
869 WCHAR szNetworkProvider[MAX_PATH];
870 DWORD dwAttributes;
871 int csidl;
872 } PERSIST_FOLDER_TARGET_INFO;
873
874 HRESULT InitializeEx(
875 [in] IBindCtx *pbc,
876 [in] LPCITEMIDLIST pidlRoot,
877 [in] const PERSIST_FOLDER_TARGET_INFO *ppfti);
878
879 HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti );
880 }
881
882
883 /*****************************************************************************
884 * IExtractIconA interface
885 */
886 [
887 object,
888 uuid(000214eb-0000-0000-c000-000000000046),
889 pointer_default(unique)
890 ]
891 interface IExtractIconA : IUnknown
892 {
893 cpp_quote("#define GIL_OPENICON 0x0001")
894 cpp_quote("#define GIL_FORSHELL 0x0002")
895 cpp_quote("#define GIL_ASYNC 0x0020")
896 cpp_quote("#define GIL_DEFAULTICON 0x0040")
897 cpp_quote("#define GIL_FORSHORTCUT 0x0080")
898
899 cpp_quote("#define GIL_SIMULATEDOC 0x0001")
900 cpp_quote("#define GIL_PERINSTANCE 0x0002")
901 cpp_quote("#define GIL_PERCLASS 0x0004")
902 cpp_quote("#define GIL_NOTFILENAME 0x0008")
903 cpp_quote("#define GIL_DONTCACHE 0x0010")
904
905 typedef IExtractIconA *LPEXTRACTICONA;
906
907 HRESULT GetIconLocation(
908 [in] UINT uFlags,
909 [out, size_is(cchMax)] LPSTR szIconFile,
910 [in] UINT cchMax,
911 [out] INT *piIndex,
912 [out] UINT *pwFlags);
913
914 HRESULT Extract(
915 [in] LPCSTR pszFile,
916 [in] UINT nIconIndex,
917 [out] HICON *phiconLarge,
918 [out] HICON *phiconSmall,
919 [in] UINT nIconSize );
920 }
921
922
923 /*****************************************************************************
924 * IExtractIconW interface
925 */
926 [
927 object,
928 uuid(000214fa-0000-0000-c000-000000000046),
929 pointer_default(unique)
930 ]
931 interface IExtractIconW : IUnknown
932 {
933 typedef IExtractIconW *LPEXTRACTICONW;
934
935 HRESULT GetIconLocation(
936 [in] UINT uFlags,
937 [out, size_is(cchMax)] LPWSTR szIconFile,
938 [in] UINT cchMax,
939 [out] INT *piIndex,
940 [out] UINT *pwFlags);
941
942 HRESULT Extract(
943 [in] LPCWSTR pszFile,
944 [in] UINT nIconIndex,
945 [out] HICON *phiconLarge,
946 [out] HICON *phiconSmall,
947 [in] UINT nIconSize );
948 }
949
950 cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)")
951 cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)")
952
953
954 /*****************************************************************************
955 * ICommDlgBrowser interface
956 */
957 [
958 object,
959 uuid(000214f1-0000-0000-c000-000000000046),
960 pointer_default(unique)
961 ]
962 interface ICommDlgBrowser : IUnknown
963 {
964 cpp_quote("#define CDBOSC_SETFOCUS 0x00000000")
965 cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001")
966 cpp_quote("#define CDBOSC_SELCHANGE 0x00000002")
967 cpp_quote("#define CDBOSC_RENAME 0x00000003")
968 cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
969
970 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
971
972 HRESULT OnDefaultCommand( [in] IShellView *shv );
973 HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange );
974 HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl );
975 }
976
977
978 /*****************************************************************************
979 * IDockingWindowFrame interface
980 */
981 [
982 object,
983 uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8),
984 pointer_default(unique),
985 local
986 ]
987 interface IDockingWindowFrame : IOleWindow
988 {
989 cpp_quote("#define DWFRF_NORMAL 0x0000")
990 cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001")
991 cpp_quote("#define DWFAF_HIDDEN 0x0001")
992
993 HRESULT AddToolbar(
994 [in] IUnknown *punkSrc,
995 [in] LPCWSTR pwszItem,
996 [in] DWORD dwAddFlags);
997
998 HRESULT RemoveToolbar(
999 [in] IUnknown *punkSrc,
1000 [in] DWORD dwRemoveFlags);
1001
1002 HRESULT FindToolbar(
1003 [in] LPCWSTR pwszItem,
1004 [in] REFIID riid,
1005 [out] LPVOID *ppvObj);
1006 }
1007
1008
1009 /*****************************************************************************
1010 * IDragSourceHelper interface
1011 */
1012 [
1013 object,
1014 uuid(de5bf786-477a-11d2-839d-00c04fd918d0),
1015 pointer_default(unique)
1016 ]
1017 interface IDragSourceHelper : IUnknown
1018 {
1019 typedef struct
1020 {
1021 SIZE sizeDragImage;
1022 POINT ptOffset;
1023 HBITMAP hbmpDragImage;
1024 COLORREF crColorKey;
1025 } SHDRAGIMAGE, *LPSHDRAGIMAGE;
1026
1027 HRESULT InitializeFromBitmap(
1028 [in] LPSHDRAGIMAGE pshdi,
1029 [in] IDataObject *pDataObject);
1030
1031 HRESULT InitializeFromWindow(
1032 [in] HWND hwnd,
1033 [in] POINT *ppt,
1034 [in] IDataObject *pDataObject);
1035 }
1036
1037
1038 /*****************************************************************************
1039 * IDropTargetHelper interface
1040 */
1041 [
1042 object,
1043 uuid(4657278b-411b-11d2-839a-00c04fd918d0),
1044 pointer_default(unique)
1045 ]
1046 interface IDropTargetHelper : IUnknown
1047 {
1048 HRESULT DragEnter(
1049 [in] HWND hwndTarget,
1050 [in] IDataObject *pDataObject,
1051 [in] POINT *ppt,
1052 [in] DWORD dwEffect);
1053
1054 HRESULT DragLeave();
1055
1056 HRESULT DragOver(
1057 [in] POINT *ppt,
1058 [in] DWORD dwEffect);
1059
1060 HRESULT Drop(
1061 [in] IDataObject *pDataObject,
1062 [in] POINT *ppt,
1063 [in] DWORD dwEffect);
1064
1065 HRESULT Show( [in] BOOL fShow );
1066 }
1067
1068
1069 /*****************************************************************************
1070 * IContextMenu interface
1071 */
1072 [
1073 object,
1074 uuid(000214e4-0000-0000-c000-000000000046),
1075 pointer_default(unique),
1076 local
1077 ]
1078 interface IContextMenu : IUnknown
1079 {
1080 cpp_quote("#define CMF_NORMAL 0x00000000")
1081 cpp_quote("#define CMF_DEFAULTONLY 0x00000001")
1082 cpp_quote("#define CMF_VERBSONLY 0x00000002")
1083 cpp_quote("#define CMF_EXPLORE 0x00000004")
1084 cpp_quote("#define CMF_NOVERBS 0x00000008")
1085 cpp_quote("#define CMF_CANRENAME 0x00000010")
1086 cpp_quote("#define CMF_NODEFAULT 0x00000020")
1087 cpp_quote("#define CMF_INCLUDESTATIC 0x00000040")
1088 cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100")
1089 cpp_quote("#define CMF_RESERVED 0xffff0000")
1090
1091 cpp_quote("#define GCS_VERBA 0x00000000")
1092 cpp_quote("#define GCS_HELPTEXTA 0x00000001")
1093 cpp_quote("#define GCS_VALIDATEA 0x00000002")
1094 cpp_quote("#define GCS_VERBW 0x00000004")
1095 cpp_quote("#define GCS_HELPTEXTW 0x00000005")
1096 cpp_quote("#define GCS_VALIDATEW 0x00000006")
1097 cpp_quote("#define GCS_UNICODE 0x00000004")
1098 cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)")
1099 cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)")
1100 cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)")
1101
1102 cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"")
1103 cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"")
1104 cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"")
1105 cpp_quote("#if defined(__GNUC__)")
1106 cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }")
1107 cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }")
1108 cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }")
1109 cpp_quote("#elif defined(_MSC_VER)")
1110 cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"")
1111 cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"")
1112 cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"")
1113 cpp_quote("#else")
1114 cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};")
1115 cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};")
1116 cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};")
1117 cpp_quote("#endif")
1118 cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)")
1119 cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)")
1120 cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)")
1121
1122 cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY")
1123 cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON")
1124 cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI")
1125 cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE")
1126 cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE")
1127 cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME")
1128 cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM")
1129 cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE")
1130 cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK")
1131 cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000")
1132 cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000")
1133 cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000")
1134 cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE")
1135 cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS")
1136
1137 typedef IContextMenu *LPCONTEXTMENU;
1138
1139 typedef struct tagCMINVOKECOMMANDINFO
1140 {
1141 DWORD cbSize;
1142 DWORD fMask;
1143 HWND hwnd;
1144 LPCSTR lpVerb;
1145 LPCSTR lpParameters;
1146 LPCSTR lpDirectory;
1147 INT nShow;
1148 DWORD dwHotKey;
1149 HANDLE hIcon;
1150 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
1151
1152 typedef struct tagCMInvokeCommandInfoEx
1153 {
1154 DWORD cbSize;
1155 DWORD fMask;
1156 HWND hwnd;
1157 LPCSTR lpVerb;
1158 LPCSTR lpParameters;
1159 LPCSTR lpDirectory;
1160 INT nShow;
1161 DWORD dwHotKey;
1162 HANDLE hIcon;
1163 LPCSTR lpTitle;
1164 LPCWSTR lpVerbW;
1165 LPCWSTR lpParametersW;
1166 LPCWSTR lpDirectoryW;
1167 LPCWSTR lpTitleW;
1168 POINT ptInvoke;
1169 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX;
1170
1171 HRESULT QueryContextMenu(
1172 [in] HMENU hmenu,
1173 [in] UINT indexMenu,
1174 [in] UINT idCmdFirst,
1175 [in] UINT idCmdLast,
1176 [in] UINT uFlags);
1177
1178 HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici );
1179
1180 HRESULT GetCommandString(
1181 [in] UINT_PTR idCmd,
1182 [in] UINT uType,
1183 [out] UINT *pwReserved,
1184 [out, size_is(cchMax)] LPSTR pszName,
1185 [in] UINT cchMax);
1186 }
1187
1188
1189 /*****************************************************************************
1190 * IContextMenu2 interface
1191 */
1192 [
1193 object,
1194 uuid(000214f4-0000-0000-c000-000000000046),
1195 pointer_default(unique)
1196 ]
1197 interface IContextMenu2 : IContextMenu
1198 {
1199 typedef IContextMenu2 *LPCONTEXTMENU2;
1200
1201 HRESULT HandleMenuMsg(
1202 [in] UINT uMsg,
1203 [in] WPARAM wParam,
1204 [in] LPARAM lParam);
1205 }
1206
1207
1208 /*****************************************************************************
1209 * IContextMenu3 interface
1210 */
1211 [
1212 object,
1213 uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719),
1214 pointer_default(unique)
1215 ]
1216 interface IContextMenu3 : IContextMenu2
1217 {
1218 typedef IContextMenu3 *LPCONTEXTMENU3;
1219
1220 HRESULT HandleMenuMsg2(
1221 [in] UINT uMsg,
1222 [in] WPARAM wParam,
1223 [in] LPARAM lParam,
1224 [out] LRESULT *plResult);
1225 }
1226
1227
1228 /*****************************************************************************
1229 * IShellExecuteHookA interface
1230 */
1231 [
1232 object,
1233 uuid(000214f5-0000-0000-c000-000000000046),
1234 pointer_default(unique),
1235 local
1236 ]
1237 interface IShellExecuteHookA : IUnknown
1238 {
1239 cpp_quote("struct _SHELLEXECUTEINFOA;")
1240 HRESULT Execute(
1241 [in, out] struct _SHELLEXECUTEINFOA* pei);
1242 }
1243
1244
1245 /*****************************************************************************
1246 * IShellExecuteHookW interface
1247 */
1248 [
1249 object,
1250 uuid(000214fb-0000-0000-c000-000000000046),
1251 pointer_default(unique),
1252 local
1253 ]
1254 interface IShellExecuteHookW : IUnknown
1255 {
1256 cpp_quote("struct _SHELLEXECUTEINFOW;")
1257 HRESULT Execute(
1258 [in, out] struct _SHELLEXECUTEINFOW* pei);
1259 }
1260
1261 /*****************************************************************************
1262 * IShellLinkDataList interface
1263 */
1264 [
1265 object,
1266 uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1),
1267 pointer_default(unique)
1268 ]
1269 interface IShellLinkDataList : IUnknown
1270 {
1271 [local] HRESULT AddDataBlock(
1272 [in] void *pDataBlock);
1273 [local] HRESULT CopyDataBlock(
1274 [in] DWORD dwSig,
1275 [out] void **ppDataBlock);
1276 HRESULT RemoveDataBlock(
1277 [in] DWORD dwSig);
1278 HRESULT GetFlags(
1279 [out] DWORD *pdwFlags);
1280 HRESULT SetFlags(
1281 [in] DWORD dwFlags);
1282 }
1283
1284
1285 /*****************************************************************************
1286 * IResolveShellLink interface
1287 */
1288 [
1289 object,
1290 uuid(5cd52983-9449-11d2-963a-00c04f79adf0),
1291 pointer_default(unique)
1292 ]
1293 interface IResolveShellLink : IUnknown
1294 {
1295 HRESULT ResolveShellLink(
1296 [in] IUnknown *punk,
1297 [in] HWND hwnd,
1298 [in] DWORD fFlags);
1299 }
1300
1301
1302 /*****************************************************************************
1303 * IURLSearchHook interface
1304 */
1305 [
1306 object,
1307 uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497),
1308 pointer_default(unique)
1309 ]
1310 interface IURLSearchHook : IUnknown
1311 {
1312 HRESULT Translate(
1313 [in, out] LPWSTR lpwszSearchURL,
1314 [in] DWORD cchBufferSize);
1315 }
1316
1317
1318 /*****************************************************************************
1319 * ISearchContext interface
1320 */
1321 [
1322 object,
1323 uuid(09f656a2-41af-480c-88f7-16cc0d164615),
1324 pointer_default(unique)
1325 ]
1326 interface ISearchContext : IUnknown
1327 {
1328 HRESULT GetSearchUrl(
1329 [in] BSTR *pbstrSearchUrl);
1330 HRESULT GetSearchText(
1331 [in] BSTR *pbstrSearchText);
1332 HRESULT GetSearchStyle(
1333 [in] BSTR *pdwSearchStyle);
1334 }
1335
1336
1337 /*****************************************************************************
1338 * IURLSearchHook2 interface
1339 */
1340 [
1341 object,
1342 uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0),
1343 pointer_default(unique)
1344 ]
1345 interface IURLSearchHook2 : IURLSearchHook
1346 {
1347 HRESULT TranslateWithSearchContext(
1348 [in, out] LPWSTR lpwszSearchURL,
1349 [in] DWORD cchBufferSize,
1350 [in] ISearchContext *pSearchContext);
1351 }
1352
1353
1354 cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)")
1355
1356 /*****************************************************************************
1357 * INewShortcutHookA interface
1358 */
1359 [
1360 object,
1361 uuid(000214e1-0000-0000-c000-000000000046),
1362 pointer_default(unique)
1363 ]
1364 interface INewShortcutHookA : IUnknown
1365 {
1366 HRESULT SetReferent(
1367 [in] LPCSTR pcszReferent,
1368 [in] HWND hwnd);
1369 HRESULT GetReferent(
1370 [out] LPCSTR pcszReferent,
1371 [in] int cchReferent);
1372 HRESULT SetFolder(
1373 [in] LPCSTR pcszReferent);
1374 HRESULT GetFolder(
1375 [out] LPSTR pcszReferent,
1376 [in] int cchFolder);
1377 HRESULT GetName(
1378 [out] LPSTR pszName,
1379 [in] int cchName);
1380 HRESULT GetExtension(
1381 [out] LPSTR pszExtension,
1382 [in] int cchExtension);
1383 }
1384
1385
1386 /*****************************************************************************
1387 * INewShortcutHookW interface
1388 */
1389 [
1390 object,
1391 uuid(000214f7-0000-0000-c000-000000000046),
1392 pointer_default(unique)
1393 ]
1394 interface INewShortcutHookW : IUnknown
1395 {
1396 HRESULT SetReferent(
1397 [in] LPCWSTR pcszReferent,
1398 [in] HWND hwnd);
1399 HRESULT GetReferent(
1400 [out] LPCWSTR pcszReferent,
1401 [in] int cchReferent);
1402 HRESULT SetFolder(
1403 [in] LPCWSTR pcszReferent);
1404 HRESULT GetFolder(
1405 [out] LPWSTR pcszReferent,
1406 [in] int cchFolder);
1407 HRESULT GetName(
1408 [out] LPWSTR pszName,
1409 [in] int cchName);
1410 HRESULT GetExtension(
1411 [out] LPWSTR pszExtension,
1412 [in] int cchExtension);
1413 }
1414
1415 /*****************************************************************************
1416 * IRunnableTask interface
1417 */
1418 [
1419 object,
1420 uuid(85788d00-6807-11d0-b810-00c04fd706ec),
1421 pointer_default(unique)
1422 ]
1423 interface IRunnableTask : IUnknown
1424 {
1425 HRESULT Run();
1426 HRESULT Kill([in] BOOL fWait);
1427 HRESULT Suspend();
1428 HRESULT Resume();
1429 ULONG IsRunning();
1430 }
1431
1432 /*****************************************************************************
1433 * IShellChangeNotify interface
1434 */
1435 [
1436 object,
1437 uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
1438 pointer_default(unique)
1439 ]
1440 interface IShellChangeNotify : IUnknown
1441 {
1442 HRESULT OnChange(
1443 [in] LONG lEvent,
1444 [in] LPCITEMIDLIST pidl1,
1445 [in] LPCITEMIDLIST pidl2);
1446 }
1447
1448 /*****************************************************************************
1449 * IFileSystemBindData interface
1450 */
1451 [
1452 object,
1453 uuid(01e18d10-4d8b-11d2-855d-006008059367),
1454 pointer_default(unique)
1455 ]
1456 interface IFileSystemBindData : IUnknown
1457 {
1458 HRESULT SetFindData(
1459 [in] const WIN32_FIND_DATAW *pfd);
1460 HRESULT GetFindData(
1461 [out] WIN32_FIND_DATAW *pfd);
1462 }
1463
1464 /*****************************************************************************
1465 * ITaskbarList interface
1466 */
1467 [
1468 object,
1469 uuid(56FDF342-FD6D-11d0-958A-006097C9A090),
1470 pointer_default(unique)
1471 ]
1472 interface ITaskbarList : IUnknown
1473 {
1474 HRESULT HrInit();
1475
1476 HRESULT AddTab(
1477 [in] HWND hwnd);
1478
1479 HRESULT DeleteTab(
1480 [in] HWND hwnd);
1481
1482 HRESULT ActivateTab(
1483 [in] HWND hwnd);
1484
1485 HRESULT SetActiveAlt(
1486 [in] HWND hwnd);
1487 }
1488
1489 cpp_quote("EXTERN_C const CLSID CLSID_TaskbarList;")
1490
1491 /*****************************************************************************
1492 * IContextMenuCB interface
1493 */
1494
1495 [
1496 object,
1497 uuid(3409e930-5a39-11d1-83fa-00a0c90dc849),
1498 pointer_default(unique)
1499 ]
1500 interface IContextMenuCB : IUnknown
1501 {
1502 HRESULT CallBack(
1503 [in] IShellFolder *psf,
1504 [in] HWND hwndOwner,
1505 [in] IDataObject *pdtobj,
1506 [in] UINT uMsg,
1507 [in] WPARAM wParam,
1508 [in] LPARAM lParam);
1509 }
1510
1511 /*****************************************************************************
1512 * IDefaultExtractIconInit interface
1513 */
1514
1515 [
1516 object,
1517 uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */
1518 pointer_default(unique),
1519 local
1520 ]
1521 interface IDefaultExtractIconInit : IUnknown
1522 {
1523 HRESULT SetDefaultIcon(
1524 [in] LPCWSTR pszFile,
1525 [in] int iIcon);
1526 HRESULT SetFlags(
1527 [in] UINT uFlags);
1528 HRESULT SetKey(
1529 [in] HKEY hkey);
1530 HRESULT SetNormalIcon(
1531 [in] LPCWSTR pszFile,
1532 [in] int iIcon);
1533 HRESULT SetOpenIcon(
1534 [in] LPCWSTR pszFile,
1535 [in] int iIcon);
1536 HRESULT SetShortcutIcon(
1537 [in] LPCWSTR pszFile,
1538 [in] int iIcon);
1539 }
1540
1541
1542 /*****************************************************************************
1543 * IDockingWindow interface
1544 */
1545 [
1546 uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8),
1547 object
1548 ]
1549 interface IDockingWindow : IOleWindow
1550 {
1551 HRESULT ShowDW([in] BOOL fShow);
1552
1553 HRESULT CloseDW([in] DWORD dwReserved);
1554
1555 HRESULT ResizeBorderDW(
1556 [in] LPCRECT prcBorder,
1557 [in] IUnknown* punkToolbarSite,
1558 [in] BOOL fReserved);
1559 }
1560
1561
1562 /*****************************************************************************
1563 * IDeskBand interface
1564 */
1565 cpp_quote("#define DBIM_MINSIZE 0x0001")
1566 cpp_quote("#define DBIM_MAXSIZE 0x0002")
1567 cpp_quote("#define DBIM_INTEGRAL 0x0004")
1568 cpp_quote("#define DBIM_ACTUAL 0x0008")
1569 cpp_quote("#define DBIM_TITLE 0x0010")
1570 cpp_quote("#define DBIM_MODEFLAGS 0x0020")
1571 cpp_quote("#define DBIM_BKCOLOR 0x0040")
1572
1573 cpp_quote("#include <pshpack8.h>")
1574
1575 typedef struct tagDESKBANDINFO
1576 {
1577 DWORD dwMask;
1578 POINTL ptMinSize;
1579 POINTL ptMaxSize;
1580 POINTL ptIntegral;
1581 POINTL ptActual;
1582 WCHAR wszTitle[256];
1583 DWORD dwModeFlags;
1584 COLORREF crBkgnd;
1585 } DESKBANDINFO;
1586
1587 cpp_quote("#include <poppack.h>")
1588
1589 cpp_quote("#define DBIMF_NORMAL 0x0000")
1590 cpp_quote("#define DBIMF_FIXED 0x0001")
1591 cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)")
1592 cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008")
1593 cpp_quote("#define DBIMF_UNDELETEABLE 0x0010")
1594 cpp_quote("#define DBIMF_DEBOSSED 0x0020")
1595 cpp_quote("#define DBIMF_BKCOLOR 0x0040")
1596 cpp_quote("#define DBIMF_USECHEVRON 0x0080")
1597 cpp_quote("#define DBIMF_BREAK 0x0100")
1598 cpp_quote("#define DBIMF_ADDTOFRONT 0x0200")
1599 cpp_quote("#define DBIMF_TOPALIGN 0x0400")
1600 cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
1601 cpp_quote("#define DBIMF_NOGRIPPER 0x0800")
1602 cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000")
1603 cpp_quote("#define DBIMF_NOMARGINS 0x2000")
1604 cpp_quote("#endif // NTDDI_LONGHORN")
1605
1606 cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000")
1607 cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001")
1608 cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002")
1609 cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004")
1610
1611 enum tagDESKBANDCID {
1612 DBID_BANDINFOCHANGED = 0,
1613 DBID_SHOWONLY = 1,
1614 DBID_MAXIMIZEBAND = 2,
1615 DBID_PUSHCHEVRON = 3,
1616 DBID_DELAYINIT = 4,
1617 DBID_FINISHINIT = 5,
1618 DBID_SETWINDOWTHEME = 6,
1619 DBID_PERMITAUTOHIDE = 7,
1620 };
1621
1622 cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1")
1623 cpp_quote("#define DBPC_SELECTLAST (DWORD)-2")
1624
1625 cpp_quote("#define CGID_DeskBand IID_IDeskBand")
1626
1627 [
1628 uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC),
1629 object,
1630 ]
1631 interface IDeskBand : IDockingWindow
1632 {
1633 HRESULT GetBandInfo(
1634 [in] DWORD dwBandID,
1635 [in] DWORD dwViewMode,
1636 [in, out] DESKBANDINFO* pdbi);
1637 }
1638
1639 cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
1640
1641 /*****************************************************************************
1642 * IDeskBandInfo interface
1643 */
1644 [
1645 uuid(77E425FC-CBF9-4307-BA6A-BB5727745661),
1646 object,
1647 ]
1648 interface IDeskBandInfo : IUnknown
1649 {
1650 HRESULT GetDefaultBandWidth(
1651 [in] DWORD dwBandID,
1652 [in] DWORD dwViewMode,
1653 [out] int *pnWidth);
1654 }
1655
1656
1657 /*****************************************************************************
1658 * IDeskBand2 interface
1659 */
1660 [
1661 uuid(79D16DE4-ABEE-4021-8D9D-9169B261D657),
1662 object,
1663 ]
1664 interface IDeskBand2 : IDeskBand
1665 {
1666 HRESULT CanRenderComposited([out] BOOL *pfCanRenderComposited);
1667
1668 HRESULT SetCompositionState([in] BOOL fCompositionEnabled);
1669
1670 HRESULT GetCompositionState([out] BOOL *pfCompositionEnabled);
1671 }
1672
1673 cpp_quote("#endif // NTDDI_LONGHORN")
1674
1675
1676
1677 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
1678
1679 [
1680 uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC),
1681 object,
1682 pointer_default(unique),
1683 local
1684 ]
1685 interface IDeskBar : IOleWindow
1686 {
1687 HRESULT SetClient([in] IUnknown* punkClient);
1688
1689 HRESULT GetClient([out] IUnknown** ppunkClient);
1690
1691 HRESULT OnPosRectChangeDB([in] RECT *prc);
1692 }
1693
1694
1695 /*****************************************************************************
1696 * IMenuPopup interface
1697 */
1698 [
1699 uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4),
1700 object,
1701 pointer_default(unique),
1702 local
1703 ]
1704 interface IMenuPopup : IDeskBar
1705 {
1706 enum tagMENUPOPUPSELECT
1707 {
1708 MPOS_EXECUTE = 0,
1709 MPOS_FULLCANCEL,
1710 MPOS_CANCELLEVEL,
1711 MPOS_SELECTLEFT,
1712 MPOS_SELECTRIGHT,
1713 MPOS_CHILDTRACKING
1714 };
1715
1716 enum tagMENUPOPUPPOPUPFLAGS
1717 {
1718 MPPF_SETFOCUS = 0x00000001,
1719 MPPF_INITIALSELECT = 0x00000002,
1720 MPPF_NOANIMATE = 0x00000004,
1721 MPPF_KEYBOARD = 0x00000010,
1722 MPPF_REPOSITION = 0x00000020,
1723 MPPF_FORCEZORDER = 0x00000040,
1724 MPPF_FINALSELECT = 0x00000080,
1725 MPPF_TOP = 0x20000000,
1726 MPPF_LEFT = 0x40000000,
1727 MPPF_RIGHT = 0x60000000,
1728 MPPF_BOTTOM = 0x80000000,
1729 MPPF_POS_MASK = 0xE0000000,
1730 MPPF_ALIGN_LEFT = 0x02000000,
1731 MPPF_ALIGN_RIGHT = 0x04000000
1732 };
1733 typedef int MP_POPUPFLAGS;
1734
1735 HRESULT Popup(
1736 [in] POINTL *ppt,
1737 [in] RECTL *prcExclude,
1738 [in] MP_POPUPFLAGS dwFlags);
1739
1740 HRESULT OnSelect([in] DWORD dwSelectType);
1741
1742 HRESULT SetSubMenu(
1743 [in] IMenuPopup* pmp,
1744 [in] BOOL fSet);
1745 }
1746
1747 cpp_quote("#endif /* _WIN32_IE_IE60 */")
1748
1749 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)")
1750
1751 /*****************************************************************************
1752 * IBandSite interface
1753 */
1754 cpp_quote("#include <pshpack8.h>")
1755
1756 typedef struct tagBANDSITEINFO
1757 {
1758 DWORD dwMask;
1759 DWORD dwState;
1760 DWORD dwStyle;
1761 } BANDSITEINFO;
1762
1763 cpp_quote("#include <poppack.h>")
1764
1765
1766 enum tagBANDSITECID {
1767 BSID_BANDADDED,
1768 BSID_BANDREMOVED,
1769 };
1770
1771 cpp_quote("#define BSIM_STATE 0x00000001")
1772 cpp_quote("#define BSIM_STYLE 0x00000002")
1773
1774 cpp_quote("#define BSSF_VISIBLE 0x00000001")
1775 cpp_quote("#define BSSF_NOTITLE 0x00000002")
1776 cpp_quote("#define BSSF_UNDELETEABLE 0x00001000")
1777
1778 cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000")
1779 cpp_quote("#define BSIS_NOGRIPPER 0x00000001")
1780 cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002")
1781 cpp_quote("#define BSIS_LEFTALIGN 0x00000004")
1782 cpp_quote("#define BSIS_SINGLECLICK 0x00000008")
1783 cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010")
1784 cpp_quote("#define BSIS_NODROPTARGET 0x00000020")
1785 cpp_quote("#define BSIS_NOCAPTION 0x00000040")
1786 cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080")
1787 cpp_quote("#define BSIS_LOCKED 0x00000100")
1788 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)")
1789 cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200")
1790 cpp_quote("#endif /* _WIN32_IE_IE70 */")
1791
1792 cpp_quote("#define SID_SBandSite IID_IBandSite")
1793 cpp_quote("#define CGID_BandSite IID_IBandSite")
1794
1795 [
1796 object,
1797 uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5)
1798 ]
1799 interface IBandSite : IUnknown
1800 {
1801 HRESULT AddBand([in] IUnknown* punk);
1802
1803 HRESULT EnumBands(
1804 [in] UINT uBand,
1805 [out] DWORD* pdwBandID);
1806
1807 HRESULT QueryBand(
1808 [in] DWORD dwBandID,
1809 [out] IDeskBand** ppstb,
1810 [out] DWORD* pdwState,
1811 [out, string, size_is(cchName)] LPWSTR pszName,
1812 [in] int cchName);
1813
1814 HRESULT SetBandState(
1815 [in] DWORD dwBandID,
1816 [in] DWORD dwMask,
1817 [in] DWORD dwState);
1818
1819 HRESULT RemoveBand([in] DWORD dwBandID);
1820
1821 HRESULT GetBandObject(
1822 [in] DWORD dwBandID,
1823 [in] REFIID riid,
1824 [out, iid_is(riid)] void **ppv);
1825
1826 HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo);
1827
1828 HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo);
1829 }
1830
1831 cpp_quote("#endif /* _WIN32_IE_IE40 */")
1832
1833 /*****************************************************************************
1834 * IMenuBand interface
1835 */
1836 [
1837 uuid(568804CD-CBD7-11d0-9816-00C04FD91972),
1838 object,
1839 pointer_default(unique),
1840 local
1841 ]
1842 interface IMenuBand : IUnknown
1843 {
1844 enum tagMENUBANDHANDLERCID {
1845 MBHANDCID_PIDLSELECT = 0,
1846 };
1847
1848 HRESULT IsMenuMessage([in] MSG* pmsg);
1849
1850 HRESULT TranslateMenuMessage(
1851 [in, out] MSG* pmsg,
1852 [out] LRESULT* plRet);
1853 }
1854
1855 /*****************************************************************************
1856 * IProfferService interface
1857 */
1858 [
1859 uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0),
1860 object,
1861 pointer_default(unique),
1862 local
1863 ]
1864 interface IProfferService : IUnknown
1865 {
1866 HRESULT ProfferService(
1867 [in] REFGUID rguidService,
1868 [in] IServiceProvider *psp,
1869 [out] DWORD *pdwCookie);
1870
1871 HRESULT RevokeService(
1872 [in] DWORD dwCookie);
1873 }
1874
1875 /*****************************************************************************
1876 * IShellMenuCallback interface
1877 */
1878 cpp_quote("#include <pshpack8.h>")
1879
1880 typedef struct tagSMDATA
1881 {
1882 DWORD dwMask;
1883 DWORD dwFlags;
1884 HMENU hmenu;
1885 HWND hwnd;
1886 UINT uId;
1887 UINT uIdParent;
1888 UINT uIdAncestor;
1889 IUnknown *punk;
1890 LPITEMIDLIST pidlFolder;
1891 LPITEMIDLIST pidlItem;
1892 IShellFolder *psf;
1893 void *pvUserData;
1894 } SMDATA, *LPSMDATA;
1895
1896 cpp_quote("#define SMDM_SHELLFOLDER 0x00000001")
1897 cpp_quote("#define SMDM_HMENU 0x00000002")
1898 cpp_quote("#define SMDM_TOOLBAR 0x00000004")
1899
1900 typedef struct tagSMINFO
1901 {
1902 DWORD dwMask;
1903 DWORD dwType;
1904 DWORD dwFlags;
1905 int iIcon;
1906 } SMINFO, *PSMINFO;
1907
1908 typedef struct tagSHCSCHANGENOTIFYSTRUCT
1909 {
1910 LONG lEvent;
1911 LPCITEMIDLIST pidl1;
1912 LPCITEMIDLIST pidl2;
1913 } SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT;
1914
1915 cpp_quote("#include <poppack.h>")
1916
1917 enum
1918 {
1919 SMIM_TYPE = 0x00000001,
1920 SMIM_FLAGS = 0x00000002,
1921 SMIM_ICON = 0x00000004
1922 };
1923
1924 enum
1925 {
1926 SMIT_SEPARATOR = 0x00000001,
1927 SMIT_STRING = 0x00000002
1928 };
1929
1930 enum
1931 {
1932 SMIF_ICON = 0x00000001,
1933 SMIF_ACCELERATOR = 0x00000002,
1934 SMIF_DROPTARGET = 0x00000004,
1935 SMIF_SUBMENU = 0x00000008,
1936 SMIF_CHECKED = 0x00000020,
1937 SMIF_DROPCASCADE = 0x00000040,
1938 SMIF_HIDDEN = 0x00000080,
1939 SMIF_DISABLED = 0x00000100,
1940 SMIF_TRACKPOPUP = 0x00000200,
1941 SMIF_DEMOTED = 0x00000400,
1942 SMIF_ALTSTATE = 0x00000800,
1943 SMIF_DRAGNDROP = 0x00001000,
1944 SMIF_NEW = 0x00002000,
1945 };
1946
1947
1948 cpp_quote("#define SMC_INITMENU 0x00000001")
1949 cpp_quote("#define SMC_CREATE 0x00000002")
1950 cpp_quote("#define SMC_EXITMENU 0x00000003")
1951 cpp_quote("#define SMC_GETINFO 0x00000005")
1952 cpp_quote("#define SMC_GETSFINFO 0x00000006")
1953 cpp_quote("#define SMC_GETOBJECT 0x00000007")
1954 cpp_quote("#define SMC_GETSFOBJECT 0x00000008")
1955 cpp_quote("#define SMC_SFEXEC 0x00000009")
1956 cpp_quote("#define SMC_SFSELECTITEM 0x0000000A")
1957 cpp_quote("#define SMC_REFRESH 0x00000010")
1958 cpp_quote("#define SMC_DEMOTE 0x00000011")
1959 cpp_quote("#define SMC_PROMOTE 0x00000012")
1960 cpp_quote("#define SMC_DEFAULTICON 0x00000016")
1961 cpp_quote("#define SMC_NEWITEM 0x00000017")
1962 cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019")
1963 cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A")
1964 cpp_quote("#define SMC_SETSFOBJECT 0x0000002D")
1965 cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E")
1966 cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F")
1967 cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030")
1968
1969 [
1970 uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0),
1971 object,
1972 pointer_default(unique),
1973 local
1974 ]
1975 interface IShellMenuCallback : IUnknown
1976 {
1977 HRESULT CallbackSM(
1978 [in, out] LPSMDATA psmd,
1979 [in] UINT uMsg,
1980 [in] WPARAM wParam,
1981 [in] LPARAM lParam);
1982 }
1983
1984
1985 /*****************************************************************************
1986 * IShellMenu interface
1987 */
1988
1989 cpp_quote("#define SMINIT_DEFAULT 0x00000000")
1990 cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002")
1991 cpp_quote("#define SMINIT_TOPLEVEL 0x00000004")
1992 cpp_quote("#define SMINIT_CACHED 0x00000010")
1993 cpp_quote("#define SMINIT_VERTICAL 0x10000000")
1994 cpp_quote("#define SMINIT_HORIZONTAL 0x20000000")
1995 cpp_quote("")
1996 cpp_quote("#define ANCESTORDEFAULT (UINT)-1")
1997 cpp_quote("")
1998 cpp_quote("#define SMSET_TOP 0x10000000")
1999 cpp_quote("#define SMSET_BOTTOM 0x20000000")
2000 cpp_quote("#define SMSET_DONTOWN 0x00000001")
2001 cpp_quote("")
2002 cpp_quote("#define SMINV_REFRESH 0x00000001")
2003 cpp_quote("#define SMINV_ID 0x00000008")
2004
2005 [
2006 uuid(EE1F7637-E138-11d1-8379-00C04FD918D0),
2007 object,
2008 pointer_default(unique),
2009 local
2010 ]
2011 interface IShellMenu : IUnknown
2012 {
2013 HRESULT Initialize(
2014 [in] IShellMenuCallback *psmc,
2015 [in] UINT uId,
2016 [in] UINT uIdAncestor,
2017 [in] DWORD dwFlags);
2018
2019 HRESULT GetMenuInfo(
2020 [out] IShellMenuCallback **ppsmc,
2021 [out] UINT *puId,
2022 [out] UINT *puIdAncestor,
2023 [out] DWORD *pdwFlags);
2024
2025 HRESULT SetShellFolder(
2026 [in] IShellFolder *psf,
2027 [in] LPCITEMIDLIST pidlFolder,
2028 [in] HKEY hKey,
2029 [in] DWORD dwFlags);
2030
2031 HRESULT GetShellFolder(
2032 [out] DWORD *pdwFlags,
2033 [out] LPITEMIDLIST *ppidl,
2034 [in] REFIID riid,
2035 [out] void **ppv);
2036
2037 HRESULT SetMenu(
2038 [in] HMENU hmenu,
2039 [in] HWND hwnd,
2040 [in] DWORD dwFlags);
2041
2042 HRESULT GetMenu(
2043 [out] HMENU *phmenu,
2044 [out] HWND *phwnd,
2045 [out] DWORD *pdwFlags);
2046
2047 HRESULT InvalidateItem(
2048 [in] LPSMDATA psmd,
2049 [in] DWORD dwFlags);
2050
2051 HRESULT GetState(
2052 [out] LPSMDATA psmd);
2053
2054 HRESULT SetMenuToolbar(
2055 [in] IUnknown *punk,
2056 [in] DWORD dwFlags);
2057 }
2058
2059
2060 typedef struct _WINDOWDATA
2061 {
2062 DWORD dwWindowID;
2063 UINT uiCP;
2064 LPITEMIDLIST pidl;
2065 [string] LPWSTR lpszUrl;
2066 [string] LPWSTR lpszUrlLocation;
2067 [string] LPWSTR lpszTitle;
2068 } WINDOWDATA;
2069
2070 typedef WINDOWDATA *LPWINDOWDATA;
2071 typedef const WINDOWDATA *LPCWINDOWDATA;
2072
2073
2074 /*****************************************************************************
2075 * ITravelEntry interface
2076 */
2077 [
2078 uuid(F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3),
2079 object,
2080 pointer_default(unique),
2081 local
2082 ]
2083 interface ITravelEntry : IUnknown
2084 {
2085 HRESULT Invoke(
2086 [in] IUnknown *punk);
2087
2088 HRESULT Update(
2089 [in] IUnknown *punk,
2090 BOOL fIsLocalAnchor);
2091
2092 HRESULT GetPidl(
2093 [in] LPITEMIDLIST *ppidl);
2094 };
2095
2096
2097 /*****************************************************************************
2098 * ITravelLogClient interface
2099 */
2100 [
2101 uuid(241c033e-e659-43da-aa4d-4086dbc4758d),
2102 object,
2103 pointer_default(unique),
2104 local
2105 ]
2106 interface ITravelLogClient : IUnknown
2107 {
2108 HRESULT FindWindowByIndex(
2109 [in] DWORD dwID,
2110 [out] IUnknown **ppunk);
2111
2112 HRESULT GetWindowData(
2113 [out] LPWINDOWDATA pWinData);
2114
2115 HRESULT LoadHistoryPosition(
2116 [in] LPWSTR pszUrlLocation,
2117 [in] DWORD dwPosition);
2118 };
2119
2120
2121 /*****************************************************************************
2122 * ITravelLog interface
2123 */
2124 [
2125 uuid(02BA3B52-0547-11D1-B833-00C04FC9B31F),
2126 object,
2127 pointer_default(unique),
2128 local
2129 ]
2130 interface ITravelLog : IUnknown
2131 {
2132 enum tagTLENUMF
2133 {
2134 TLEF_RELATIVE_INCLUDE_CURRENT = 0x00000001,
2135 TLEF_RELATIVE_BACK = 0x00000010,
2136 TLEF_RELATIVE_FORE = 0x00000020,
2137 TLEF_INCLUDE_UNINVOKEABLE = 0x00000040,
2138 TLEF_ABSOLUTE = 0x00000031,
2139 };
2140 typedef DWORD TLENUMF;
2141
2142 HRESULT AddEntry(
2143 [in] IUnknown *punk,
2144 BOOL fIsLocalAnchor);
2145
2146 HRESULT UpdateEntry(
2147 [in] IUnknown *punk,
2148 BOOL fIsLocalAnchor);
2149
2150 HRESULT UpdateExternal(
2151 [in] IUnknown *punk,
2152 [in] IUnknown *punkHLBrowseContext);
2153
2154 HRESULT Travel(
2155 [in] IUnknown *punk,
2156 int iOffset);
2157
2158 HRESULT GetTravelEntry(
2159 [in] IUnknown *punk,
2160 int iOffset,
2161 [out] ITravelEntry **ppte);
2162
2163 HRESULT FindTravelEntry(
2164 [in] IUnknown *punk,
2165 [in] LPCITEMIDLIST pidl,
2166 [out] ITravelEntry **ppte);
2167
2168 HRESULT GetToolTipText(
2169 [in] IUnknown *punk,
2170 int iOffset,
2171 int idsTemplate,
2172 [out] LPWSTR pwzText,
2173 DWORD cchText);
2174
2175 HRESULT InsertMenuEntries(
2176 [in] IUnknown *punk,
2177 [in, out] HMENU hmenu,
2178 int nPos,
2179 int idFirst,
2180 int idLast,
2181 DWORD dwFlags);
2182
2183 HRESULT Clone(
2184 [out] ITravelLog **pptl);
2185
2186 DWORD CountEntries(
2187 [in] IUnknown *punk);
2188
2189 HRESULT Revert();
2190 };
2191
2192
2193 /*****************************************************************************
2194 * IShellService interface
2195 */
2196 [
2197 object,
2198 uuid(5836FB00-8187-11CF-A12B-00AA004AE837),
2199 pointer_default(unique),
2200 local
2201 ]
2202 interface IShellService : IUnknown
2203 {
2204 HRESULT SetOwner(
2205 [in] IUnknown *owner);
2206 };
2207
2208 /*****************************************************************************
2209 * IShellBrowser interface
2210 */
2211 [
2212 object,
2213 uuid(02BA3B52-0547-11D1-B833-00C04FC9B31F),
2214 pointer_default(unique),
2215 local
2216 ]
2217 interface IBrowserService : IUnknown
2218 {
2219 typedef enum tagBNSTATE
2220 {
2221 BNS_NORMAL = 0,
2222 BNS_BEGIN_NAVIGATE = 1,
2223 BNS_NAVIGATE = 2
2224 } BNSTATE;
2225
2226 cpp_quote("#include <pshpack8.h>")
2227 typedef struct basebrowserdataxp
2228 {
2229 HWND _hwnd;
2230 ITravelLog *_ptl;
2231 IUnknown *_phlf;
2232 IUnknown *_pautoWB2;
2233 IUnknown *_pautoEDS;
2234 IShellService *_pautoSS;
2235 int _eSecureLockIcon;
2236 DWORD _fCreatingViewWindow;
2237 UINT _uActivateState;
2238 LPITEMIDLIST _pidlViewState;
2239 IOleCommandTarget *_pctView;
2240 LPITEMIDLIST _pidlCur;
2241 IShellView *_psv;
2242 IShellFolder *_psf;
2243 HWND _hwndView;
2244 LPWSTR _pszTitleCur;
2245 LPITEMIDLIST _pidlPending;
2246 IShellView *_psvPending;
2247 IShellFolder *_psfPending;
2248 HWND _hwndViewPending;
2249 LPWSTR _pszTitlePending;
2250 BOOL _fIsViewMSHTML;
2251 BOOL _fPrivacyImpacted;
2252 CLSID _clsidView;
2253 CLSID _clsidViewPending;
2254 HWND _hwndFrame;
2255 } BASEBROWSERDATAXP;
2256 typedef struct basebrowserdataxp *LPBASEBROWSERDATAXP;
2257
2258 typedef struct basebrowserdatalh
2259 {
2260 HWND _hwnd;
2261 ITravelLog *_ptl;
2262 IUnknown *_phlf;
2263 IUnknown *_pautoWB2;
2264 IUnknown *_pautoEDS;
2265 IShellService *_pautoSS;
2266 int _eSecureLockIcon;
2267 DWORD _fCreatingViewWindow;
2268 UINT _uActivateState;
2269 LPITEMIDLIST _pidlViewState;
2270 IOleCommandTarget *_pctView;
2271 LPITEMIDLIST _pidlCur;
2272 IShellView *_psv;
2273 IShellFolder *_psf;
2274 HWND _hwndView;
2275 LPWSTR _pszTitleCur;
2276 LPITEMIDLIST _pidlPending;
2277 IShellView *_psvPending;
2278 IShellFolder *_psfPending;
2279 HWND _hwndViewPending;
2280 LPWSTR _pszTitlePending;
2281 BOOL _fIsViewMSHTML;
2282 BOOL _fPrivacyImpacted;
2283 CLSID _clsidView;
2284 CLSID _clsidViewPending;
2285 HWND _hwndFrame;
2286 LONG _lPhishingFilterStatus;
2287 } BASEBROWSERDATALH;
2288 cpp_quote("#include <poppack.h>")
2289 typedef struct basebrowserdatalh *LPBASEBROWSERDATALH;
2290
2291 typedef BASEBROWSERDATAXP BASEBROWSERDATA;
2292
2293 typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA;
2294
2295 typedef BASEBROWSERDATA *LPBASEBROWSERDATA;
2296
2297 cpp_quote("#if 0")
2298 typedef HANDLE HMONITOR;
2299 cpp_quote("#endif /* 0 */")
2300
2301 typedef struct SToolbarItem
2302 {
2303 IDockingWindow *ptbar;
2304 BORDERWIDTHS rcBorderTool;
2305 LPWSTR pwszItem;
2306 BOOL fShow;
2307 HMONITOR hMon;
2308 } TOOLBARITEM;
2309
2310 typedef struct SToolbarItem *LPTOOLBARITEM;
2311
2312 HRESULT GetParentSite(
2313 [out] IOleInPlaceSite **ppipsite);
2314
2315 HRESULT SetTitle(
2316 [in] IShellView *psv,
2317 [in] LPCWSTR pszName);
2318
2319 HRESULT GetTitle(
2320 [in] IShellView *psv,
2321 [out] LPWSTR pszName,
2322 DWORD cchName);
2323
2324 HRESULT GetOleObject(
2325 [out] IOleObject **ppobjv);
2326
2327 HRESULT GetTravelLog(
2328 [out] ITravelLog **pptl);
2329
2330 HRESULT ShowControlWindow(
2331 UINT id,
2332 BOOL fShow);
2333
2334 HRESULT IsControlWindowShown(
2335 UINT id,
2336 [out] BOOL *pfShown);
2337
2338 HRESULT IEGetDisplayName(
2339 [in] LPCITEMIDLIST pidl,
2340 [out] LPWSTR pwszName,
2341 UINT uFlags);
2342
2343 HRESULT IEParseDisplayName(
2344 UINT uiCP,
2345 [in] LPCWSTR pwszPath,
2346 [out] LPCITEMIDLIST *ppidlOut);
2347
2348 HRESULT DisplayParseError(
2349 HRESULT hres,
2350 [in] LPCWSTR pwszPath);
2351
2352 HRESULT NavigateToPidl(
2353 [in] LPCITEMIDLIST pidl,
2354 DWORD grfHLNF);
2355
2356 HRESULT SetNavigateState(
2357 BNSTATE bnstate);
2358
2359 HRESULT GetNavigateState(
2360 [out] BNSTATE *pbnstate);
2361
2362 HRESULT NotifyRedirect(
2363 [in] IShellView *psv,
2364 [in] LPCITEMIDLIST pidl,
2365 [out] BOOL *pfDidBrowse);
2366
2367 HRESULT UpdateWindowList();
2368
2369 HRESULT UpdateBackForwardState();
2370
2371 HRESULT SetFlags(
2372 DWORD dwFlags,
2373 DWORD dwFlagMask);
2374
2375 HRESULT GetFlags(
2376 [out] DWORD *pdwFlags);
2377
2378 HRESULT CanNavigateNow();
2379
2380 HRESULT GetPidl(
2381 [out] LPCITEMIDLIST *ppidl);
2382
2383 HRESULT SetReferrer(
2384 [in] LPCITEMIDLIST pidl);
2385
2386 DWORD GetBrowserIndex();
2387
2388 HRESULT GetBrowserByIndex(
2389 DWORD dwID,
2390 [out] IUnknown **ppunk);
2391
2392 HRESULT GetHistoryObject(
2393 [out] IOleObject **ppole,
2394 [out] IStream **pstm,
2395 [out] IBindCtx **ppbc);
2396
2397 HRESULT SetHistoryObject(
2398 [in] IOleObject *pole,
2399 BOOL fIsLocalAnchor);
2400
2401 HRESULT CacheOLEServer(
2402 [in] IOleObject *pole);
2403
2404 HRESULT GetSetCodePage(
2405 [in] VARIANT *pvarIn,
2406 [out] VARIANT *pvarOut);
2407
2408 HRESULT OnHttpEquiv(
2409 [in] IShellView *psv,
2410 BOOL fDone,
2411 [in] VARIANT *pvarargIn,
2412 [out] VARIANT *pvarargOut);
2413
2414 HRESULT GetPalette(
2415 [out] HPALETTE *hpal);
2416
2417 HRESULT RegisterWindow(
2418 BOOL fForceRegister,
2419 int swc);
2420 }
2421
2422
2423 /*****************************************************************************
2424 * IShellBrowser2 interface
2425 */
2426 [
2427 uuid(68BD21CC-438B-11D2-A560-00A0C92DBFE8),
2428 object,
2429 pointer_default(unique),
2430 local
2431 ]
2432 interface IBrowserService2 : IBrowserService
2433 {
2434 typedef struct tagFolderSetData
2435 {
2436 FOLDERSETTINGS _fs;
2437 SHELLVIEWID _vidRestore;
2438 DWORD _dwViewPriority;
2439 } FOLDERSETDATA;
2440
2441 typedef struct tagFolderSetData *LPFOLDERSETDATA;
2442
2443 LRESULT WndProcBS(
2444 [in] HWND hwnd,
2445 UINT uMsg,
2446 WPARAM wParam,
2447 LPARAM lParam);
2448
2449 HRESULT SetAsDefFolderSettings();
2450
2451 HRESULT GetViewRect(
2452 [out] RECT *prc);
2453
2454 HRESULT OnSize(
2455 WPARAM wParam);
2456
2457 HRESULT OnCreate(
2458 [in] struct tagCREATESTRUCTW *pcs);
2459
2460 LRESULT OnCommand(
2461 WPARAM wParam,
2462 LPARAM lParam);
2463
2464 HRESULT OnDestroy();
2465
2466 LRESULT OnNotify(
2467 [in] struct tagNMHDR *pnm);
2468
2469 HRESULT OnSetFocus();
2470
2471 HRESULT OnFrameWindowActivateBS(
2472 BOOL fActive);
2473
2474 HRESULT ReleaseShellView();
2475
2476 HRESULT ActivatePendingView();
2477
2478 HRESULT CreateViewWindow(
2479 [in] IShellView *psvNew,
2480 [in] IShellView *psvOld,
2481 [in] LPRECT prcView,
2482 [out] HWND *phwnd);
2483
2484 HRESULT CreateBrowserPropSheetExt(
2485 [in] REFIID riid,
2486 [out] void **ppv);
2487
2488 HRESULT GetViewWindow(
2489 [out] HWND *phwndView);
2490
2491 HRESULT GetBaseBrowserData(
2492 [out] LPCBASEBROWSERDATA *pbbd);
2493
2494 LPBASEBROWSERDATA PutBaseBrowserData();
2495
2496 HRESULT InitializeTravelLog(
2497 [in] ITravelLog *ptl,
2498 DWORD dw);
2499
2500 HRESULT SetTopBrowser();
2501
2502 HRESULT Offline(
2503 int iCmd);
2504
2505 HRESULT AllowViewResize(
2506 BOOL f);
2507
2508 HRESULT SetActivateState(
2509 UINT u);
2510
2511 HRESULT UpdateSecureLockIcon(
2512 int eSecureLock);
2513
2514 HRESULT InitializeDownloadManager();
2515
2516 HRESULT InitializeTransitionSite();
2517
2518 HRESULT _Initialize(
2519 [in] HWND hwnd,
2520 [in] IUnknown *pauto);
2521
2522 HRESULT _CancelPendingNavigationAsync();
2523
2524 HRESULT _CancelPendingView();
2525
2526 HRESULT _MaySaveChanges();
2527
2528 HRESULT _PauseOrResumeView(
2529 BOOL fPaused);
2530
2531 HRESULT _DisableModeless();
2532
2533 HRESULT _NavigateToPidl(
2534 [in] LPCITEMIDLIST pidl,
2535 DWORD grfHLNF,
2536 DWORD dwFlags);
2537
2538 HRESULT _TryShell2Rename(
2539 [in] IShellView *psv,
2540 [in] LPCITEMIDLIST pidlNew);
2541
2542 HRESULT _SwitchActivationNow();
2543
2544 HRESULT _ExecChildren(
2545 [in] IUnknown *punkBar,
2546 BOOL fBroadcast,
2547 [in] const GUID *pguidCmdGroup,
2548 DWORD nCmdID,
2549 DWORD nCmdexecopt,
2550 [in] VARIANTARG *pvarargIn,
2551 [in, out] VARIANTARG *pvarargOut);
2552
2553 HRESULT _SendChildren(
2554 [in] HWND hwndBar,
2555 BOOL fBroadcast,
2556 UINT uMsg,
2557 WPARAM wParam,
2558 LPARAM lParam);
2559
2560 HRESULT GetFolderSetData(
2561 [out] struct tagFolderSetData *pfsd);
2562
2563 HRESULT _OnFocusChange(
2564 UINT itb);
2565
2566 HRESULT v_ShowHideChildWindows(
2567 BOOL fChildOnly);
2568
2569 UINT _get_itbLastFocus();
2570
2571 HRESULT _put_itbLastFocus(
2572 UINT itbLastFocus);
2573
2574 HRESULT _UIActivateView(
2575 UINT uState);
2576
2577 HRESULT _GetViewBorderRect(
2578 [out] RECT *prc);
2579
2580 HRESULT _UpdateViewRectSize();
2581
2582 HRESULT _ResizeNextBorder(
2583 UINT itb);
2584
2585 HRESULT _ResizeView();
2586
2587 HRESULT _GetEffectiveClientArea(
2588 [out] LPRECT lprectBorder,
2589 [in] HMONITOR hmon);
2590
2591 IStream *v_GetViewStream(
2592 [in] LPCITEMIDLIST pidl,
2593 DWORD grfMode,
2594 [in] LPCWSTR pwszName);
2595
2596 LRESULT ForwardViewMsg(
2597 UINT uMsg,
2598 WPARAM wParam,
2599 LPARAM lParam);
2600
2601 HRESULT SetAcceleratorMenu(
2602 [in] HACCEL hacc);
2603
2604 int _GetToolbarCount();
2605
2606 LPTOOLBARITEM _GetToolbarItem(
2607 int itb);
2608
2609 HRESULT _SaveToolbars(
2610 [in] IStream *pstm);
2611
2612 HRESULT _LoadToolbars(
2613 [in] IStream *pstm);
2614
2615 HRESULT _CloseAndReleaseToolbars(
2616 BOOL fClose);
2617
2618 HRESULT v_MayGetNextToolbarFocus(
2619 [in] LPMSG lpMsg,
2620 UINT itbNext,
2621 int citb,
2622 [out] LPTOOLBARITEM *pptbi,
2623 [out] HWND *phwnd);
2624
2625 HRESULT _ResizeNextBorderHelper(
2626 UINT itb,
2627 BOOL bUseHmonitor);
2628
2629 UINT _FindTBar(
2630 [in] IUnknown *punkSrc);
2631
2632 HRESULT _SetFocus(
2633 [in] LPTOOLBARITEM ptbi,
2634 [in] HWND hwnd,
2635 [in] LPMSG lpMsg);
2636
2637 HRESULT v_MayTranslateAccelerator(
2638 [in] MSG *pmsg);
2639
2640 HRESULT _GetBorderDWHelper(
2641 [in] IUnknown *punkSrc,
2642 [out] LPRECT lprectBorder,
2643 BOOL bUseHmonitor);
2644
2645 HRESULT v_CheckZoneCrossing(
2646 [in] LPCITEMIDLIST pidl);
2647 }
2648
2649
2650 /*****************************************************************************
2651 * IShellBrowser3 interface
2652 */
2653 [
2654 uuid(27D7CE21-762D-48F3-86F3-40E2FD3749C4),
2655 object,
2656 pointer_default(unique),
2657 local
2658 ]
2659 interface IBrowserService3 : IBrowserService2
2660 {
2661 HRESULT _PositionViewWindow(
2662 [in] HWND hwnd,
2663 [in] LPRECT prc);
2664
2665 HRESULT IEParseDisplayNameEx(
2666 UINT uiCP,
2667 [in] LPCWSTR pwszPath,
2668 DWORD dwFlags,
2669 [out] LPITEMIDLIST *ppidlOut);
2670 }
2671
2672
2673 /*****************************************************************************
2674 * IShellBrowser4 interface
2675 */
2676 [
2677 uuid(639f1bff-e135-4096-abd8-e0f504d649a4),
2678 object,
2679 pointer_default(unique),
2680 local
2681 ]
2682 interface IBrowserService4 : IBrowserService3
2683 {
2684 HRESULT ActivateView(
2685 BOOL fPendingView);
2686
2687 HRESULT SaveViewState();
2688
2689 HRESULT _ResizeAllBorders();
2690 }
2691
2692 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
2693
2694 /*****************************************************************************
2695 * ITrackShellMenu interface
2696 */
2697 [
2698 uuid(8278F932-2A3E-11d2-838F-00C04FD918D0),
2699 object,
2700 pointer_default(unique),
2701 local
2702 ]
2703 interface ITrackShellMenu : IShellMenu
2704 {
2705 HRESULT SetObscured(
2706 [in] HWND hwndTB,
2707 [in] IUnknown *punkBand,
2708 DWORD dwSMSetFlags);
2709
2710 HRESULT Popup(
2711 [in] HWND hwnd,
2712 [in] POINTL *ppt,
2713 [in] RECTL *prcExclude,
2714 MP_POPUPFLAGS dwFlags);
2715 };
2716
2717 cpp_quote("#endif /* _WIN32_IE_IE60 */")