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 * IAutoComplete interface
36 uuid(00bb2762
-6a77
-11d0
-a535
-00c04fd7d062
),
37 pointer_default(unique)
39 interface IAutoComplete
: IUnknown
41 typedef IAutoComplete
*LPAUTOCOMPLETE
;
43 HRESULT Init
( [in] HWND hwndEdit
,
44 [in] IUnknown
*punkACL
,
45 [in] LPCOLESTR pwszRegKeyPath
,
46 [in] LPCOLESTR pwszQuickComplete
);
48 HRESULT Enable
( [in] BOOL fEnable
);
51 /*****************************************************************************
52 * IAutoComplete2 interface
57 uuid(eac04bc0
-3791-11d2
-bb95
-0060977b464c
),
58 pointer_default(unique)
60 interface IAutoComplete2
: IAutoComplete
62 typedef IAutoComplete2
*LPAUTOCOMPLETE2
;
64 typedef enum _tagAUTOCOMPLETEOPTIONS
66 ACO_NONE
= 0x00, /* No AutoComplete */
67 ACO_AUTOSUGGEST
= 0x01, /* enable autosuggest dropdown */
68 ACO_AUTOAPPEND
= 0x02, /* enable autoappend */
69 ACO_SEARCH
= 0x04, /* add search entry to completion list */
70 ACO_FILTERPREFIXES
= 0x08, /* don't match common prefixes (www., http://, etc) */
71 ACO_USETAB
= 0x10, /* use tab to select autosuggest entries */
72 ACO_UPDOWNKEYDROPSLIST
= 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */
73 ACO_RTLREADING
= 0x40, /* enable RTL reading order for dropdown */
74 } AUTOCOMPLETEOPTIONS
;
76 HRESULT SetOptions
( [in] DWORD dwFlag
);
78 HRESULT GetOptions
( [out] DWORD
*pdwFlag
);
82 uuid(50a7e9b0
-70ef
-11d1
-b75a
-00a0c90564fe
),
88 importlib
("stdole2.tlb");
93 uuid(9ba05970
-f6a8
-11cf
-a442
-00a0c90a8f39
),
94 pointer_default(unique)
96 interface IFolderViewOC
: IDispatch
98 HRESULT SetFolderView
( [in] IDispatch
*pdisp
);
102 uuid(62112aa2
-ebe4
-11cf
-a5fb
-0020afe7292d
)
104 dispinterface DShellFolderViewEvents
108 [id(DISPID_SELECTIONCHANGED
)]
109 void SelectionChanged
();
111 [id(DISPID_FILELISTENUMDONE
)]
114 [id(DISPID_VERBINVOKED
)]
115 VARIANT_BOOL VerbInvoked
();
117 [id(DISPID_DEFAULTVERBINVOKED
)]
118 VARIANT_BOOL DefaultVerbInvoked
();
120 [id(DISPID_BEGINDRAG
)]
121 VARIANT_BOOL BeginDrag
();
125 uuid(9ba05971
-f6a8
-11cf
-a442
-00a0c90a8f39
),
128 coclass ShellFolderViewOC
130 [default] interface IFolderViewOC
;
131 [default, source] dispinterface DShellFolderViewEvents
;
134 interface FolderItem
;
135 interface FolderItems
;
136 interface FolderItemVerb
;
137 interface FolderItemVerbs
;
139 /*****************************************************************************
144 uuid(bbcbde60
-c3ff
-11ce
-8350-444553540000),
148 interface Folder
: IDispatch
150 [propget, id(DISPID_VALUE
)]
151 HRESULT Title
( [out, retval] BSTR *pbs
);
154 HRESULT Application
( [out, retval] IDispatch
**ppid
);
157 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
160 HRESULT ParentFolder
( [out, retval] Folder
**ppsf
);
162 HRESULT Items
( [out, retval] FolderItems
**ppid
);
164 HRESULT ParseName
( [in] BSTR bName
, [out, retval] FolderItem
**ppid
);
166 HRESULT NewFolder
( [in] BSTR bName
, [in, optional] VARIANT vOptions
);
168 HRESULT MoveHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
170 HRESULT CopyHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
172 HRESULT GetDetailsOf
( [in] VARIANT vItem
,
174 [out, retval] BSTR *pbs
);
177 /*****************************************************************************
182 uuid(f0d2d8ef
-3890-11d2
-bf8b
-00c04fb93661
),
186 interface Folder2
: Folder
189 HRESULT Self
( [out, retval] FolderItem
**ppfi
);
192 HRESULT OfflineStatus
( [out, retval] LONG *pul
);
194 HRESULT Synchronize
();
197 HRESULT HaveToShowWebViewBarricade
(
198 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade
);
200 HRESULT DismissedWebViewBarricade
();
203 /*****************************************************************************
208 uuid(a7ae5f64
-c4d7
-4d7f
-9307-4d24ee54b841
),
212 interface Folder3
: Folder2
215 HRESULT ShowWebViewBarricade
(
216 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade
);
219 HRESULT ShowWebViewBarricade
( [in] VARIANT_BOOL bShowWebViewBarricade
);
222 /*****************************************************************************
223 * FolderItem interface
227 uuid(fac32c80
-cbe4
-11ce
-8350-444553540000),
231 interface FolderItem
: IDispatch
233 typedef FolderItem
*LPFOLDERITEM
;
236 HRESULT Application
( [out, retval] IDispatch
**ppid
);
239 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
241 [propget, id(DISPID_VALUE
)]
242 HRESULT Name
( [out, retval] BSTR *pbs
);
244 [propput, id(DISPID_VALUE
)]
245 HRESULT Name
( [in] BSTR bs
);
248 HRESULT Path
( [out, retval] BSTR *pbs
);
251 HRESULT GetLink
( [out, retval] IDispatch
**ppid
);
254 HRESULT GetFolder
( [out, retval] IDispatch
**ppid
);
257 HRESULT IsLink
( [out, retval] VARIANT_BOOL *pb
);
260 HRESULT IsFolder
( [out, retval] VARIANT_BOOL *pb
);
263 HRESULT IsFileSystem
( [out, retval] VARIANT_BOOL *pb
);
266 HRESULT IsBrowsable
( [out, retval] VARIANT_BOOL *pb
);
269 HRESULT ModifyDate
( [out, retval] DATE
*pdt
);
272 HRESULT ModifyDate
( [in] DATE dt
);
275 HRESULT Size
( [out, retval] LONG *pul
);
278 HRESULT Type
( [out, retval] BSTR *pbs
);
280 HRESULT Verbs
( [out, retval] FolderItemVerbs
**ppfic
);
282 HRESULT InvokeVerb
( [in, optional] VARIANT vVerb
);
285 /*****************************************************************************
286 * FolderItems interface
290 uuid(744129e0
-cbe5
-11ce
-8350-444553540000),
294 interface FolderItems
: IDispatch
297 HRESULT Count
( [out, retval] long *plCount
);
300 HRESULT Application
( [out, retval] IDispatch
**ppid
);
303 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
305 HRESULT Item
( [in, optional] VARIANT index
,
306 [out, retval] FolderItem
**ppid
);
309 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
312 /*****************************************************************************
313 * FolderItemVerb interface
317 uuid(08ec3e00
-50b0
-11cf
-960c
-0080c7f4ee85
),
321 interface FolderItemVerb
: IDispatch
324 HRESULT Application
( [out, retval] IDispatch
**ppid
);
327 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
329 [propget, id(DISPID_VALUE
)]
330 HRESULT Name
( [out, retval] BSTR *pbs
);
335 /*****************************************************************************
336 * FolderItemVerbs interface
340 uuid(1f8352c0
-50b0
-11cf
-960c
-0080c7f4ee85
),
344 interface FolderItemVerbs
: IDispatch
347 HRESULT Count
( [out, retval] long *plCount
);
350 HRESULT Application
( [out, retval] IDispatch
**ppid
);
353 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
355 HRESULT Item
( [in, optional] VARIANT index
,
356 [out, retval] FolderItemVerb
**ppid
);
359 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
362 /*****************************************************************************
363 * IShellDispatch interface
367 uuid(d8f015c0
-c278
-11ce
-a49e
-444553540000
),
372 interface IShellDispatch
: IDispatch
375 HRESULT Application
( [out, retval] IDispatch
**ppid
);
378 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
380 HRESULT NameSpace
( [in] VARIANT vDir
, [out, retval] Folder
**ppsdf
);
382 HRESULT BrowseForFolder
( [in] long Hwnd
,
385 [in, optional] VARIANT RootFolder
,
386 [out, retval] Folder
**ppsdf
);
388 HRESULT Windows
( [out, retval] IDispatch
**ppid
);
390 HRESULT Open
( [in] VARIANT vDir
);
392 HRESULT Explore
( [in] VARIANT vDir
);
394 HRESULT MinimizeAll
();
396 HRESULT UndoMinimizeALL
();
400 HRESULT CascadeWindows
();
402 HRESULT TileVertically
();
404 HRESULT TileHorizontally
();
406 HRESULT ShutdownWindows
();
414 HRESULT TrayProperties
();
420 HRESULT FindComputer
();
422 HRESULT RefreshMenu
();
424 HRESULT ControlPanelItem
( [in] BSTR szDir
);
428 uuid(13709620-c279
-11ce
-a49e
-444553540000
)
432 [default] interface IShellDispatch
;
436 uuid(0a89a860
-d7b1
-11ce
-8350-444553540000),
439 coclass ShellDispatchInproc
446 uuid(ca31ea20
-48d0
-11cf
-8350-444553540000)
448 enum ShellSpecialFolderConstants
{
460 ssfDESKTOPDIRECTORY
= 0x10,
466 ssfCOMMONSTARTMENU
= 0x16,
467 ssfCOMMONPROGRAMS
= 0x17,
468 ssfCOMMONSTARTUP
= 0x18,
469 ssfCOMMONDESKTOPDIR
= 0x19,
472 ssfLOCALAPPDATA
= 0x1c,
473 ssfALTSTARTUP
= 0x1d,
474 ssfCOMMONALTSTARTUP
= 0x1e,
475 ssfCOMMONFAVORITES
= 0x1f,
476 ssfINTERNETCACHE
= 0x20,
479 ssfCOMMONAPPDATA
= 0x23,
482 ssfPROGRAMFILES
= 0x26,
483 ssfMYPICTURES
= 0x27,
486 ssfPROGRAMFILESx86
= 0x30
487 } ShellSpecialFolderConstants
;
489 } /* library Shell32 */
491 /*****************************************************************************
492 * IAsyncOperation interface
495 uuid(3d8b0590
-f691
-11d2
-8ea9
-006097df5bd4
),
499 interface IAsyncOperation
: IUnknown
501 typedef [unique] IAsyncOperation
*LPASYNCOPERATION
;
503 HRESULT SetAsyncMode
([in] BOOL fDoOpAsync
);
505 HRESULT GetAsyncMode
([out] BOOL
*pfIsOpAsync
);
507 HRESULT StartOperation
([in, unique, optional] IBindCtx
*pbcReserved
);
509 HRESULT InOperation
([out] BOOL
*pfInAsyncOp
);
511 HRESULT EndOperation
(
512 [in] HRESULT hResult,
513 [in, unique] IBindCtx
*pbcReserved
,
514 [in] DWORD dwEffects
);