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