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