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