[psdk]
[reactos.git] / reactos / include / psdk / shldisp.idl
1 /*
2 * COM interfaces for shell objects
3 *
4 * Copyright (C) 2004 Maxime Bellengé
5 *
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.
10 *
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.
15 *
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
19 */
20
21 import "objidl.idl";
22 import "oleidl.idl";
23 import "oaidl.idl";
24 import "shtypes.idl";
25 import "servprov.idl";
26 import "comcat.idl";
27
28 #include <shdispid.h>
29
30 /*****************************************************************************
31 * IAutoComplete interface
32 */
33 [
34 local,
35 object,
36 uuid(00bb2762-6a77-11d0-a535-00c04fd7d062),
37 pointer_default(unique)
38 ]
39 interface IAutoComplete : IUnknown
40 {
41 typedef IAutoComplete *LPAUTOCOMPLETE;
42
43 HRESULT Init( [in] HWND hwndEdit,
44 [in] IUnknown *punkACL,
45 [in] LPCOLESTR pwszRegKeyPath,
46 [in] LPCOLESTR pwszQuickComplete);
47
48 HRESULT Enable( [in] BOOL fEnable );
49 }
50
51 /*****************************************************************************
52 * IAutoComplete2 interface
53 */
54 [
55 local,
56 object,
57 uuid(eac04bc0-3791-11d2-bb95-0060977b464c),
58 pointer_default(unique)
59 ]
60 interface IAutoComplete2 : IAutoComplete
61 {
62 typedef IAutoComplete2 *LPAUTOCOMPLETE2;
63
64 typedef enum _tagAUTOCOMPLETEOPTIONS
65 {
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;
75
76 HRESULT SetOptions( [in] DWORD dwFlag);
77
78 HRESULT GetOptions( [out] DWORD *pdwFlag);
79 }
80
81 [
82 uuid(50a7e9b0-70ef-11d1-b75a-00a0c90564fe),
83 version(1.0)
84 ]
85 library Shell32
86 {
87
88 importlib("stdole2.tlb");
89
90 [
91 object,
92 oleautomation,
93 uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39),
94 pointer_default(unique)
95 ]
96 interface IFolderViewOC : IDispatch
97 {
98 HRESULT SetFolderView( [in] IDispatch *pdisp );
99 }
100
101 [
102 uuid(62112aa2-ebe4-11cf-a5fb-0020afe7292d)
103 ]
104 dispinterface DShellFolderViewEvents
105 {
106 properties:
107 methods:
108 [id(DISPID_SELECTIONCHANGED)]
109 void SelectionChanged();
110
111 [id(DISPID_FILELISTENUMDONE)]
112 void EnumDone();
113
114 [id(DISPID_VERBINVOKED)]
115 VARIANT_BOOL VerbInvoked();
116
117 [id(DISPID_DEFAULTVERBINVOKED)]
118 VARIANT_BOOL DefaultVerbInvoked();
119
120 [id(DISPID_BEGINDRAG)]
121 VARIANT_BOOL BeginDrag();
122 }
123
124 [
125 uuid(9ba05971-f6a8-11cf-a442-00a0c90a8f39),
126 hidden
127 ]
128 coclass ShellFolderViewOC
129 {
130 [default] interface IFolderViewOC;
131 [default, source] dispinterface DShellFolderViewEvents;
132 }
133
134 interface FolderItem;
135 interface FolderItems;
136 interface FolderItemVerb;
137 interface FolderItemVerbs;
138
139 /*****************************************************************************
140 * Folder interface
141 */
142 [
143 object,
144 uuid(bbcbde60-c3ff-11ce-8350-444553540000),
145 oleautomation,
146 dual
147 ]
148 interface Folder : IDispatch
149 {
150 [propget, id(DISPID_VALUE)]
151 HRESULT Title( [out, retval] BSTR *pbs );
152
153 [propget]
154 HRESULT Application( [out, retval] IDispatch **ppid );
155
156 [propget]
157 HRESULT Parent( [out, retval] IDispatch **ppid );
158
159 [propget]
160 HRESULT ParentFolder( [out, retval] Folder **ppsf );
161
162 HRESULT Items( [out, retval] FolderItems **ppid );
163
164 HRESULT ParseName( [in] BSTR bName, [out, retval] FolderItem **ppid );
165
166 HRESULT NewFolder( [in] BSTR bName, [in, optional] VARIANT vOptions );
167
168 HRESULT MoveHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
169
170 HRESULT CopyHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
171
172 HRESULT GetDetailsOf( [in] VARIANT vItem,
173 [in] int iColumn,
174 [out, retval] BSTR *pbs );
175 }
176
177 /*****************************************************************************
178 * Folder2 interface
179 */
180 [
181 object,
182 uuid(f0d2d8ef-3890-11d2-bf8b-00c04fb93661),
183 oleautomation,
184 dual
185 ]
186 interface Folder2 : Folder
187 {
188 [propget]
189 HRESULT Self( [out, retval] FolderItem **ppfi );
190
191 [propget]
192 HRESULT OfflineStatus( [out, retval] LONG *pul );
193
194 HRESULT Synchronize();
195
196 [propget, id(1)]
197 HRESULT HaveToShowWebViewBarricade(
198 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade );
199
200 HRESULT DismissedWebViewBarricade();
201 }
202
203 /*****************************************************************************
204 * Folder3 interface
205 */
206 [
207 object,
208 uuid(a7ae5f64-c4d7-4d7f-9307-4d24ee54b841),
209 oleautomation,
210 dual
211 ]
212 interface Folder3 : Folder2
213 {
214 [propget, id(2)]
215 HRESULT ShowWebViewBarricade(
216 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade );
217
218 [propput, id(2)]
219 HRESULT ShowWebViewBarricade( [in] VARIANT_BOOL bShowWebViewBarricade );
220 }
221
222 /*****************************************************************************
223 * FolderItem interface
224 */
225 [
226 object,
227 uuid(fac32c80-cbe4-11ce-8350-444553540000),
228 oleautomation,
229 dual
230 ]
231 interface FolderItem : IDispatch
232 {
233 typedef FolderItem *LPFOLDERITEM;
234
235 [propget]
236 HRESULT Application( [out, retval] IDispatch **ppid );
237
238 [propget]
239 HRESULT Parent( [out, retval] IDispatch **ppid );
240
241 [propget, id(DISPID_VALUE)]
242 HRESULT Name( [out, retval] BSTR *pbs );
243
244 [propput, id(DISPID_VALUE)]
245 HRESULT Name( [in] BSTR bs );
246
247 [propget]
248 HRESULT Path( [out, retval] BSTR *pbs );
249
250 [propget]
251 HRESULT GetLink( [out, retval] IDispatch **ppid );
252
253 [propget]
254 HRESULT GetFolder( [out, retval] IDispatch **ppid );
255
256 [propget]
257 HRESULT IsLink( [out, retval] VARIANT_BOOL *pb );
258
259 [propget]
260 HRESULT IsFolder( [out, retval] VARIANT_BOOL *pb );
261
262 [propget]
263 HRESULT IsFileSystem( [out, retval] VARIANT_BOOL *pb );
264
265 [propget]
266 HRESULT IsBrowsable( [out, retval] VARIANT_BOOL *pb );
267
268 [propget]
269 HRESULT ModifyDate( [out, retval] DATE *pdt );
270
271 [propput]
272 HRESULT ModifyDate( [in] DATE dt );
273
274 [propget]
275 HRESULT Size( [out, retval] LONG *pul );
276
277 [propget]
278 HRESULT Type( [out, retval] BSTR *pbs );
279
280 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
281
282 HRESULT InvokeVerb( [in, optional] VARIANT vVerb );
283 }
284
285 /*****************************************************************************
286 * FolderItems interface
287 */
288 [
289 object,
290 uuid(744129e0-cbe5-11ce-8350-444553540000),
291 oleautomation,
292 dual
293 ]
294 interface FolderItems : IDispatch
295 {
296 [propget]
297 HRESULT Count( [out, retval] long *plCount );
298
299 [propget]
300 HRESULT Application( [out, retval] IDispatch **ppid );
301
302 [propget]
303 HRESULT Parent( [out, retval] IDispatch **ppid );
304
305 HRESULT Item( [in, optional] VARIANT index,
306 [out, retval] FolderItem **ppid );
307
308 [id(DISPID_NEWENUM)]
309 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
310 }
311
312 /*****************************************************************************
313 * FolderItemVerb interface
314 */
315 [
316 object,
317 uuid(08ec3e00-50b0-11cf-960c-0080c7f4ee85),
318 oleautomation,
319 dual
320 ]
321 interface FolderItemVerb : IDispatch
322 {
323 [propget]
324 HRESULT Application( [out, retval] IDispatch **ppid );
325
326 [propget]
327 HRESULT Parent( [out, retval] IDispatch **ppid );
328
329 [propget, id(DISPID_VALUE)]
330 HRESULT Name( [out, retval] BSTR *pbs );
331
332 HRESULT DoIt();
333 }
334
335 /*****************************************************************************
336 * FolderItemVerbs interface
337 */
338 [
339 object,
340 uuid(1f8352c0-50b0-11cf-960c-0080c7f4ee85),
341 oleautomation,
342 dual
343 ]
344 interface FolderItemVerbs : IDispatch
345 {
346 [propget]
347 HRESULT Count( [out, retval] long *plCount );
348
349 [propget]
350 HRESULT Application( [out, retval] IDispatch **ppid );
351
352 [propget]
353 HRESULT Parent( [out, retval] IDispatch **ppid );
354
355 HRESULT Item( [in, optional] VARIANT index,
356 [out, retval] FolderItemVerb **ppid );
357
358 [id(DISPID_NEWENUM)]
359 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
360 }
361
362 /*****************************************************************************
363 * IShellDispatch interface
364 */
365 [
366 object,
367 uuid(d8f015c0-c278-11ce-a49e-444553540000),
368 oleautomation,
369 hidden,
370 dual
371 ]
372 interface IShellDispatch : IDispatch
373 {
374 [propget]
375 HRESULT Application( [out, retval] IDispatch **ppid );
376
377 [propget]
378 HRESULT Parent( [out, retval] IDispatch **ppid );
379
380 HRESULT NameSpace( [in] VARIANT vDir, [out, retval] Folder **ppsdf );
381
382 HRESULT BrowseForFolder( [in] long Hwnd,
383 [in] BSTR Title,
384 [in] long Options,
385 [in, optional] VARIANT RootFolder,
386 [out, retval] Folder **ppsdf );
387
388 HRESULT Windows( [out, retval] IDispatch **ppid );
389
390 HRESULT Open( [in] VARIANT vDir );
391
392 HRESULT Explore( [in] VARIANT vDir );
393
394 HRESULT MinimizeAll();
395
396 HRESULT UndoMinimizeALL();
397
398 HRESULT FileRun();
399
400 HRESULT CascadeWindows();
401
402 HRESULT TileVertically();
403
404 HRESULT TileHorizontally();
405
406 HRESULT ShutdownWindows();
407
408 HRESULT Suspend();
409
410 HRESULT EjectPC();
411
412 HRESULT SetTime();
413
414 HRESULT TrayProperties();
415
416 HRESULT Help();
417
418 HRESULT FindFiles();
419
420 HRESULT FindComputer();
421
422 HRESULT RefreshMenu();
423
424 HRESULT ControlPanelItem( [in] BSTR szDir );
425 }
426
427 [
428 uuid(13709620-c279-11ce-a49e-444553540000)
429 ]
430 coclass Shell
431 {
432 [default] interface IShellDispatch;
433 }
434
435 [
436 uuid(0a89a860-d7b1-11ce-8350-444553540000),
437 hidden
438 ]
439 coclass ShellDispatchInproc
440 {
441 interface IUnknown;
442 }
443
444 typedef
445 [
446 uuid(ca31ea20-48d0-11cf-8350-444553540000)
447 ]
448 enum ShellSpecialFolderConstants {
449 ssfDESKTOP = 0x00,
450 ssfPROGRAMS = 0x02,
451 ssfCONTROLS = 0x03,
452 ssfPRINTERS = 0x04,
453 ssfPERSONAL = 0x05,
454 ssfFAVORITES = 0x06,
455 ssfSTARTUP = 0x07,
456 ssfRECENT = 0x08,
457 ssfSENDTO = 0x09,
458 ssfBITBUCKET = 0x0a,
459 ssfSTARTMENU = 0x0b,
460 ssfDESKTOPDIRECTORY = 0x10,
461 ssfDRIVES = 0x11,
462 ssfNETWORK = 0x12,
463 ssfNETHOOD = 0x13,
464 ssfFONTS = 0x14,
465 ssfTEMPLATES = 0x15,
466 ssfCOMMONSTARTMENU = 0x16,
467 ssfCOMMONPROGRAMS = 0x17,
468 ssfCOMMONSTARTUP = 0x18,
469 ssfCOMMONDESKTOPDIR = 0x19,
470 ssfAPPDATA = 0x1a,
471 ssfPRINTHOOD = 0x1b,
472 ssfLOCALAPPDATA = 0x1c,
473 ssfALTSTARTUP = 0x1d,
474 ssfCOMMONALTSTARTUP = 0x1e,
475 ssfCOMMONFAVORITES = 0x1f,
476 ssfINTERNETCACHE = 0x20,
477 ssfCOOKIES = 0x21,
478 ssfHISTORY = 0x22,
479 ssfCOMMONAPPDATA = 0x23,
480 ssfWINDOWS = 0x24,
481 ssfSYSTEM = 0x25,
482 ssfPROGRAMFILES = 0x26,
483 ssfMYPICTURES = 0x27,
484 ssfPROFILE = 0x28,
485 ssfSYSTEMx86 = 0x29,
486 ssfPROGRAMFILESx86 = 0x30
487 } ShellSpecialFolderConstants;
488
489 } /* library Shell32 */
490
491 /*****************************************************************************
492 * IAsyncOperation interface
493 */
494 [
495 uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4),
496 object,
497 ]
498
499 interface IAsyncOperation : IUnknown
500 {
501 typedef [unique] IAsyncOperation *LPASYNCOPERATION;
502
503 HRESULT SetAsyncMode([in] BOOL fDoOpAsync);
504
505 HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync);
506
507 HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved);
508
509 HRESULT InOperation([out] BOOL *pfInAsyncOp);
510
511 HRESULT EndOperation(
512 [in] HRESULT hResult,
513 [in, unique] IBindCtx *pbcReserved,
514 [in] DWORD dwEffects);
515 }