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
25 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
26 cpp_quote("#undef ShellExecute")
29 /*****************************************************************************
30 * IEnumACString interface
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,
49 HRESULT NextItem( [out] LPWSTR pszUrl,
51 [out] ULONG *pulSortIndex);
53 HRESULT SetEnumOptions( [in] DWORD dwOptions );
55 HRESULT GetEnumOptions( [out] DWORD *pdwOptions );
58 /*****************************************************************************
59 * IAutoComplete interface
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
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),
116 importlib("stdole2.tlb");
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
136 [id(DISPID_SELECTIONCHANGED)]
137 void SelectionChanged();
139 [id(DISPID_FILELISTENUMDONE)]
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),
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 /*****************************************************************************
172 uuid(bbcbde60-c3ff-11ce-8350-444553540000),
176 interface Folder : IDispatch
178 [propget, id(DISPID_VALUE)]
179 HRESULT Title( [out, retval] BSTR *pbs );
182 HRESULT Application( [out, retval] IDispatch **ppid );
185 HRESULT Parent( [out, retval] IDispatch **ppid );
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,
202 [out, retval] BSTR *pbs );
205 /*****************************************************************************
210 uuid(f0d2d8ef-3890-11d2-bf8b-00c04fb93661),
214 interface Folder2 : Folder
217 HRESULT Self( [out, retval] FolderItem **ppfi );
220 HRESULT OfflineStatus( [out, retval] LONG *pul );
222 HRESULT Synchronize();
225 HRESULT HaveToShowWebViewBarricade(
226 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade );
228 HRESULT DismissedWebViewBarricade();
231 /*****************************************************************************
236 uuid(a7ae5f64-c4d7-4d7f-9307-4d24ee54b841),
240 interface Folder3 : Folder2
243 HRESULT ShowWebViewBarricade(
244 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade );
247 HRESULT ShowWebViewBarricade( [in] VARIANT_BOOL bShowWebViewBarricade );
250 /*****************************************************************************
251 * FolderItem interface
255 uuid(fac32c80-cbe4-11ce-8350-444553540000),
259 interface FolderItem : IDispatch
261 typedef FolderItem *LPFOLDERITEM;
264 HRESULT Application( [out, retval] IDispatch **ppid );
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 );
276 HRESULT Path( [out, retval] BSTR *pbs );
279 HRESULT GetLink( [out, retval] IDispatch **ppid );
282 HRESULT GetFolder( [out, retval] IDispatch **ppid );
285 HRESULT IsLink( [out, retval] VARIANT_BOOL *pb );
288 HRESULT IsFolder( [out, retval] VARIANT_BOOL *pb );
291 HRESULT IsFileSystem( [out, retval] VARIANT_BOOL *pb );
294 HRESULT IsBrowsable( [out, retval] VARIANT_BOOL *pb );
297 HRESULT ModifyDate( [out, retval] DATE *pdt );
300 HRESULT ModifyDate( [in] DATE dt );
303 HRESULT Size( [out, retval] LONG *pul );
306 HRESULT Type( [out, retval] BSTR *pbs );
308 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
310 HRESULT InvokeVerb( [in, optional] VARIANT vVerb );
313 /*****************************************************************************
314 * FolderItems interface
318 uuid(744129e0-cbe5-11ce-8350-444553540000),
322 interface FolderItems : IDispatch
325 HRESULT Count( [out, retval] long *plCount );
328 HRESULT Application( [out, retval] IDispatch **ppid );
331 HRESULT Parent( [out, retval] IDispatch **ppid );
333 HRESULT Item( [in, optional] VARIANT index,
334 [out, retval] FolderItem **ppid );
337 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
340 /*****************************************************************************
341 * FolderItemVerb interface
345 uuid(08ec3e00-50b0-11cf-960c-0080c7f4ee85),
349 interface FolderItemVerb : IDispatch
352 HRESULT Application( [out, retval] IDispatch **ppid );
355 HRESULT Parent( [out, retval] IDispatch **ppid );
357 [propget, id(DISPID_VALUE)]
358 HRESULT Name( [out, retval] BSTR *pbs );
363 /*****************************************************************************
364 * FolderItemVerbs interface
368 uuid(1f8352c0-50b0-11cf-960c-0080c7f4ee85),
372 interface FolderItemVerbs : IDispatch
375 HRESULT Count( [out, retval] long *plCount );
378 HRESULT Application( [out, retval] IDispatch **ppid );
381 HRESULT Parent( [out, retval] IDispatch **ppid );
383 HRESULT Item( [in, optional] VARIANT index,
384 [out, retval] FolderItemVerb **ppid );
387 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
390 /*****************************************************************************
391 * IShellDispatch interface
395 uuid(d8f015c0-c278-11ce-a49e-444553540000),
400 interface IShellDispatch : IDispatch
403 HRESULT Application( [out, retval] IDispatch **ppid );
406 HRESULT Parent( [out, retval] IDispatch **ppid );
408 HRESULT NameSpace( [in] VARIANT vDir, [out, retval] Folder **ppsdf );
410 HRESULT BrowseForFolder( [in] long Hwnd,
413 [in, optional] VARIANT RootFolder,
414 [out, retval] Folder **ppsdf );
416 HRESULT Windows( [out, retval] IDispatch **ppid );
418 HRESULT Open( [in] VARIANT vDir );
420 HRESULT Explore( [in] VARIANT vDir );
422 HRESULT MinimizeAll();
424 HRESULT UndoMinimizeALL();
428 HRESULT CascadeWindows();
430 HRESULT TileVertically();
432 HRESULT TileHorizontally();
434 HRESULT ShutdownWindows();
442 HRESULT TrayProperties();
448 HRESULT FindComputer();
450 HRESULT RefreshMenu();
452 HRESULT ControlPanelItem( [in] BSTR szDir );
457 uuid(a4c6892c-3ba9-11d2-9dea-00c04fb16162),
462 interface IShellDispatch2 : IShellDispatch
464 HRESULT IsRestricted([in] BSTR group, [in] BSTR restriction, [out, retval] long *value);
465 HRESULT ShellExecute([in] BSTR file, [in, optional] VARIANT args, [in, optional] VARIANT dir,
466 [in, optional] VARIANT op, [in, optional] VARIANT show);
467 HRESULT FindPrinter([in, optional] BSTR name, [in, optional] BSTR location, [in, optional] BSTR model);
468 HRESULT GetSystemInformation([in] BSTR name, [out, retval] VARIANT *ret);
469 HRESULT ServiceStart([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
470 HRESULT ServiceStop([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
471 HRESULT IsServiceRunning([in] BSTR service, [out, retval] VARIANT *running);
472 HRESULT CanStartStopService([in] BSTR service, [out, retval] VARIANT *ret);
473 HRESULT ShowBrowserBar([in] BSTR clsid, [in] VARIANT show, [out, retval] VARIANT *ret);
477 uuid(13709620-c279-11ce-a49e-444553540000)
481 [default] interface IShellDispatch2;
485 uuid(0a89a860-d7b1-11ce-8350-444553540000),
488 coclass ShellDispatchInproc
495 uuid(ca31ea20-48d0-11cf-8350-444553540000)
497 enum ShellSpecialFolderConstants {
509 ssfDESKTOPDIRECTORY = 0x10,
515 ssfCOMMONSTARTMENU = 0x16,
516 ssfCOMMONPROGRAMS = 0x17,
517 ssfCOMMONSTARTUP = 0x18,
518 ssfCOMMONDESKTOPDIR = 0x19,
521 ssfLOCALAPPDATA = 0x1c,
522 ssfALTSTARTUP = 0x1d,
523 ssfCOMMONALTSTARTUP = 0x1e,
524 ssfCOMMONFAVORITES = 0x1f,
525 ssfINTERNETCACHE = 0x20,
528 ssfCOMMONAPPDATA = 0x23,
531 ssfPROGRAMFILES = 0x26,
532 ssfMYPICTURES = 0x27,
535 ssfPROGRAMFILESx86 = 0x30
536 } ShellSpecialFolderConstants;
538 } /* library Shell32 */
540 /*****************************************************************************
541 * IAsyncOperation interface
544 uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4),
548 interface IAsyncOperation : IUnknown
550 typedef [unique] IAsyncOperation *LPASYNCOPERATION;
552 HRESULT SetAsyncMode([in] BOOL fDoOpAsync);
554 HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync);
556 HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved);
558 HRESULT InOperation([out] BOOL *pfInAsyncOp);
560 HRESULT EndOperation(
561 [in] HRESULT hResult,
562 [in, unique] IBindCtx *pbcReserved,
563 [in] DWORD dwEffects);