[PSDK] Update mmreg.h and rpcndr.h. CORE-13762
[reactos.git] / sdk / 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 "ocidl.idl";
22
23 #include <shdispid.h>
24
25 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
26 cpp_quote("#undef ShellExecute")
27 cpp_quote("#endif")
28
29 /*****************************************************************************
30 * IEnumACString interface
31 */
32 [
33 local,
34 object,
35 uuid(8e74c210-cf9d-4eaf-a403-7356428f0a5a),
36 pointer_default(unique)
37 ]
38 interface IEnumACString : IEnumString
39 {
40 typedef IEnumACString *PENUMACSTRING, *LPENUMACSTRING;
41
42 typedef enum _tagACENUMOPTION
43 {
44 ACEO_NONE = 0x00000000,
45 ACEO_MOSTRECENTFIRST = 0x00000001,
46 ACEO_FIRSTUNUSED = 0x00010000,
47 } ACENUMOPTION;
48
49 HRESULT NextItem( [out] LPWSTR pszUrl,
50 [in] ULONG cchMax,
51 [out] ULONG *pulSortIndex);
52
53 HRESULT SetEnumOptions( [in] DWORD dwOptions );
54
55 HRESULT GetEnumOptions( [out] DWORD *pdwOptions );
56 }
57
58 /*****************************************************************************
59 * IAutoComplete interface
60 */
61 [
62 local,
63 object,
64 uuid(00bb2762-6a77-11d0-a535-00c04fd7d062),
65 pointer_default(unique)
66 ]
67 interface IAutoComplete : IUnknown
68 {
69 typedef IAutoComplete *LPAUTOCOMPLETE;
70
71 HRESULT Init( [in] HWND hwndEdit,
72 [in] IUnknown *punkACL,
73 [in] LPCOLESTR pwszRegKeyPath,
74 [in] LPCOLESTR pwszQuickComplete);
75
76 HRESULT Enable( [in] BOOL fEnable );
77 }
78
79 /*****************************************************************************
80 * IAutoComplete2 interface
81 */
82 [
83 local,
84 object,
85 uuid(eac04bc0-3791-11d2-bb95-0060977b464c),
86 pointer_default(unique)
87 ]
88 interface IAutoComplete2 : IAutoComplete
89 {
90 typedef IAutoComplete2 *LPAUTOCOMPLETE2;
91
92 typedef enum _tagAUTOCOMPLETEOPTIONS
93 {
94 ACO_NONE = 0x00, /* No AutoComplete */
95 ACO_AUTOSUGGEST = 0x01, /* enable autosuggest dropdown */
96 ACO_AUTOAPPEND = 0x02, /* enable autoappend */
97 ACO_SEARCH = 0x04, /* add search entry to completion list */
98 ACO_FILTERPREFIXES = 0x08, /* don't match common prefixes (www., http://, etc) */
99 ACO_USETAB = 0x10, /* use tab to select autosuggest entries */
100 ACO_UPDOWNKEYDROPSLIST = 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */
101 ACO_RTLREADING = 0x40, /* enable RTL reading order for dropdown */
102 } AUTOCOMPLETEOPTIONS;
103
104 HRESULT SetOptions( [in] DWORD dwFlag);
105
106 HRESULT GetOptions( [out] DWORD *pdwFlag);
107 }
108
109 [
110 uuid(50a7e9b0-70ef-11d1-b75a-00a0c90564fe),
111 version(1.0)
112 ]
113 library Shell32
114 {
115
116 importlib("stdole2.tlb");
117
118 [
119 object,
120 oleautomation,
121 uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39),
122 pointer_default(unique)
123 ]
124 interface IFolderViewOC : IDispatch
125 {
126 HRESULT SetFolderView( [in] IDispatch *pdisp );
127 }
128
129 [
130 uuid(62112aa2-ebe4-11cf-a5fb-0020afe7292d)
131 ]
132 dispinterface DShellFolderViewEvents
133 {
134 properties:
135 methods:
136 [id(DISPID_SELECTIONCHANGED)]
137 void SelectionChanged();
138
139 [id(DISPID_FILELISTENUMDONE)]
140 void EnumDone();
141
142 [id(DISPID_VERBINVOKED)]
143 VARIANT_BOOL VerbInvoked();
144
145 [id(DISPID_DEFAULTVERBINVOKED)]
146 VARIANT_BOOL DefaultVerbInvoked();
147
148 [id(DISPID_BEGINDRAG)]
149 VARIANT_BOOL BeginDrag();
150 }
151
152 [
153 uuid(9ba05971-f6a8-11cf-a442-00a0c90a8f39),
154 hidden
155 ]
156 coclass ShellFolderViewOC
157 {
158 [default] interface IFolderViewOC;
159 [default, source] dispinterface DShellFolderViewEvents;
160 }
161
162 interface FolderItem;
163 interface FolderItems;
164 interface FolderItemVerb;
165 interface FolderItemVerbs;
166
167 /*****************************************************************************
168 * Folder interface
169 */
170 [
171 object,
172 uuid(bbcbde60-c3ff-11ce-8350-444553540000),
173 oleautomation,
174 dual
175 ]
176 interface Folder : IDispatch
177 {
178 [propget, id(DISPID_VALUE)]
179 HRESULT Title( [out, retval] BSTR *pbs );
180
181 [propget]
182 HRESULT Application( [out, retval] IDispatch **ppid );
183
184 [propget]
185 HRESULT Parent( [out, retval] IDispatch **ppid );
186
187 [propget]
188 HRESULT ParentFolder( [out, retval] Folder **ppsf );
189
190 HRESULT Items( [out, retval] FolderItems **ppid );
191
192 HRESULT ParseName( [in] BSTR bName, [out, retval] FolderItem **ppid );
193
194 HRESULT NewFolder( [in] BSTR bName, [in, optional] VARIANT vOptions );
195
196 HRESULT MoveHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
197
198 HRESULT CopyHere( [in] VARIANT vItem, [in, optional] VARIANT vOptions );
199
200 HRESULT GetDetailsOf( [in] VARIANT vItem,
201 [in] int iColumn,
202 [out, retval] BSTR *pbs );
203 }
204
205 /*****************************************************************************
206 * Folder2 interface
207 */
208 [
209 object,
210 uuid(f0d2d8ef-3890-11d2-bf8b-00c04fb93661),
211 oleautomation,
212 dual
213 ]
214 interface Folder2 : Folder
215 {
216 [propget]
217 HRESULT Self( [out, retval] FolderItem **ppfi );
218
219 [propget]
220 HRESULT OfflineStatus( [out, retval] LONG *pul );
221
222 HRESULT Synchronize();
223
224 [propget, id(1)]
225 HRESULT HaveToShowWebViewBarricade(
226 [out, retval] VARIANT_BOOL *pbHaveToShowWebViewBarricade );
227
228 HRESULT DismissedWebViewBarricade();
229 }
230
231 /*****************************************************************************
232 * Folder3 interface
233 */
234 [
235 object,
236 uuid(a7ae5f64-c4d7-4d7f-9307-4d24ee54b841),
237 oleautomation,
238 dual
239 ]
240 interface Folder3 : Folder2
241 {
242 [propget, id(2)]
243 HRESULT ShowWebViewBarricade(
244 [out, retval] VARIANT_BOOL *pbShowWebViewBarricade );
245
246 [propput, id(2)]
247 HRESULT ShowWebViewBarricade( [in] VARIANT_BOOL bShowWebViewBarricade );
248 }
249
250 /*****************************************************************************
251 * FolderItem interface
252 */
253 [
254 object,
255 uuid(fac32c80-cbe4-11ce-8350-444553540000),
256 oleautomation,
257 dual
258 ]
259 interface FolderItem : IDispatch
260 {
261 typedef FolderItem *LPFOLDERITEM;
262
263 [propget]
264 HRESULT Application( [out, retval] IDispatch **ppid );
265
266 [propget]
267 HRESULT Parent( [out, retval] IDispatch **ppid );
268
269 [propget, id(DISPID_VALUE)]
270 HRESULT Name( [out, retval] BSTR *pbs );
271
272 [propput, id(DISPID_VALUE)]
273 HRESULT Name( [in] BSTR bs );
274
275 [propget]
276 HRESULT Path( [out, retval] BSTR *pbs );
277
278 [propget]
279 HRESULT GetLink( [out, retval] IDispatch **ppid );
280
281 [propget]
282 HRESULT GetFolder( [out, retval] IDispatch **ppid );
283
284 [propget]
285 HRESULT IsLink( [out, retval] VARIANT_BOOL *pb );
286
287 [propget]
288 HRESULT IsFolder( [out, retval] VARIANT_BOOL *pb );
289
290 [propget]
291 HRESULT IsFileSystem( [out, retval] VARIANT_BOOL *pb );
292
293 [propget]
294 HRESULT IsBrowsable( [out, retval] VARIANT_BOOL *pb );
295
296 [propget]
297 HRESULT ModifyDate( [out, retval] DATE *pdt );
298
299 [propput]
300 HRESULT ModifyDate( [in] DATE dt );
301
302 [propget]
303 HRESULT Size( [out, retval] LONG *pul );
304
305 [propget]
306 HRESULT Type( [out, retval] BSTR *pbs );
307
308 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
309
310 HRESULT InvokeVerb( [in, optional] VARIANT vVerb );
311 }
312
313 [
314 object,
315 uuid(edc817aa-92b8-11d1-b075-00c04fc33aa5),
316 oleautomation,
317 dual
318 ]
319 interface FolderItem2 : FolderItem
320 {
321 HRESULT InvokeVerbEx( [in, optional] VARIANT vVerb, [in, optional] VARIANT vArgs );
322
323 HRESULT ExtendedProperty( [in] BSTR sPropName, [out, retval] VARIANT *pvRet );
324 }
325
326 [
327 uuid(2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e)
328 ]
329 coclass ShellFolderItem
330 {
331 interface FolderItem2;
332 }
333
334 /*****************************************************************************
335 * FolderItems interface
336 */
337 [
338 object,
339 uuid(744129e0-cbe5-11ce-8350-444553540000),
340 oleautomation,
341 dual
342 ]
343 interface FolderItems : IDispatch
344 {
345 [propget]
346 HRESULT Count( [out, retval] long *plCount );
347
348 [propget]
349 HRESULT Application( [out, retval] IDispatch **ppid );
350
351 [propget]
352 HRESULT Parent( [out, retval] IDispatch **ppid );
353
354 HRESULT Item( [in, optional] VARIANT index,
355 [out, retval] FolderItem **ppid );
356
357 [id(DISPID_NEWENUM)]
358 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
359 }
360
361 /*****************************************************************************
362 * FolderItems2 interface
363 */
364 [
365 uuid(c94f0ad0-f363-11d2-a327-00c04f8eec7f),
366 oleautomation,
367 dual
368 ]
369 interface FolderItems2 : FolderItems
370 {
371 HRESULT InvokeVerbEx( [in, optional] VARIANT verb,
372 [in, optional] VARIANT args );
373 }
374
375 /*****************************************************************************
376 * FolderItems3 interface
377 */
378 [
379 uuid(eaa7c309-bbec-49d5-821d-64d966cb667f),
380 oleautomation,
381 dual
382 ]
383 interface FolderItems3 : FolderItems2
384 {
385 HRESULT Filter( [in] long flags, [in] BSTR spec );
386
387 [id(0), propget]
388 HRESULT Verbs( [out, retval] FolderItemVerbs **ppfic );
389 }
390
391 /*****************************************************************************
392 * FolderItemVerb interface
393 */
394 [
395 object,
396 uuid(08ec3e00-50b0-11cf-960c-0080c7f4ee85),
397 oleautomation,
398 dual
399 ]
400 interface FolderItemVerb : IDispatch
401 {
402 [propget]
403 HRESULT Application( [out, retval] IDispatch **ppid );
404
405 [propget]
406 HRESULT Parent( [out, retval] IDispatch **ppid );
407
408 [propget, id(DISPID_VALUE)]
409 HRESULT Name( [out, retval] BSTR *pbs );
410
411 HRESULT DoIt();
412 }
413
414 /*****************************************************************************
415 * FolderItemVerbs interface
416 */
417 [
418 object,
419 uuid(1f8352c0-50b0-11cf-960c-0080c7f4ee85),
420 oleautomation,
421 dual
422 ]
423 interface FolderItemVerbs : IDispatch
424 {
425 [propget]
426 HRESULT Count( [out, retval] long *plCount );
427
428 [propget]
429 HRESULT Application( [out, retval] IDispatch **ppid );
430
431 [propget]
432 HRESULT Parent( [out, retval] IDispatch **ppid );
433
434 HRESULT Item( [in, optional] VARIANT index,
435 [out, retval] FolderItemVerb **ppid );
436
437 [id(DISPID_NEWENUM)]
438 HRESULT _NewEnum( [out, retval] IUnknown **ppunk );
439 }
440
441 /*****************************************************************************
442 * IShellDispatch interface
443 */
444 [
445 object,
446 uuid(d8f015c0-c278-11ce-a49e-444553540000),
447 oleautomation,
448 hidden,
449 dual
450 ]
451 interface IShellDispatch : IDispatch
452 {
453 [propget]
454 HRESULT Application( [out, retval] IDispatch **ppid );
455
456 [propget]
457 HRESULT Parent( [out, retval] IDispatch **ppid );
458
459 HRESULT NameSpace( [in] VARIANT vDir, [out, retval] Folder **ppsdf );
460
461 HRESULT BrowseForFolder( [in] long Hwnd,
462 [in] BSTR Title,
463 [in] long Options,
464 [in, optional] VARIANT RootFolder,
465 [out, retval] Folder **ppsdf );
466
467 HRESULT Windows( [out, retval] IDispatch **ppid );
468
469 HRESULT Open( [in] VARIANT vDir );
470
471 HRESULT Explore( [in] VARIANT vDir );
472
473 HRESULT MinimizeAll();
474
475 HRESULT UndoMinimizeALL();
476
477 HRESULT FileRun();
478
479 HRESULT CascadeWindows();
480
481 HRESULT TileVertically();
482
483 HRESULT TileHorizontally();
484
485 HRESULT ShutdownWindows();
486
487 HRESULT Suspend();
488
489 HRESULT EjectPC();
490
491 HRESULT SetTime();
492
493 HRESULT TrayProperties();
494
495 HRESULT Help();
496
497 HRESULT FindFiles();
498
499 HRESULT FindComputer();
500
501 HRESULT RefreshMenu();
502
503 HRESULT ControlPanelItem( [in] BSTR szDir );
504 }
505
506 [
507 object,
508 uuid(a4c6892c-3ba9-11d2-9dea-00c04fb16162),
509 oleautomation,
510 hidden,
511 dual,
512 ]
513 interface IShellDispatch2 : IShellDispatch
514 {
515 HRESULT IsRestricted([in] BSTR group, [in] BSTR restriction, [out, retval] long *value);
516 HRESULT ShellExecute([in] BSTR file, [in, optional] VARIANT args, [in, optional] VARIANT dir,
517 [in, optional] VARIANT op, [in, optional] VARIANT show);
518 HRESULT FindPrinter([in, optional] BSTR name, [in, optional] BSTR location, [in, optional] BSTR model);
519 HRESULT GetSystemInformation([in] BSTR name, [out, retval] VARIANT *ret);
520 HRESULT ServiceStart([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
521 HRESULT ServiceStop([in] BSTR service, [in] VARIANT persistent, [out, retval] VARIANT *ret);
522 HRESULT IsServiceRunning([in] BSTR service, [out, retval] VARIANT *running);
523 HRESULT CanStartStopService([in] BSTR service, [out, retval] VARIANT *ret);
524 HRESULT ShowBrowserBar([in] BSTR clsid, [in] VARIANT show, [out, retval] VARIANT *ret);
525 }
526
527 [
528 uuid(177160ca-bb5a-411c-841d-bd38facdeaa0),
529 oleautomation,
530 hidden,
531 dual
532 ]
533 interface IShellDispatch3 : IShellDispatch2
534 {
535 HRESULT AddToRecent([in] VARIANT file, [in, optional] BSTR category);
536 }
537
538 [
539 uuid(efd84b2d-4bcf-4298-be25-eb542a59fbda),
540 oleautomation,
541 hidden,
542 dual
543 ]
544 interface IShellDispatch4 : IShellDispatch3
545 {
546 HRESULT WindowsSecurity();
547 HRESULT ToggleDesktop();
548 HRESULT ExplorerPolicy([in] BSTR policy, [out, retval] VARIANT *value);
549 HRESULT GetSetting([in] long setting, [out,retval] VARIANT_BOOL *result);
550 }
551
552 [
553 uuid(866738b9-6cf2-4de8-8767-f794ebe74f4e),
554 oleautomation,
555 hidden,
556 dual
557 ]
558 interface IShellDispatch5 : IShellDispatch4
559 {
560 HRESULT WindowSwitcher();
561 }
562
563 [
564 uuid(286e6f1b-7113-4355-9562-96b7e9d64c54),
565 oleautomation,
566 hidden,
567 dual,
568 ]
569 interface IShellDispatch6 : IShellDispatch5
570 {
571 HRESULT SearchCommand(void);
572 }
573
574 [
575 uuid(13709620-c279-11ce-a49e-444553540000)
576 ]
577 coclass Shell
578 {
579 [default] interface IShellDispatch2;
580 }
581
582 [
583 uuid(0a89a860-d7b1-11ce-8350-444553540000),
584 hidden
585 ]
586 coclass ShellDispatchInproc
587 {
588 interface IUnknown;
589 }
590
591 typedef
592 [
593 uuid(ca31ea20-48d0-11cf-8350-444553540000)
594 ]
595 enum ShellSpecialFolderConstants {
596 ssfDESKTOP = 0x00,
597 ssfPROGRAMS = 0x02,
598 ssfCONTROLS = 0x03,
599 ssfPRINTERS = 0x04,
600 ssfPERSONAL = 0x05,
601 ssfFAVORITES = 0x06,
602 ssfSTARTUP = 0x07,
603 ssfRECENT = 0x08,
604 ssfSENDTO = 0x09,
605 ssfBITBUCKET = 0x0a,
606 ssfSTARTMENU = 0x0b,
607 ssfDESKTOPDIRECTORY = 0x10,
608 ssfDRIVES = 0x11,
609 ssfNETWORK = 0x12,
610 ssfNETHOOD = 0x13,
611 ssfFONTS = 0x14,
612 ssfTEMPLATES = 0x15,
613 ssfCOMMONSTARTMENU = 0x16,
614 ssfCOMMONPROGRAMS = 0x17,
615 ssfCOMMONSTARTUP = 0x18,
616 ssfCOMMONDESKTOPDIR = 0x19,
617 ssfAPPDATA = 0x1a,
618 ssfPRINTHOOD = 0x1b,
619 ssfLOCALAPPDATA = 0x1c,
620 ssfALTSTARTUP = 0x1d,
621 ssfCOMMONALTSTARTUP = 0x1e,
622 ssfCOMMONFAVORITES = 0x1f,
623 ssfINTERNETCACHE = 0x20,
624 ssfCOOKIES = 0x21,
625 ssfHISTORY = 0x22,
626 ssfCOMMONAPPDATA = 0x23,
627 ssfWINDOWS = 0x24,
628 ssfSYSTEM = 0x25,
629 ssfPROGRAMFILES = 0x26,
630 ssfMYPICTURES = 0x27,
631 ssfPROFILE = 0x28,
632 ssfSYSTEMx86 = 0x29,
633 ssfPROGRAMFILESx86 = 0x30
634 } ShellSpecialFolderConstants;
635
636 /*****************************************************************************
637 * IShellFolderViewDual interface
638 */
639 typedef
640 [
641 uuid(742a99a0-c77e-11d0-a32c-00a0c91eedba)
642 ]
643 enum ShellFolderViewOptions
644 {
645 SFVVO_SHOWALLOBJECTS = 0x00000001,
646 SFVVO_SHOWEXTENSIONS = 0x00000002,
647 SFVVO_SHOWCOMPCOLOR = 0x00000008,
648 SFVVO_SHOWSYSFILES = 0x00000020,
649 SFVVO_WIN95CLASSIC = 0x00000040,
650 SFVVO_DOUBLECLICKINWEBVIEW = 0x00000080,
651 SFVVO_DESKTOPHTML = 0x00000200
652 } ShellFolderViewOptions;
653
654 [
655 uuid(e7a1af80-4d96-11cf-960c-0080c7f4ee85),
656 oleautomation,
657 hidden,
658 dual
659 ]
660 interface IShellFolderViewDual : IDispatch
661 {
662 [propget]
663 HRESULT Application([out, retval] IDispatch **app);
664
665 [propget]
666 HRESULT Parent([out, retval] IDispatch **parent);
667
668 [propget]
669 HRESULT Folder([out, retval] Folder **folder);
670
671 HRESULT SelectedItems([out, retval] FolderItems **items);
672
673 [propget]
674 HRESULT FocusedItem([out, retval] FolderItem **item);
675
676 HRESULT SelectItem([in] VARIANT *item, [in] int flags);
677
678 HRESULT PopupItemMenu([in] FolderItem *item,
679 [in, optional] VARIANT vx,
680 [in, optional] VARIANT vy,
681 [out, retval] BSTR *command);
682 [propget]
683 HRESULT Script([out, retval] IDispatch **script);
684
685 [propget]
686 HRESULT ViewOptions([out, retval] long *options);
687 }
688
689 [
690 uuid(31c147b6-0ade-4a3c-b514-ddf932ef6d17),
691 oleautomation,
692 hidden,
693 dual
694 ]
695 interface IShellFolderViewDual2 : IShellFolderViewDual
696 {
697 [propget]
698 HRESULT CurrentViewMode([out, retval] UINT *mode);
699
700 [propput]
701 HRESULT CurrentViewMode([in] UINT mode);
702
703 HRESULT SelectItemRelative([in] int relative);
704 }
705
706 [
707 uuid(29ec8e6c-46d3-411f-baaa-611a6c9cac66),
708 oleautomation,
709 hidden,
710 dual
711 ]
712 interface IShellFolderViewDual3 : IShellFolderViewDual2
713 {
714 [propget]
715 HRESULT GroupBy([out, retval] BSTR *groupby);
716
717 [propput]
718 HRESULT GroupBy([in] BSTR groupby);
719
720 [propget]
721 HRESULT FolderFlags([out, retval] DWORD *flags);
722
723 [propput]
724 HRESULT FolderFlags([in] DWORD flags);
725
726 [propget]
727 HRESULT SortColumns([out, retval] BSTR *sortcolumns);
728
729 [propput]
730 HRESULT SortColumns([in] BSTR sortcolumns);
731
732 [propput]
733 HRESULT IconSize([in] int icon_size);
734
735 [propget]
736 HRESULT IconSize([out, retval] int *icon_size);
737
738 HRESULT FilterView([in, unique] BSTR filter_text);
739 }
740
741 [
742 uuid(62112aa1-ebe4-11cf-a5fb-0020afe7292d)
743 ]
744 coclass ShellFolderView
745 {
746 [default] interface IShellFolderViewDual3;
747 [default, source] dispinterface DShellFolderViewEvents;
748 }
749
750 } /* library Shell32 */
751
752 /*****************************************************************************
753 * IAsyncOperation interface
754 */
755 [
756 uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4),
757 object,
758 ]
759
760 interface IAsyncOperation : IUnknown
761 {
762 typedef [unique] IAsyncOperation *LPASYNCOPERATION;
763
764 HRESULT SetAsyncMode([in] BOOL fDoOpAsync);
765
766 HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync);
767
768 HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved);
769
770 HRESULT InOperation([out] BOOL *pfInAsyncOp);
771
772 HRESULT EndOperation(
773 [in] HRESULT hResult,
774 [in, unique] IBindCtx *pbcReserved,
775 [in] DWORD dwEffects);
776 }