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
35 uuid(00bb2762
-6a77
-11d0
-a535
-00c04fd7d062
),
36 pointer_default(unique)
38 interface IAutoComplete
: IUnknown
40 typedef IAutoComplete
*LPAUTOCOMPLETE
;
42 HRESULT Init
( [in] HWND hwndEdit
,
43 [in] IUnknown
*punkACL
,
44 [in] LPCOLESTR pwszRegKeyPath
,
45 [in] LPCOLESTR pwszQuickComplete
);
47 HRESULT Enable
( [in] BOOL fEnable
);
50 /*****************************************************************************
51 * IAutoComplete2 interface
55 uuid(eac04bc0
-3791-11d2
-bb95
-0060977b464c
),
56 pointer_default(unique)
58 interface IAutoComplete2
: IAutoComplete
60 typedef IAutoComplete2
*LPAUTOCOMPLETE2
;
62 typedef enum _tagAUTOCOMPLETEOPTIONS
64 ACO_NONE
= 0x00, /* No AutoComplete */
65 ACO_AUTOSUGGEST
= 0x01, /* enable autosuggest dropdown */
66 ACO_AUTOAPPEND
= 0x02, /* enable autoappend */
67 ACO_SEARCH
= 0x04, /* add search entry to completion list */
68 ACO_FILTERPREFIXES
= 0x08, /* don't match common prefixes (www., http://, etc) */
69 ACO_USETAB
= 0x10, /* use tab to select autosuggest entries */
70 ACO_UPDOWNKEYDROPSLIST
= 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */
71 ACO_RTLREADING
= 0x40, /* enable RTL reading order for dropdown */
72 } AUTOCOMPLETEOPTIONS
;
74 HRESULT SetOptions
( [in] DWORD dwFlag
);
76 HRESULT GetOptions
( [out] DWORD
*pdwFlag
);
80 uuid(50a7e9b0
-70ef
-11d1
-b75a
-00a0c90564fe
),
86 importlib
("stdole2.tlb");
90 uuid(9ba05970
-f6a8
-11cf
-a442
-00a0c90a8f39
),
91 pointer_default(unique)
93 interface IFolderViewOC
: IDispatch
95 HRESULT SetFolderView
( [in] IDispatch
*pdisp
);
99 uuid(62112aa2
-ebe4
-11cf
-a5fb
-0020afe7292d
)
101 dispinterface DShellFolderViewEvents
105 [id(DISPID_SELECTIONCHANGED
)]
106 void SelectionChanged
();
108 [id(DISPID_FILELISTENUMDONE
)]
111 [id(DISPID_VERBINVOKED
)]
112 VARIANT_BOOL VerbInvoked
();
114 [id(DISPID_DEFAULTVERBINVOKED
)]
115 VARIANT_BOOL DefaultVerbInvoked
();
117 [id(DISPID_BEGINDRAG
)]
118 VARIANT_BOOL BeginDrag
();
122 uuid(9ba05971
-f6a8
-11cf
-a442
-00a0c90a8f39
),
125 coclass ShellFolderViewOC
127 [default] interface IFolderViewOC
;
128 [default, source] dispinterface DShellFolderViewEvents
;
131 interface FolderItem
;
132 interface FolderItems
;
133 interface FolderItemVerb
;
134 interface FolderItemVerbs
;
136 /*****************************************************************************
141 uuid(bbcbde60
-c3ff
-11ce
-8350-444553540000),
145 interface Folder
: IDispatch
147 [propget, id(DISPID_VALUE
)]
148 HRESULT Title
( [out, retval] BSTR *pbs
);
151 HRESULT Application
( [out, retval] IDispatch
**ppid
);
154 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
157 HRESULT ParentFolder
( [out, retval] Folder
**ppsf
);
159 HRESULT Items
( [out, retval] FolderItems
**ppid
);
161 HRESULT ParseName
( [in] BSTR bName
, [out, retval] FolderItem
**ppid
);
163 HRESULT NewFolder
( [in] BSTR bName
, [in, optional] VARIANT vOptions
);
165 HRESULT MoveHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
167 HRESULT CopyHere
( [in] VARIANT vItem
, [in, optional] VARIANT vOptions
);
169 HRESULT GetDetailsOf
( [in] VARIANT vItem
,
171 [out, retval] BSTR *pbs
);
174 /*****************************************************************************
179 uuid(f0d2d8ef
-3890-11d2
-bf8b
-00c04fb93661
),
183 interface Folder2
: Folder
186 HRESULT Self
( [out, retval] FolderItem
**ppfi
);
189 HRESULT OfflineStatus
( [out, retval] LONG *pul
);
191 HRESULT Synchronize
();
194 HRESULT HaveToShowWebViewBarricade
(
195 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade
);
197 HRESULT DismissedWebViewBarricade
();
200 /*****************************************************************************
205 uuid(a7ae5f64
-c4d7
-4d7f
-9307-4d24ee54b841
),
209 interface Folder3
: Folder2
212 HRESULT ShowWebViewBarricade
(
213 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade
);
216 HRESULT ShowWebViewBarricade
( [in] VARIANT_BOOL bShowWebViewBarricade
);
219 /*****************************************************************************
220 * FolderItem interface
224 uuid(fac32c80
-cbe4
-11ce
-8350-444553540000),
228 interface FolderItem
: IDispatch
230 typedef FolderItem
*LPFOLDERITEM
;
233 HRESULT Application
( [out, retval] IDispatch
**ppid
);
236 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
238 [propget, id(DISPID_VALUE
)]
239 HRESULT Name
( [out, retval] BSTR *pbs
);
241 [propput, id(DISPID_VALUE
)]
242 HRESULT Name
( [in] BSTR bs
);
245 HRESULT Path
( [out, retval] BSTR *pbs
);
248 HRESULT GetLink
( [out, retval] IDispatch
**ppid
);
251 HRESULT GetFolder
( [out, retval] IDispatch
**ppid
);
254 HRESULT IsLink
( [out, retval] VARIANT_BOOL *pb
);
257 HRESULT IsFolder
( [out, retval] VARIANT_BOOL *pb
);
260 HRESULT IsFileSystem
( [out, retval] VARIANT_BOOL *pb
);
263 HRESULT IsBrowsable
( [out, retval] VARIANT_BOOL *pb
);
266 HRESULT ModifyDate
( [out, retval] DATE
*pdt
);
269 HRESULT ModifyDate
( [in] DATE dt
);
272 HRESULT Size
( [out, retval] LONG *pul
);
275 HRESULT Type
( [out, retval] BSTR *pbs
);
277 HRESULT Verbs
( [out, retval] FolderItemVerbs
**ppfic
);
279 HRESULT InvokeVerb
( [in, optional] VARIANT vVerb
);
282 /*****************************************************************************
283 * FolderItems interface
287 uuid(744129e0
-cbe5
-11ce
-8350-444553540000),
291 interface FolderItems
: IDispatch
294 HRESULT Count
( [out, retval] long *plCount
);
297 HRESULT Application
( [out, retval] IDispatch
**ppid
);
300 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
302 HRESULT Item
( [in, optional] VARIANT index
,
303 [out, retval] FolderItem
**ppid
);
306 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
309 /*****************************************************************************
310 * FolderItemVerb interface
314 uuid(08ec3e00
-50b0
-11cf
-960c
-0080c7f4ee85
),
318 interface FolderItemVerb
: IDispatch
321 HRESULT Application
( [out, retval] IDispatch
**ppid
);
324 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
326 [propget, id(DISPID_VALUE
)]
327 HRESULT Name
( [out, retval] BSTR *pbs
);
332 /*****************************************************************************
333 * FolderItemVerbs interface
337 uuid(1f8352c0
-50b0
-11cf
-960c
-0080c7f4ee85
),
341 interface FolderItemVerbs
: IDispatch
344 HRESULT Count
( [out, retval] long *plCount
);
347 HRESULT Application
( [out, retval] IDispatch
**ppid
);
350 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
352 HRESULT Item
( [in, optional] VARIANT index
,
353 [out, retval] FolderItemVerb
**ppid
);
356 HRESULT _NewEnum
( [out, retval] IUnknown
**ppunk
);
359 /*****************************************************************************
360 * IShellDispatch interface
364 uuid(d8f015c0
-c278
-11ce
-a49e
-444553540000
),
369 interface IShellDispatch
: IDispatch
372 HRESULT Application
( [out, retval] IDispatch
**ppid
);
375 HRESULT Parent
( [out, retval] IDispatch
**ppid
);
377 HRESULT NameSpace
( [in] VARIANT vDir
, [out, retval] Folder
**ppsdf
);
379 HRESULT BrowseForFolder
( [in] long Hwnd
,
382 [in, optional] VARIANT RootFolder
,
383 [out, retval] Folder
**ppsdf
);
385 HRESULT Windows
( [out, retval] IDispatch
**ppid
);
387 HRESULT Open
( [in] VARIANT vDir
);
389 HRESULT Explore
( [in] VARIANT vDir
);
391 HRESULT MinimizeAll
();
393 HRESULT UndoMinimizeALL
();
397 HRESULT CascadeWindows
();
399 HRESULT TileVertically
();
401 HRESULT TileHorizontally
();
403 HRESULT ShutdownWindows
();
411 HRESULT TrayProperties
();
417 HRESULT FindComputer
();
419 HRESULT RefreshMenu
();
421 HRESULT ControlPanelItem
( [in] BSTR szDir
);
425 uuid(13709620-c279
-11ce
-a49e
-444553540000
)
429 [default] interface IShellDispatch
;
433 uuid(0a89a860
-d7b1
-11ce
-8350-444553540000),
436 coclass ShellDispatchInproc
443 uuid(ca31ea20
-48d0
-11cf
-8350-444553540000)
445 enum ShellSpecialFolderConstants
{
457 ssfDESKTOPDIRECTORY
= 0x10,
463 ssfCOMMONSTARTMENU
= 0x16,
464 ssfCOMMONPROGRAMS
= 0x17,
465 ssfCOMMONSTARTUP
= 0x18,
466 ssfCOMMONDESKTOPDIR
= 0x19,
469 ssfLOCALAPPDATA
= 0x1c,
470 ssfALTSTARTUP
= 0x1d,
471 ssfCOMMONALTSTARTUP
= 0x1e,
472 ssfCOMMONFAVORITES
= 0x1f,
473 ssfINTERNETCACHE
= 0x20,
476 ssfCOMMONAPPDATA
= 0x23,
479 ssfPROGRAMFILES
= 0x26,
480 ssfMYPICTURES
= 0x27,
483 ssfPROGRAMFILESx86
= 0x30
484 } ShellSpecialFolderConstants
;
486 } /* library Shell32 */
488 /*****************************************************************************
489 * IAsyncOperation interface
492 uuid(3d8b0590
-f691
-11d2
-8ea9
-006097df5bd4
),
496 interface IAsyncOperation
: IUnknown
498 typedef [unique] IAsyncOperation
*LPASYNCOPERATION
;
500 HRESULT SetAsyncMode
([in] BOOL fDoOpAsync
);
502 HRESULT GetAsyncMode
([out] BOOL
*pfIsOpAsync
);
504 HRESULT StartOperation
([in, unique, optional] IBindCtx
*pbcReserved
);
506 HRESULT InOperation
([out] BOOL
*pfInAsyncOp
);
508 HRESULT EndOperation
(
509 [in] HRESULT hResult,
510 [in, unique] IBindCtx
*pbcReserved
,
511 [in] DWORD dwEffects
);