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
);