winemac: When realizing latent child windows, maintain their relative z-order.
[wine.git] / include / shldisp.idl
blobf5372c4500c1259a0c09a04dcc324fa72eeb29b8
1 /*
2 * COM interfaces for shell objects
4 * Copyright (C) 2004 Maxime Bellengé
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 import "ocidl.idl";
23 #include <shdispid.h>
25 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
26 cpp_quote("#undef ShellExecute")
27 cpp_quote("#endif")
29 /*****************************************************************************
30 * IEnumACString interface
33 local,
34 object,
35 uuid(8e74c210-cf9d-4eaf-a403-7356428f0a5a),
36 pointer_default(unique)
38 interface IEnumACString : IEnumString
40 typedef IEnumACString *PENUMACSTRING, *LPENUMACSTRING;
42 typedef enum _tagACENUMOPTION
44 ACEO_NONE = 0x00000000,
45 ACEO_MOSTRECENTFIRST = 0x00000001,
46 ACEO_FIRSTUNUSED = 0x00010000,
47 } ACENUMOPTION;
49 HRESULT NextItem( [out] LPWSTR pszUrl,
50 [in] ULONG cchMax,
51 [out] ULONG *pulSortIndex);
53 HRESULT SetEnumOptions( [in] DWORD dwOptions );
55 HRESULT GetEnumOptions( [out] DWORD *pdwOptions );
58 /*****************************************************************************
59 * IAutoComplete interface
62 local,
63 object,
64 uuid(00bb2762-6a77-11d0-a535-00c04fd7d062),
65 pointer_default(unique)
67 interface IAutoComplete : IUnknown
69 typedef IAutoComplete *LPAUTOCOMPLETE;
71 HRESULT Init( [in] HWND hwndEdit,
72 [in] IUnknown *punkACL,
73 [in] LPCOLESTR pwszRegKeyPath,
74 [in] LPCOLESTR pwszQuickComplete);
76 HRESULT Enable( [in] BOOL fEnable );
79 /*****************************************************************************
80 * IAutoComplete2 interface
83 local,
84 object,
85 uuid(eac04bc0-3791-11d2-bb95-0060977b464c),
86 pointer_default(unique)
88 interface IAutoComplete2 : IAutoComplete
90 typedef IAutoComplete2 *LPAUTOCOMPLETE2;
92 typedef enum _tagAUTOCOMPLETEOPTIONS
94 ACO_NONE = 0x00, /* No AutoComplete */
95 ACO_AUTOSUGGEST = 0x01, /* enable autosuggest dropdown */
96 ACO_AUTOAPPEND = 0x02, /* enable autoappend */
97 ACO_SEARCH = 0x04, /* add search entry to completion list */
98 ACO_FILTERPREFIXES = 0x08, /* don't match common prefixes (www., http://, etc) */
99 ACO_USETAB = 0x10, /* use tab to select autosuggest entries */
100 ACO_UPDOWNKEYDROPSLIST = 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */
101 ACO_RTLREADING = 0x40, /* enable RTL reading order for dropdown */
102 } AUTOCOMPLETEOPTIONS;
104 HRESULT SetOptions( [in] DWORD dwFlag);
106 HRESULT GetOptions( [out] DWORD *pdwFlag);
110 uuid(50a7e9b0-70ef-11d1-b75a-00a0c90564fe),
111 version(1.0)
113 library Shell32
116 importlib("stdole2.tlb");
119 object,
120 oleautomation,
121 uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39),
122 pointer_default(unique)
124 interface IFolderViewOC : IDispatch
126 HRESULT SetFolderView( [in] IDispatch *pdisp );
130 uuid(62112aa2-ebe4-11cf-a5fb-0020afe7292d)
132 dispinterface DShellFolderViewEvents
134 properties:
135 methods:
136 [id(DISPID_SELECTIONCHANGED)]
137 void SelectionChanged();
139 [id(DISPID_FILELISTENUMDONE)]
140 void EnumDone();
142 [id(DISPID_VERBINVOKED)]
143 VARIANT_BOOL VerbInvoked();
145 [id(DISPID_DEFAULTVERBINVOKED)]
146 VARIANT_BOOL DefaultVerbInvoked();
148 [id(DISPID_BEGINDRAG)]
149 VARIANT_BOOL BeginDrag();
153 uuid(9ba05971-f6a8-11cf-a442-00a0c90a8f39),
154 hidden
156 coclass ShellFolderViewOC
158 [default] interface IFolderViewOC;
159 [default, source] dispinterface DShellFolderViewEvents;
162 interface FolderItem;
163 interface FolderItems;
164 interface FolderItemVerb;
165 interface FolderItemVerbs;
167 /*****************************************************************************
168 * Folder interface
171 object,
172 uuid(bbcbde60-c3ff-11ce-8350-444553540000),
173 oleautomation,
174 dual
176 interface Folder : IDispatch
178 [propget, id(DISPID_VALUE)]
179 HRESULT Title( [out, retval] BSTR *pbs );
181 [propget]
182 HRESULT Application( [out, retval] IDispatch **ppid );
184 [propget]
185 HRESULT Parent( [out, retval] IDispatch **ppid );
187 [propget]
188 HRESULT ParentFolder( [out, retval] Folder **ppsf );
190 HRESULT Items( [out, retval] FolderItems **ppid );
192 HRESULT ParseName( [in] BSTR bName, [out, retval] FolderItem **ppid );
194 HRESULT NewFolder( [in] BSTR bName, [in, optional] VARIANT vOptions );
196 HRESULT MoveHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
198 HRESULT CopyHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
200 HRESULT GetDetailsOf( [in] VARIANT vItem,
201 [in] int iColumn,
202 [out, retval] BSTR *pbs );
205 /*****************************************************************************
206 * Folder2 interface
209 object,
210 uuid(f0d2d8ef-3890-11d2-bf8b-00c04fb93661),
211 oleautomation,
212 dual
214 interface Folder2 : Folder
216 [propget]
217 HRESULT Self( [out, retval] FolderItem **ppfi );
219 [propget]
220 HRESULT OfflineStatus( [out, retval] LONG *pul );
222 HRESULT Synchronize();
224 [propget, id(1)]
225 HRESULT HaveToShowWebViewBarricade(
226 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade );
228 HRESULT DismissedWebViewBarricade();
231 /*****************************************************************************
232 * Folder3 interface
235 object,
236 uuid(a7ae5f64-c4d7-4d7f-9307-4d24ee54b841),
237 oleautomation,
238 dual
240 interface Folder3 : Folder2
242 [propget, id(2)]
243 HRESULT ShowWebViewBarricade(
244 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade );
246 [propput, id(2)]
247 HRESULT ShowWebViewBarricade( [in] VARIANT_BOOL bShowWebViewBarricade );
250 /*****************************************************************************
251 * FolderItem interface
254 object,
255 uuid(fac32c80-cbe4-11ce-8350-444553540000),
256 oleautomation,
257 dual
259 interface FolderItem : IDispatch
261 typedef FolderItem *LPFOLDERITEM;
263 [propget]
264 HRESULT Application( [out, retval] IDispatch **ppid );
266 [propget]
267 HRESULT Parent( [out, retval] IDispatch **ppid );
269 [propget, id(DISPID_VALUE)]
270 HRESULT Name( [out, retval] BSTR *pbs );
272 [propput, id(DISPID_VALUE)]
273 HRESULT Name( [in] BSTR bs );
275 [propget]
276 HRESULT Path( [out, retval] BSTR *pbs );
278 [propget]
279 HRESULT GetLink( [out, retval] IDispatch **ppid );
281 [propget]
282 HRESULT GetFolder( [out, retval] IDispatch **ppid );
284 [propget]
285 HRESULT IsLink( [out, retval] VARIANT_BOOL *pb );
287 [propget]
288 HRESULT IsFolder( [out, retval] VARIANT_BOOL *pb );
290 [propget]
291 HRESULT IsFileSystem( [out, retval] VARIANT_BOOL *pb );
293 [propget]
294 HRESULT IsBrowsable( [out, retval] VARIANT_BOOL *pb );
296 [propget]
297 HRESULT ModifyDate( [out, retval] DATE *pdt );
299 [propput]
300 HRESULT ModifyDate( [in] DATE dt );
302 [propget]
303 HRESULT Size( [out, retval] LONG *pul );
305 [propget]
306 HRESULT Type( [out, retval] BSTR *pbs );
308 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
310 HRESULT InvokeVerb( [in, optional] VARIANT vVerb );
314 object,
315 uuid(edc817aa-92b8-11d1-b075-00c04fc33aa5),
316 oleautomation,
317 dual
319 interface FolderItem2 : FolderItem
321 HRESULT InvokeVerbEx([in, optional] VARIANT verb, [in, optional] VARIANT args);
322 HRESULT ExtendedProperty([in] BSTR propname, [out, retval] VARIANT *ret);
325 /*****************************************************************************
326 * FolderItems interface
329 object,
330 uuid(744129e0-cbe5-11ce-8350-444553540000),
331 oleautomation,
332 dual
334 interface FolderItems : IDispatch
336 [propget]
337 HRESULT Count( [out, retval] long *plCount );
339 [propget]
340 HRESULT Application( [out, retval] IDispatch **ppid );
342 [propget]
343 HRESULT Parent( [out, retval] IDispatch **ppid );
345 HRESULT Item( [in, optional] VARIANT index,
346 [out, retval] FolderItem **ppid );
348 [id(DISPID_NEWENUM)]
349 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
352 /*****************************************************************************
353 * FolderItems2 interface
356 uuid(c94f0ad0-f363-11d2-a327-00c04f8eec7f),
357 oleautomation,
358 dual
360 interface FolderItems2 : FolderItems
362 HRESULT InvokeVerbEx( [in, optional] VARIANT verb,
363 [in, optional] VARIANT args );
366 /*****************************************************************************
367 * FolderItems3 interface
370 uuid(eaa7c309-bbec-49d5-821d-64d966cb667f),
371 oleautomation,
372 dual
374 interface FolderItems3 : FolderItems2
376 HRESULT Filter( [in] long flags, [in] BSTR spec );
378 [id(0), propget]
379 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
382 /*****************************************************************************
383 * FolderItemVerb interface
386 object,
387 uuid(08ec3e00-50b0-11cf-960c-0080c7f4ee85),
388 oleautomation,
389 dual
391 interface FolderItemVerb : IDispatch
393 [propget]
394 HRESULT Application( [out, retval] IDispatch **ppid );
396 [propget]
397 HRESULT Parent( [out, retval] IDispatch **ppid );
399 [propget, id(DISPID_VALUE)]
400 HRESULT Name( [out, retval] BSTR *pbs );
402 HRESULT DoIt();
405 /*****************************************************************************
406 * FolderItemVerbs interface
409 object,
410 uuid(1f8352c0-50b0-11cf-960c-0080c7f4ee85),
411 oleautomation,
412 dual
414 interface FolderItemVerbs : IDispatch
416 [propget]
417 HRESULT Count( [out, retval] long *plCount );
419 [propget]
420 HRESULT Application( [out, retval] IDispatch **ppid );
422 [propget]
423 HRESULT Parent( [out, retval] IDispatch **ppid );
425 HRESULT Item( [in, optional] VARIANT index,
426 [out, retval] FolderItemVerb **ppid );
428 [id(DISPID_NEWENUM)]
429 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
432 /*****************************************************************************
433 * IShellDispatch interface
436 uuid(d8f015c0-c278-11ce-a49e-444553540000),
437 oleautomation,
438 hidden,
439 dual
441 interface IShellDispatch : IDispatch
443 [propget]
444 HRESULT Application( [out, retval] IDispatch **ppid );
446 [propget]
447 HRESULT Parent( [out, retval] IDispatch **ppid );
449 HRESULT NameSpace( [in] VARIANT vDir, [out, retval] Folder **ppsdf );
451 HRESULT BrowseForFolder( [in] long Hwnd,
452 [in] BSTR Title,
453 [in] long Options,
454 [in, optional] VARIANT RootFolder,
455 [out, retval] Folder **ppsdf );
457 HRESULT Windows( [out, retval] IDispatch **ppid );
459 HRESULT Open( [in] VARIANT vDir );
461 HRESULT Explore( [in] VARIANT vDir );
463 HRESULT MinimizeAll();
465 HRESULT UndoMinimizeALL();
467 HRESULT FileRun();
469 HRESULT CascadeWindows();
471 HRESULT TileVertically();
473 HRESULT TileHorizontally();
475 HRESULT ShutdownWindows();
477 HRESULT Suspend();
479 HRESULT EjectPC();
481 HRESULT SetTime();
483 HRESULT TrayProperties();
485 HRESULT Help();
487 HRESULT FindFiles();
489 HRESULT FindComputer();
491 HRESULT RefreshMenu();
493 HRESULT ControlPanelItem( [in] BSTR szDir );
497 uuid(a4c6892c-3ba9-11d2-9dea-00c04fb16162),
498 oleautomation,
499 hidden,
500 dual
502 interface IShellDispatch2 : IShellDispatch
504 HRESULT IsRestricted([in] BSTR group, [in] BSTR restriction, [out, retval] long *value);
505 HRESULT ShellExecute([in] BSTR file, [in, optional] VARIANT args, [in, optional] VARIANT dir,
506 [in, optional] VARIANT op, [in, optional] VARIANT show);
507 HRESULT FindPrinter([in, optional] BSTR name, [in, optional] BSTR location, [in, optional] BSTR model);
508 HRESULT GetSystemInformation([in] BSTR name, [out, retval] VARIANT *ret);
509 HRESULT ServiceStart([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
510 HRESULT ServiceStop([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
511 HRESULT IsServiceRunning([in] BSTR service, [out, retval] VARIANT *running);
512 HRESULT CanStartStopService([in] BSTR service, [out, retval] VARIANT *ret);
513 HRESULT ShowBrowserBar([in] BSTR clsid, [in] VARIANT show, [out, retval] VARIANT *ret);
517 uuid(177160ca-bb5a-411c-841d-bd38facdeaa0),
518 oleautomation,
519 hidden,
520 dual
522 interface IShellDispatch3 : IShellDispatch2
524 HRESULT AddToRecent([in] VARIANT file, [in, optional] BSTR category);
528 uuid(efd84b2d-4bcf-4298-be25-eb542a59fbda),
529 oleautomation,
530 hidden,
531 dual
533 interface IShellDispatch4 : IShellDispatch3
535 HRESULT WindowsSecurity();
536 HRESULT ToggleDesktop();
537 HRESULT ExplorerPolicy([in] BSTR policy, [out, retval] VARIANT *value);
538 HRESULT GetSetting([in] long setting, [out,retval] VARIANT_BOOL *result);
542 uuid(866738b9-6cf2-4de8-8767-f794ebe74f4e),
543 oleautomation,
544 hidden,
545 dual
547 interface IShellDispatch5 : IShellDispatch4
549 HRESULT WindowSwitcher();
553 uuid(286e6f1b-7113-4355-9562-96b7e9d64c54),
554 oleautomation,
555 hidden,
556 dual,
558 interface IShellDispatch6 : IShellDispatch5
560 HRESULT SearchCommand(void);
564 uuid(13709620-c279-11ce-a49e-444553540000)
566 coclass Shell
568 [default] interface IShellDispatch6;
572 uuid(0a89a860-d7b1-11ce-8350-444553540000),
573 hidden
575 coclass ShellDispatchInproc
577 interface IUnknown;
580 typedef
582 uuid(ca31ea20-48d0-11cf-8350-444553540000)
584 enum ShellSpecialFolderConstants {
585 ssfDESKTOP = 0x00,
586 ssfPROGRAMS = 0x02,
587 ssfCONTROLS = 0x03,
588 ssfPRINTERS = 0x04,
589 ssfPERSONAL = 0x05,
590 ssfFAVORITES = 0x06,
591 ssfSTARTUP = 0x07,
592 ssfRECENT = 0x08,
593 ssfSENDTO = 0x09,
594 ssfBITBUCKET = 0x0a,
595 ssfSTARTMENU = 0x0b,
596 ssfDESKTOPDIRECTORY = 0x10,
597 ssfDRIVES = 0x11,
598 ssfNETWORK = 0x12,
599 ssfNETHOOD = 0x13,
600 ssfFONTS = 0x14,
601 ssfTEMPLATES = 0x15,
602 ssfCOMMONSTARTMENU = 0x16,
603 ssfCOMMONPROGRAMS = 0x17,
604 ssfCOMMONSTARTUP = 0x18,
605 ssfCOMMONDESKTOPDIR = 0x19,
606 ssfAPPDATA = 0x1a,
607 ssfPRINTHOOD = 0x1b,
608 ssfLOCALAPPDATA = 0x1c,
609 ssfALTSTARTUP = 0x1d,
610 ssfCOMMONALTSTARTUP = 0x1e,
611 ssfCOMMONFAVORITES = 0x1f,
612 ssfINTERNETCACHE = 0x20,
613 ssfCOOKIES = 0x21,
614 ssfHISTORY = 0x22,
615 ssfCOMMONAPPDATA = 0x23,
616 ssfWINDOWS = 0x24,
617 ssfSYSTEM = 0x25,
618 ssfPROGRAMFILES = 0x26,
619 ssfMYPICTURES = 0x27,
620 ssfPROFILE = 0x28,
621 ssfSYSTEMx86 = 0x29,
622 ssfPROGRAMFILESx86 = 0x30
623 } ShellSpecialFolderConstants;
625 /*****************************************************************************
626 * IShellFolderViewDual interface
628 typedef
630 uuid(742a99a0-c77e-11d0-a32c-00a0c91eedba)
632 enum ShellFolderViewOptions
634 SFVVO_SHOWALLOBJECTS = 0x00000001,
635 SFVVO_SHOWEXTENSIONS = 0x00000002,
636 SFVVO_SHOWCOMPCOLOR = 0x00000008,
637 SFVVO_SHOWSYSFILES = 0x00000020,
638 SFVVO_WIN95CLASSIC = 0x00000040,
639 SFVVO_DOUBLECLICKINWEBVIEW = 0x00000080,
640 SFVVO_DESKTOPHTML = 0x00000200
641 } ShellFolderViewOptions;
644 uuid(e7a1af80-4d96-11cf-960c-0080c7f4ee85),
645 oleautomation,
646 hidden,
647 dual
649 interface IShellFolderViewDual : IDispatch
651 [propget]
652 HRESULT Application([out, retval] IDispatch **app);
654 [propget]
655 HRESULT Parent([out, retval] IDispatch **parent);
657 [propget]
658 HRESULT Folder([out, retval] Folder **folder);
660 HRESULT SelectedItems([out, retval] FolderItems **items);
662 [propget]
663 HRESULT FocusedItem([out, retval] FolderItem **item);
665 HRESULT SelectItem([in] VARIANT *item, [in] int flags);
667 HRESULT PopupItemMenu([in] FolderItem *item,
668 [in, optional] VARIANT vx,
669 [in, optional] VARIANT vy,
670 [out, retval] BSTR *command);
671 [propget]
672 HRESULT Script([out, retval] IDispatch **script);
674 [propget]
675 HRESULT ViewOptions([out, retval] long *options);
679 uuid(31c147b6-0ade-4a3c-b514-ddf932ef6d17),
680 oleautomation,
681 hidden,
682 dual
684 interface IShellFolderViewDual2 : IShellFolderViewDual
686 [propget]
687 HRESULT CurrentViewMode([out, retval] UINT *mode);
689 [propput]
690 HRESULT CurrentViewMode([in] UINT mode);
692 HRESULT SelectItemRelative([in] int relative);
696 uuid(29ec8e6c-46d3-411f-baaa-611a6c9cac66),
697 oleautomation,
698 hidden,
699 dual
701 interface IShellFolderViewDual3 : IShellFolderViewDual2
703 [propget]
704 HRESULT GroupBy([out, retval] BSTR *groupby);
706 [propput]
707 HRESULT GroupBy([in] BSTR groupby);
709 [propget]
710 HRESULT FolderFlags([out, retval] DWORD *flags);
712 [propput]
713 HRESULT FolderFlags([in] DWORD flags);
715 [propget]
716 HRESULT SortColumns([out, retval] BSTR *sortcolumns);
718 [propput]
719 HRESULT SortColumns([in] BSTR sortcolumns);
721 [propput]
722 HRESULT IconSize([in] int icon_size);
724 [propget]
725 HRESULT IconSize([out, retval] int *icon_size);
727 HRESULT FilterView([in, unique] BSTR filter_text);
731 uuid(62112aa1-ebe4-11cf-a5fb-0020afe7292d)
733 coclass ShellFolderView
735 [default] interface IShellFolderViewDual3;
736 [default, source] dispinterface DShellFolderViewEvents;
739 } /* library Shell32 */
741 /*****************************************************************************
742 * IAsyncOperation interface
745 uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4),
746 object,
749 interface IAsyncOperation : IUnknown
751 typedef [unique] IAsyncOperation *LPASYNCOPERATION;
753 HRESULT SetAsyncMode([in] BOOL fDoOpAsync);
755 HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync);
757 HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved);
759 HRESULT InOperation([out] BOOL *pfInAsyncOp);
761 HRESULT EndOperation(
762 [in] HRESULT hResult,
763 [in, unique] IBindCtx *pbcReserved,
764 [in] DWORD dwEffects);