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 import
"servprov.idl";
30 /*****************************************************************************
31 * IEnumACString interface
36 uuid(8e74c210
-cf9d
-4eaf
-a403
-7356428f0a5a
),
37 pointer_default(unique)
39 interface IEnumACString
: IEnumString
41 typedef IEnumACString
*PENUMACSTRING
, *LPENUMACSTRING
;
43 typedef enum _tagACENUMOPTION
45 ACEO_NONE
= 0x00000000,
46 ACEO_MOSTRECENTFIRST
= 0x00000001,
47 ACEO_FIRSTUNUSED
= 0x00010000,
50 HRESULT NextItem
( [out] LPWSTR pszUrl
,
52 [out] ULONG
*pulSortIndex
);
54 HRESULT SetEnumOptions
( [in] DWORD dwOptions
);
56 HRESULT GetEnumOptions
( [out] DWORD
*pdwOptions
);
59 /*****************************************************************************
60 * IAutoComplete interface
65 uuid(00bb2762
-6a77
-11d0
-a535
-00c04fd7d062
),
66 pointer_default(unique)
68 interface IAutoComplete
: IUnknown
70 typedef IAutoComplete
*LPAUTOCOMPLETE
;
72 HRESULT Init
( [in] HWND hwndEdit
,
73 [in] IUnknown
*punkACL
,
74 [in] LPCOLESTR pwszRegKeyPath
,
75 [in] LPCOLESTR pwszQuickComplete
);
77 HRESULT Enable
( [in] BOOL fEnable
);
80 /*****************************************************************************
81 * IAutoComplete2 interface
86 uuid(eac04bc0
-3791-11d2
-bb95
-0060977b464c
),
87 pointer_default(unique)
89 interface IAutoComplete2
: IAutoComplete
91 typedef IAutoComplete2
*LPAUTOCOMPLETE2
;
93 typedef enum _tagAUTOCOMPLETEOPTIONS
95 ACO_NONE
= 0x00, /* No AutoComplete */
96 ACO_AUTOSUGGEST
= 0x01, /* enable autosuggest dropdown */
97 ACO_AUTOAPPEND
= 0x02, /* enable autoappend */
98 ACO_SEARCH
= 0x04, /* add search entry to completion list */
99 ACO_FILTERPREFIXES
= 0x08, /* don't match common prefixes (www., http://, etc) */
100 ACO_USETAB
= 0x10, /* use tab to select autosuggest entries */
101 ACO_UPDOWNKEYDROPSLIST
= 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */
102 ACO_RTLREADING
= 0x40, /* enable RTL reading order for dropdown */
103 } AUTOCOMPLETEOPTIONS
;
105 HRESULT SetOptions
( [in] DWORD dwFlag
);
107 HRESULT GetOptions
( [out] DWORD
*pdwFlag
);
111 uuid(50a7e9b0
-70ef
-11d1
-b75a
-00a0c90564fe
),
117 importlib
("stdole2.tlb");
122 uuid(9ba05970
-f6a8
-11cf
-a442
-00a0c90a8f39
),
123 pointer_default(unique)
125 interface IFolderViewOC
: IDispatch
127 HRESULT SetFolderView
( [in] IDispatch
*pdisp
);
131 uuid(62112aa2
-ebe4
-11cf
-a5fb
-0020afe7292d
)
133 dispinterface DShellFolderViewEvents
137 [id(DISPID_SELECTIONCHANGED
)]
138 void SelectionChanged
();
140 [id(DISPID_FILELISTENUMDONE
)]
143 [id(DISPID_VERBINVOKED
)]
144 VARIANT_BOOL VerbInvoked
();
146 [id(DISPID_DEFAULTVERBINVOKED
)]
147 VARIANT_BOOL DefaultVerbInvoked
();
149 [id(DISPID_BEGINDRAG
)]
150 VARIANT_BOOL BeginDrag
();
154 uuid(9ba05971
-f6a8
-11cf
-a442
-00a0c90a8f39
),
157 coclass ShellFolderViewOC
159 [default] interface IFolderViewOC
;
160 [default, source] dispinterface DShellFolderViewEvents
;
163 interface FolderItem
;
164 interface FolderItems
;
165 interface FolderItemVerb
;
166 interface FolderItemVerbs
;
168 /*****************************************************************************
173 uuid(bbcbde60
-c3ff
-11ce
-8350-444553540000),
177 interface Folder
: IDispatch
179 [propget, id(DISPID_VALUE
)]
180 HRESULT Title
( [out, retval] BSTR *pbs
);
183 HRESULT Application
( [out, retval] IDispatch
**ppid
);
186 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
189 HRESULT ParentFolder
( [out, retval] Folder
**ppsf
);
191 HRESULT Items
( [out, retval] FolderItems
**ppid
);
193 HRESULT ParseName
( [in] BSTR bName
, [out, retval] FolderItem
**ppid
);
195 HRESULT NewFolder
( [in] BSTR bName
, [in, optional] VARIANT vOptions
);
197 HRESULT MoveHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
199 HRESULT CopyHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
201 HRESULT GetDetailsOf
( [in] VARIANT vItem
,
203 [out, retval] BSTR *pbs
);
206 /*****************************************************************************
211 uuid(f0d2d8ef
-3890-11d2
-bf8b
-00c04fb93661
),
215 interface Folder2
: Folder
218 HRESULT Self
( [out, retval] FolderItem
**ppfi
);
221 HRESULT OfflineStatus
( [out, retval] LONG *pul
);
223 HRESULT Synchronize
();
226 HRESULT HaveToShowWebViewBarricade
(
227 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade
);
229 HRESULT DismissedWebViewBarricade
();
232 /*****************************************************************************
237 uuid(a7ae5f64
-c4d7
-4d7f
-9307-4d24ee54b841
),
241 interface Folder3
: Folder2
244 HRESULT ShowWebViewBarricade
(
245 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade
);
248 HRESULT ShowWebViewBarricade
( [in] VARIANT_BOOL bShowWebViewBarricade
);
251 /*****************************************************************************
252 * FolderItem interface
256 uuid(fac32c80
-cbe4
-11ce
-8350-444553540000),
260 interface FolderItem
: IDispatch
262 typedef FolderItem
*LPFOLDERITEM
;
265 HRESULT Application
( [out, retval] IDispatch
**ppid
);
268 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
270 [propget, id(DISPID_VALUE
)]
271 HRESULT Name
( [out, retval] BSTR *pbs
);
273 [propput, id(DISPID_VALUE
)]
274 HRESULT Name
( [in] BSTR bs
);
277 HRESULT Path
( [out, retval] BSTR *pbs
);
280 HRESULT GetLink
( [out, retval] IDispatch
**ppid
);
283 HRESULT GetFolder
( [out, retval] IDispatch
**ppid
);
286 HRESULT IsLink
( [out, retval] VARIANT_BOOL *pb
);
289 HRESULT IsFolder
( [out, retval] VARIANT_BOOL *pb
);
292 HRESULT IsFileSystem
( [out, retval] VARIANT_BOOL *pb
);
295 HRESULT IsBrowsable
( [out, retval] VARIANT_BOOL *pb
);
298 HRESULT ModifyDate
( [out, retval] DATE
*pdt
);
301 HRESULT ModifyDate
( [in] DATE dt
);
304 HRESULT Size
( [out, retval] LONG *pul
);
307 HRESULT Type
( [out, retval] BSTR *pbs
);
309 HRESULT Verbs
( [out, retval] FolderItemVerbs
**ppfic
);
311 HRESULT InvokeVerb
( [in, optional] VARIANT vVerb
);
314 /*****************************************************************************
315 * FolderItems interface
319 uuid(744129e0
-cbe5
-11ce
-8350-444553540000),
323 interface FolderItems
: IDispatch
326 HRESULT Count
( [out, retval] long *plCount
);
329 HRESULT Application
( [out, retval] IDispatch
**ppid
);
332 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
334 HRESULT Item
( [in, optional] VARIANT index
,
335 [out, retval] FolderItem
**ppid
);
338 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
341 /*****************************************************************************
342 * FolderItemVerb interface
346 uuid(08ec3e00
-50b0
-11cf
-960c
-0080c7f4ee85
),
350 interface FolderItemVerb
: IDispatch
353 HRESULT Application
( [out, retval] IDispatch
**ppid
);
356 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
358 [propget, id(DISPID_VALUE
)]
359 HRESULT Name
( [out, retval] BSTR *pbs
);
364 /*****************************************************************************
365 * FolderItemVerbs interface
369 uuid(1f8352c0
-50b0
-11cf
-960c
-0080c7f4ee85
),
373 interface FolderItemVerbs
: IDispatch
376 HRESULT Count
( [out, retval] long *plCount
);
379 HRESULT Application
( [out, retval] IDispatch
**ppid
);
382 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
384 HRESULT Item
( [in, optional] VARIANT index
,
385 [out, retval] FolderItemVerb
**ppid
);
388 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
391 /*****************************************************************************
392 * IShellDispatch interface
396 uuid(d8f015c0
-c278
-11ce
-a49e
-444553540000
),
401 interface IShellDispatch
: IDispatch
404 HRESULT Application
( [out, retval] IDispatch
**ppid
);
407 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
409 HRESULT NameSpace
( [in] VARIANT vDir
, [out, retval] Folder
**ppsdf
);
411 HRESULT BrowseForFolder
( [in] long Hwnd
,
414 [in, optional] VARIANT RootFolder
,
415 [out, retval] Folder
**ppsdf
);
417 HRESULT Windows
( [out, retval] IDispatch
**ppid
);
419 HRESULT Open
( [in] VARIANT vDir
);
421 HRESULT Explore
( [in] VARIANT vDir
);
423 HRESULT MinimizeAll
();
425 HRESULT UndoMinimizeALL
();
429 HRESULT CascadeWindows
();
431 HRESULT TileVertically
();
433 HRESULT TileHorizontally
();
435 HRESULT ShutdownWindows
();
443 HRESULT TrayProperties
();
449 HRESULT FindComputer
();
451 HRESULT RefreshMenu
();
453 HRESULT ControlPanelItem
( [in] BSTR szDir
);
457 uuid(13709620-c279
-11ce
-a49e
-444553540000
)
461 [default] interface IShellDispatch
;
465 uuid(0a89a860
-d7b1
-11ce
-8350-444553540000),
468 coclass ShellDispatchInproc
475 uuid(ca31ea20
-48d0
-11cf
-8350-444553540000)
477 enum ShellSpecialFolderConstants
{
489 ssfDESKTOPDIRECTORY
= 0x10,
495 ssfCOMMONSTARTMENU
= 0x16,
496 ssfCOMMONPROGRAMS
= 0x17,
497 ssfCOMMONSTARTUP
= 0x18,
498 ssfCOMMONDESKTOPDIR
= 0x19,
501 ssfLOCALAPPDATA
= 0x1c,
502 ssfALTSTARTUP
= 0x1d,
503 ssfCOMMONALTSTARTUP
= 0x1e,
504 ssfCOMMONFAVORITES
= 0x1f,
505 ssfINTERNETCACHE
= 0x20,
508 ssfCOMMONAPPDATA
= 0x23,
511 ssfPROGRAMFILES
= 0x26,
512 ssfMYPICTURES
= 0x27,
515 ssfPROGRAMFILESx86
= 0x30
516 } ShellSpecialFolderConstants
;
518 } /* library Shell32 */
520 /*****************************************************************************
521 * IAsyncOperation interface
524 uuid(3d8b0590
-f691
-11d2
-8ea9
-006097df5bd4
),
528 interface IAsyncOperation
: IUnknown
530 typedef [unique] IAsyncOperation
*LPASYNCOPERATION
;
532 HRESULT SetAsyncMode
([in] BOOL fDoOpAsync
);
534 HRESULT GetAsyncMode
([out] BOOL
*pfIsOpAsync
);
536 HRESULT StartOperation
([in, unique, optional] IBindCtx
*pbcReserved
);
538 HRESULT InOperation
([out] BOOL
*pfInAsyncOp
);
540 HRESULT EndOperation
(
541 [in] HRESULT hResult,
542 [in, unique] IBindCtx
*pbcReserved
,
543 [in] DWORD dwEffects
);