advapi32: Implement EnumServicesStatusExA/W.
[wine] / include / exdisp.idl
1 /*
2  * Defines the COM interfaces and APIs related to the IE Web browser
3  *
4  * Copyright (C) 2001 John R. Sheets (for CodeWeavers)
5  * Copyright (C) 2003 Alexandre Julliard
6  * Copyright (C) 2004 Jacek Caban
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21  */
22
23 import "ocidl.idl";
24 import "docobj.idl";
25
26 #include <olectl.h>
27 #include <exdispid.h>
28
29 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
30 cpp_quote("#undef FindText")
31 cpp_quote("#endif")
32
33 /*****************************************************************************
34  * SHDocVw library
35  */
36 [
37     uuid(EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B),
38     version(1.1),
39     helpstring("Microsoft Internet Controls")
40 ]
41 library SHDocVw
42 {
43
44 importlib("stdole2.tlb");
45
46
47 /*****************************************************************************
48  * IWebBrowser interface
49  */
50 [
51     object,
52     oleautomation,
53     uuid(eab22ac1-30c1-11cf-a7eb-0000c05bae0b),
54     hidden,
55     dual
56 ]
57 interface IWebBrowser : IDispatch
58 {
59     typedef enum BrowserNavConstants
60     {
61         navOpenInNewWindow   = 0x1,
62         navNoHistory         = 0x2,
63         navNoReadFromCache   = 0x4,
64         navNoWriteToCache    = 0x8,
65         navAllowAutosearch   = 0x10,
66         navBrowserBar        = 0x20,
67         navHyperlink         = 0x40,
68         navEnforceRestricted = 0x80
69     } BrowserNavConstants;
70
71     typedef enum RefreshConstants
72     {
73         REFRESH_NORMAL     = 0,
74         REFRESH_IFEXPIRED  = 1,
75         REFRESH_COMPLETELY = 3
76     } RefreshConstants;
77
78     [id(100)] HRESULT GoBack();
79     [id(101)] HRESULT GoForward();
80     [id(102)] HRESULT GoHome();
81     [id(103)] HRESULT GoSearch();
82
83     [id(104)]
84     HRESULT Navigate(
85         [in] BSTR URL,
86         [in, optional] VARIANT *Flags,
87         [in, optional] VARIANT *TargetFrameName,
88         [in, optional] VARIANT *PostData,
89         [in, optional] VARIANT *Headers);
90
91     [id(DISPID_REFRESH)] HRESULT Refresh();
92     [id(105)] HRESULT Refresh2([in, optional] VARIANT *Level);
93     [id(106)] HRESULT Stop();
94     [id(200), propget] HRESULT Application([out, retval] IDispatch** ppDisp);
95     [id(201), propget] HRESULT Parent([out, retval] IDispatch** ppDisp);
96     [id(202), propget] HRESULT Container([out, retval] IDispatch** ppDisp);
97     [id(203), propget] HRESULT Document([out, retval] IDispatch** ppDisp);
98     [id(204), propget] HRESULT TopLevelContainer([out, retval] VARIANT_BOOL* pBool);
99     [id(205), propget] HRESULT Type([out, retval] BSTR* Type);
100     [id(206), propget] HRESULT Left([out, retval] long *pl);
101     [id(206), propput] HRESULT Left([in] long Left);
102     [id(207), propget] HRESULT Top([out, retval] long *pl);
103     [id(207), propput] HRESULT Top([in] long Top);
104     [id(208), propget] HRESULT Width([out, retval] long *pl);
105     [id(208), propput] HRESULT Width([in] long Width);
106     [id(209), propget] HRESULT Height([out, retval] long *pl);
107     [id(209), propput] HRESULT Height([in] long Height);
108     [id(210), propget] HRESULT LocationName([out, retval] BSTR *LocationName);
109     [id(211), propget] HRESULT LocationURL([out, retval] BSTR *LocationURL);
110     [id(212), propget] HRESULT Busy([out, retval] VARIANT_BOOL *pBool);
111 }
112
113 /*****************************************************************************
114  * DWebBrowserEvents dispinterface
115  */
116 [
117     uuid(eab22ac2-30c1-11CF-a7eb-0000C05bae0b),
118     hidden
119 ]
120 dispinterface DWebBrowserEvents
121 {
122     properties:
123     methods:
124     [id(DISPID_BEFORENAVIGATE)]
125     void BeforeNavigate(
126         [in] BSTR URL,
127         long Flags,
128         BSTR TargetFrameName,
129         VARIANT *PostData,
130         BSTR Headers,
131         [in, out] VARIANT_BOOL *Cancel);
132
133     [id(DISPID_NAVIGATECOMPLETE)]
134     void NavigateComplete([in] BSTR URL);
135
136     [id(DISPID_STATUSTEXTCHANGE)]
137     void StatusTextChange([in] BSTR Text);
138
139     [id(DISPID_PROGRESSCHANGE)]
140     void ProgressChange([in] long Progress, [in] long ProgressMax);
141
142     [id(DISPID_DOWNLOADCOMPLETE)]
143     void DownloadComplete();
144
145     [id(DISPID_COMMANDSTATECHANGE)]
146     void CommandStateChange([in] long Command, [in]VARIANT_BOOL Enable);
147
148     [id(DISPID_DOWNLOADBEGIN)]
149     void DownloadBegin();
150
151     [id(DISPID_NEWWINDOW)]
152     void NewWindow(
153         [in] BSTR URL,
154         [in] long Flags,
155         [in] BSTR TargetFrameName,
156         [in] VARIANT *PostData,
157         [in] BSTR Headers,
158         [in,out] VARIANT_BOOL *Processed);
159
160     [id(DISPID_TITLECHANGE)]
161     void TitleChange([in] BSTR Text);
162
163     [id(DISPID_FRAMEBEFORENAVIGATE)]
164     void FrameBeforeNavigate(
165         [in] BSTR URL,
166         long Flags,
167         BSTR TargetFrameName,
168         VARIANT *PostData,
169         BSTR Headers,
170         [in, out]VARIANT_BOOL *Cancel);
171
172     [id(DISPID_FRAMENAVIGATECOMPLETE)]
173     void FrameNavigateComplete([in] BSTR URL);
174
175     [id(DISPID_FRAMENEWWINDOW)]
176     void FrameNewWindow(
177         [in] BSTR URL,
178         [in] long Flags,
179         [in] BSTR TargetFrameName,
180         [in] VARIANT *PostData,
181         [in] BSTR Headers,
182         [in,out] VARIANT_BOOL *Processed);
183
184     [id(DISPID_QUIT)]
185     void Quit([in, out] VARIANT_BOOL *Cancel);
186
187     [id(DISPID_WINDOWMOVE)]
188     void WindowMove();
189
190     [id(DISPID_WINDOWRESIZE)]
191     void WindowResize();
192
193     [id(DISPID_WINDOWACTIVATE)]
194     void WindowActivate();
195
196     [id(DISPID_PROPERTYCHANGE)]
197     void PropertyChange([in] BSTR Property);
198 }
199
200 typedef
201 [
202     uuid(34a226e0-df30-11cf-89a9-00a0c9054129)
203 ]
204 enum CommandStateChangeConstants {
205     CSC_UPDATECOMMANDS  = -1,
206     CSC_NAVIGATEFORWARD = 1,
207     CSC_NAVIGATEBACK    = 2
208 } CommandStateChangeConstants;
209
210 /*****************************************************************************
211  * IWebBrowserApp interface
212  */
213 [
214     object,
215     oleautomation,
216     uuid(0002df05-0000-0000-c000-000000000046),
217     hidden,
218     dual
219 ]
220 interface IWebBrowserApp : IWebBrowser
221 {
222     [id(300)] HRESULT Quit();
223     [id(301)] HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy);
224     [id(302)] HRESULT PutProperty([in] BSTR Property, [in] VARIANT vtValue);
225     [id(303)] HRESULT GetProperty([in] BSTR Property, [out, retval] VARIANT *pvtValue);
226     [id(0), propget] HRESULT Name([out, retval] BSTR* Name);
227     [id(DISPID_HWND), propget] HRESULT HWND([out, retval] long *pHWND);
228     [id(400), propget] HRESULT FullName([out, retval] BSTR* FullName);
229     [id(401), propget] HRESULT Path([out, retval] BSTR* Path);
230     [id(402), propget] HRESULT Visible([out, retval] VARIANT_BOOL* pBool);
231     [id(402), propput] HRESULT Visible([in] VARIANT_BOOL Value);
232     [id(403), propget] HRESULT StatusBar([out, retval] VARIANT_BOOL* pBool);
233     [id(403), propput] HRESULT StatusBar([in] VARIANT_BOOL Value);
234     [id(404), propget] HRESULT StatusText([out, retval] BSTR *StatusText);
235     [id(404), propput] HRESULT StatusText([in] BSTR StatusText);
236     [id(405), propget] HRESULT ToolBar([out, retval] int * Value);
237     [id(405), propput] HRESULT ToolBar([in] int Value);
238     [id(406), propget] HRESULT MenuBar([out, retval] VARIANT_BOOL *Value);
239     [id(406), propput] HRESULT MenuBar([in] VARIANT_BOOL Value);
240     [id(407), propget] HRESULT FullScreen([out, retval] VARIANT_BOOL *pbFullScreen);
241     [id(407), propput] HRESULT FullScreen([in] VARIANT_BOOL bFullScreen);
242 }
243
244 /*****************************************************************************
245  * IWebBrowser2 interface
246  */
247 [
248     object,
249     oleautomation,
250     uuid(d30c1661-cdaf-11d0-8a3e-00c04fc9e26e),
251     hidden,
252     dual
253 ]
254 interface IWebBrowser2 : IWebBrowserApp
255 {
256     [id(500)] HRESULT Navigate2(
257         [in] VARIANT *URL,
258         [in, optional] VARIANT *Flags,
259         [in, optional] VARIANT *TargetFrameName,
260         [in, optional] VARIANT *PostData,
261         [in, optional] VARIANT *Headers);
262
263     [id(501)] HRESULT QueryStatusWB(
264         [in] OLECMDID cmdID,
265         [out, retval] OLECMDF *pcmdf);
266
267     [id(502)] HRESULT ExecWB(
268         [in] OLECMDID cmdID,
269         [in] OLECMDEXECOPT cmdexecopt,
270         [in, optional] VARIANT *pvaIn,
271         [out, in, optional] VARIANT *pvaOut);
272
273     [id(503)] HRESULT ShowBrowserBar(
274         [in] VARIANT *pvaClsid,
275         [in, optional] VARIANT *pvarShow,
276         [in, optional] VARIANT *pvarSize);
277
278     [id(DISPID_READYSTATE), propget, bindable]
279     HRESULT ReadyState([out, retval] READYSTATE *plReadyState);
280
281     [id(550), propget] HRESULT Offline([out, retval] VARIANT_BOOL *pbOffline);
282     [id(550), propput] HRESULT Offline([in] VARIANT_BOOL bOffline);
283     [id(551), propget] HRESULT Silent([out, retval] VARIANT_BOOL *pbSilent);
284     [id(551), propput] HRESULT Silent([in] VARIANT_BOOL bSilent);
285     [id(552), propget] HRESULT RegisterAsBrowser([out, retval] VARIANT_BOOL *pbRegister);
286     [id(552), propput] HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister);
287     [id(553), propget] HRESULT RegisterAsDropTarget([out, retval] VARIANT_BOOL *pbRegister);
288     [id(553), propput] HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister);
289     [id(554), propget] HRESULT TheaterMode([out, retval] VARIANT_BOOL *pbRegister);
290     [id(554), propput] HRESULT TheaterMode([in] VARIANT_BOOL bRegister);
291     [id(555), propget] HRESULT AddressBar([out, retval] VARIANT_BOOL *Value);
292     [id(555), propput] HRESULT AddressBar([in] VARIANT_BOOL Value);
293     [id(556), propget] HRESULT Resizable([out, retval] VARIANT_BOOL *Value);
294     [id(556), propput] HRESULT Resizable([in] VARIANT_BOOL Value);
295 }
296
297 typedef
298 [
299     uuid(65507be0-91a8-11d3-a845-009027220e6d)
300 ]
301 enum SecureLockIconConstants {
302     secureLockIconUnsecure          = 0,
303     secureLockIconMixed             = 1,
304     secureLockIconSecureUnknownBits = 2,
305     secureLockIconSecure40Bit       = 3,
306     secureLockIconSecure56Bit       = 4,
307     secureLockIconSecureFortezza    = 5,
308     secureLockIconSecure128Bit      = 6
309 } SecureLockIconConstants;
310
311 /*****************************************************************************
312  * DWebBrowserEvents2 dispinterface
313  */
314 [
315     uuid(34a715a0-6587-11d0-924a-0020afc7ac4d),
316     hidden
317 ]
318 dispinterface DWebBrowserEvents2
319 {
320     properties:
321     methods:
322     [id(DISPID_STATUSTEXTCHANGE)]
323     void StatusTextChange([in] BSTR Text);
324
325     [id(DISPID_PROGRESSCHANGE)]
326     void ProgressChange([in] long Progress, [in] long ProgressMax);
327
328     [id(DISPID_COMMANDSTATECHANGE)]
329     void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable);
330
331     [id(DISPID_DOWNLOADBEGIN)]
332     void DownloadBegin();
333
334     [id(DISPID_DOWNLOADCOMPLETE)]
335     void DownloadComplete();
336
337     [id(DISPID_TITLECHANGE)]
338     void TitleChange([in] BSTR Text);
339
340     [id(DISPID_PROPERTYCHANGE)]
341     void PropertyChange([in] BSTR szProperty);
342
343     [id(DISPID_BEFORENAVIGATE2)]
344     void BeforeNavigate2(
345         [in] IDispatch *pDisp,
346         [in] VARIANT *URL,
347         [in] VARIANT *Flags,
348         [in] VARIANT *TargetFrameName,
349         [in] VARIANT *PostData,
350         [in] VARIANT *Headers,
351         [in, out] VARIANT_BOOL *Cancel);
352
353     [id(DISPID_NEWWINDOW2)]
354     void NewWindow2([in, out] IDispatch **ppDisp, [in, out] VARIANT_BOOL *Cancel);
355
356     [id(DISPID_NAVIGATECOMPLETE2)]
357     void NavigateComplete2([in] IDispatch *pDisp, [in] VARIANT *URL);
358
359     [id(DISPID_DOCUMENTCOMPLETE)]
360     void DocumentComplete([in] IDispatch *pDisp, [in] VARIANT *URL);
361
362     [id(DISPID_ONQUIT)]
363     void OnQuit();
364
365     [id(DISPID_ONVISIBLE)]
366     void OnVisible([in] VARIANT_BOOL Visible);
367
368     [id(DISPID_ONTOOLBAR)]
369     void OnToolBar([in] VARIANT_BOOL ToolBar);
370
371     [id(DISPID_ONMENUBAR)]
372     void OnMenuBar([in] VARIANT_BOOL MenuBar);
373
374     [id(DISPID_ONSTATUSBAR)]
375     void OnStatusBar([in] VARIANT_BOOL StatusBar);
376
377     [id(DISPID_ONFULLSCREEN)]
378     void OnFullScreen([in] VARIANT_BOOL FullScreen);
379
380     [id(DISPID_ONTHEATERMODE)]
381     void OnTheaterMode([in] VARIANT_BOOL TheaterMode);
382
383     [id(DISPID_WINDOWSETRESIZABLE)]
384     void WindowSetResizable([in] VARIANT_BOOL Resizable);
385
386     [id(DISPID_WINDOWSETLEFT)]
387     void WindowSetLeft([in] long Left);
388
389     [id(DISPID_WINDOWSETTOP)]
390     void WindowSetTop([in] long Top);
391
392     [id(DISPID_WINDOWSETWIDTH)]
393     void WindowSetWidth([in] long Width);
394
395     [id(DISPID_WINDOWSETHEIGHT)]
396     void WindowSetHeight([in] long Height);
397
398     [id(DISPID_WINDOWCLOSING)]
399     void WindowClosing(
400             [in] VARIANT_BOOL IsChildWindow,
401             [in, out] VARIANT_BOOL *Cancel);
402
403     [id(DISPID_CLIENTTOHOSTWINDOW)]
404     void ClientToHostWindow(
405             [in, out] long *CX,
406             [in, out] long *CY);
407
408     [id(DISPID_SETSECURELOCKICON)]
409     void SetSecureLockIcon([in] long SecureLockIcon);
410
411     [id(DISPID_FILEDOWNLOAD)]
412     void FileDownload(
413             [in] VARIANT_BOOL ActiveDocument,
414             [in, out] VARIANT_BOOL *Cancel);
415
416     [id(DISPID_NAVIGATEERROR)]
417     void NavigateError(
418             [in] IDispatch *pDisp,
419             [in] VARIANT *URL,
420             [in] VARIANT *Frame,
421             [in] VARIANT *StatusCode,
422             [in, out] VARIANT_BOOL *Cancel);
423
424     [id(DISPID_PRINTTEMPLATEINSTANTIATION)]
425     void PrintTemplateInstantiation([in] IDispatch *pDisp);
426
427     [id(DISPID_PRINTTEMPLATETEARDOWN)]
428     void PrintTemplateTeardown([in] IDispatch *pDisp);
429
430     [id(DISPID_UPDATEPAGESTATUS)]
431     void UpdatePageStatus(
432             [in] IDispatch *pDisp,
433             [in] VARIANT *nPage,
434             [in] VARIANT *fDone);
435
436     [id(DISPID_PRIVACYIMPACTEDSTATECHANGE)]
437     void PrivacyImpactedStateChange([in] VARIANT_BOOL bImpacted);
438
439     [id(DISPID_NEWWINDOW3)]
440     void NewWindow3(
441             [in, out] IDispatch **ppDisp,
442             [in, out] VARIANT_BOOL *Cancel,
443             [in] DWORD dwFlags,
444             [in] BSTR bstrUrlContext,
445             [in] BSTR bstrUrl);
446
447     [id(DISPID_SETPHISHINGFILTERSTATUS)]
448     void SetPhishingFilterStatus([in] long PhishingFilterStatus);
449
450     [id(DISPID_WINDOWSTATECHANGED)]
451     void WindowStateChanged(
452             [in] DWORD dwWindowStateFlags,
453             [in] DWORD dwValidFlagsMask);
454
455     [id(DISPID_NEWPROCESS)]
456     void NewProcess(
457             [in] long lCauseFlag,
458             [in] IDispatch *pWB2,
459             [in, out] VARIANT_BOOL *Cancel);
460
461     [id(DISPID_THIRDPARTYURLBLOCKED)]
462     void ThirdPartyUrlBlocked(
463             [in] VARIANT *URL,
464             [in] DWORD dwCount);
465
466     [id(DISPID_REDIRECTXDOMAINBLOCKED)]
467     void RedirectXDomainBlocked(
468             [in] IDispatch *pDisp,
469             [in] VARIANT *StartURL,
470             [in] VARIANT *RedirectURL,
471             [in] VARIANT *Frame,
472             [in] VARIANT *StatusCode);
473 }
474
475 [
476     uuid(eab22ac3-30c1-11cf-a7eb-0000c05bae0b),
477     control
478 ]
479 coclass WebBrowser_V1
480 {
481     interface IWebBrowser2;
482     [default] interface IWebBrowser;
483     [source] dispinterface DWebBrowserEvents2;
484     [default, source] dispinterface DWebBrowserEvents;
485 }
486
487 [
488     uuid(8856f961-340a-11d0-a96b-00c04fd705a2),
489     control
490 ]
491 coclass WebBrowser
492 {
493     [default] interface IWebBrowser2;
494     interface IWebBrowser;
495     [default, source] dispinterface DWebBrowserEvents2;
496     [source] dispinterface DWebBrowserEvents;
497 }
498
499 [
500     uuid(0002df01-0000-0000-c000-000000000046)
501 ]
502 coclass InternetExplorer
503 {
504     [default] interface IWebBrowser2;
505               interface IWebBrowserApp;
506     [default, source] dispinterface DWebBrowserEvents2;
507     [source]          dispinterface DWebBrowserEvents;
508 }
509
510 [
511     uuid(C08AFD90-F2A1-11D1-8455-00A0C91F3880),
512     hidden
513 ]
514 coclass ShellBrowserWindow
515 {
516     [default] interface IWebBrowser2;
517     interface IWebBrowserApp;
518     [default, source] dispinterface DWebBrowserEvents2;
519     [source] dispinterface DWebBrowserEvents;
520 }
521
522 typedef
523 [
524     uuid(f41e6981-28e5-11d0-82b4-00a0c90c29c5)
525 ]
526 enum ShellWindowTypeConstants {
527     SWC_EXPLORER = 0,
528     SWC_BROWSER  = 1,
529     SWC_3RDPARTY = 2,
530     SWC_CALLBACK = 4,
531     SWC_DESKTOP  = 8
532 } ShellWindowTypeConstants;
533
534 typedef
535 [
536     uuid(7716a370-38Ca-11d0-a48B-00a0c90a8f39)
537 ]
538 enum ShellWindowFindWindowOptions {
539     SWFO_NEEDDISPATCH   = 1,
540     SWFO_INCLUDEPENDING = 2,
541     SWFO_COOKIEPASSED   = 4
542 } ShellWindowFindWindowOptions;
543
544 [
545     uuid(FE4106E0-399A-11D0-A48C-00A0C90A8F39)
546 ]
547 dispinterface DShellWindowsEvents {
548     properties:
549     methods:
550     [id(DISPID_WINDOWREGISTERED)]
551     void WindowRegistered([in] long lCookie);
552
553     [id(DISPID_WINDOWREVOKED)]
554     void WindowRevoked([in] long lCookie);
555 }
556
557 [
558     object,
559     oleautomation,
560     uuid(85cb6900-4d95-11cf-960c-0080c7f4ee85),
561     dual
562 ]
563 interface IShellWindows : IDispatch
564 {
565     [propget] HRESULT Count([out, retval] long *Count);
566
567     [id(0)] HRESULT Item(
568             [in, optional] VARIANT index,
569             [out, retval] IDispatch **Folder);
570
571     [id(-4)] HRESULT _NewEnum([out, retval] IUnknown **ppunk);
572
573     [hidden] HRESULT Register(
574             [in] IDispatch *pid,
575             [in] long hWnd,
576             [in] int swClass,
577             [out] long *plCookie);
578
579     [hidden] HRESULT RegisterPending(
580             [in] long lThreadId,
581             [in] VARIANT *pvarloc,
582             [in] VARIANT *pvarlocRoot,
583             [in] int swClass,
584             [out] long *plCookie);
585
586     [hidden] HRESULT Revoke([in] long lCookie);
587     [hidden] HRESULT OnNavigate([in] long lCookie, [in] VARIANT *pvarLoc);
588     [hidden] HRESULT OnActivated([in] long lCookie, [in] VARIANT_BOOL fActive);
589     [hidden] HRESULT FindWindowSW(
590             [in] VARIANT *pvarLoc,
591             [in] VARIANT *pvarLocRoot,
592             [in] int swClass,
593             [out] long *phwnd,
594             [in] int swfwOptions,
595             [out, retval] IDispatch **ppdispOut);
596
597     [hidden] HRESULT OnCreated([in] long lCookie, [in] IUnknown *punk);
598     [hidden] HRESULT ProcessAttachDetach([in] VARIANT_BOOL fAttach);
599 }
600
601 [
602     uuid(9ba05972-f6a8-11cf-a442-00a0c90a8f39)
603 ]
604 coclass ShellWindows
605 {
606     [default] interface IShellWindows;
607     [default, source] dispinterface DShellWindowsEvents;
608 }
609
610 [
611     odl,
612     uuid(729fe2f8-1ea8-11d1-8f85-00C04fc2fbe1),
613     dual,
614     oleautomation
615 ]
616 interface IShellUIHelper : IDispatch {
617     [id(1), hidden] HRESULT ResetFirstBootMode();
618     [id(2), hidden] HRESULT ResetSafeMode();
619     [id(3), hidden] HRESULT RefreshOfflineDesktop();
620
621     [id(4)] HRESULT AddFavorite(
622             [in] BSTR URL,
623             [in, optional] VARIANT* Title);
624
625     [id(5)] HRESULT AddChannel([in] BSTR URL);
626
627     [id(6)] HRESULT AddDesktopComponent(
628             [in] BSTR URL,
629             [in] BSTR Type,
630             [in, optional] VARIANT *Left,
631             [in, optional] VARIANT *Top,
632             [in, optional] VARIANT *Width,
633             [in, optional] VARIANT *Height);
634
635     [id(7)] HRESULT IsSubscribed(
636             [in] BSTR URL,
637             [out, retval] VARIANT_BOOL *pBool);
638
639     [id(8)] HRESULT NavigateAndFind(
640             [in] BSTR URL,
641             [in] BSTR strQuery,
642             [in] VARIANT *varTargetFrame);
643
644     [id(9)] HRESULT ImportExportFavorites(
645             [in] VARIANT_BOOL fImport,
646             [in] BSTR strImpExpPath);
647
648     [id(10)] HRESULT AutoCompleteSaveForm([in, optional] VARIANT *Form);
649
650     [id(11)] HRESULT AutoScan(
651             [in] BSTR strSearch,
652             [in] BSTR strFailureUrl,
653             [in, optional] VARIANT *pvarTargetFrame);
654
655     [id(12), hidden] HRESULT AutoCompleteAttach([in, optional] VARIANT *Reserved);
656
657     [id(13)] HRESULT ShowBrowserUI(
658             [in] BSTR bstrName,
659             [in] VARIANT *pvarIn,
660             [out, retval] VARIANT *pvarOut);
661 }
662
663 [
664     uuid(a7fe6eda-1932-4281-b881-87b31b8bc52c),
665     oleautomation,
666     dual
667 ]
668 interface IShellUIHelper2 : IShellUIHelper {
669     [id(DISPID_ADDSEARCHPROVIDER)]
670     HRESULT AddSearchProvider([in] BSTR URL);
671
672     [id(DISPID_RUNONCESHOWN)]
673     HRESULT RunOnceShown();
674
675     [id(DISPID_SKIPRUNONCE)]
676     HRESULT SkipRunOnce();
677
678     [id(DISPID_CUSTOMIZESETTINGS)] HRESULT CustomizeSettings(
679         [in] VARIANT_BOOL fSQM,
680         [in] VARIANT_BOOL fPhishing,
681         [in] BSTR bstrLocale);
682
683     [id(DISPID_SQMENABLED)]
684     HRESULT SqmEnabled([out, retval] VARIANT_BOOL *pfEnabled);
685
686     [id(DISPID_PHISHINGENABLED)]
687     HRESULT PhishingEnabled([out, retval] VARIANT_BOOL *pfEnabled);
688
689     [id(DISPID_BRANDIMAGEURI)]
690     HRESULT BrandImageUri([out, retval] BSTR *pbstrUri);
691
692     [id(DISPID_SKIPTABSWELCOME)]
693     HRESULT SkipTabsWelcome();
694
695     [id(DISPID_DIAGNOSECONNECTION)]
696     HRESULT DiagnoseConnection();
697
698     [id(DISPID_CUSTOMIZECLEARTYPE)]
699     HRESULT CustomizeClearType([in] VARIANT_BOOL fSet);
700
701     [id(DISPID_ISSEARCHPROVIDERINSTALLED)]
702     HRESULT IsSearchProviderInstalled(
703         [in] BSTR URL,
704         [out, retval] DWORD *pdwResult);
705
706     [id(DISPID_ISSEARCHMIGRATED)]
707     HRESULT IsSearchMigrated([out, retval] VARIANT_BOOL *pfMigrated);
708
709     [id(DISPID_DEFAULTSEARCHPROVIDER)]
710     HRESULT DefaultSearchProvider([out, retval] BSTR *pbstrName);
711
712     [id(DISPID_RUNONCEREQUIREDSETTINGSCOMPLETE)]
713     HRESULT RunOnceRequiredSettingsComplete([in] VARIANT_BOOL fComplete);
714
715     [id(DISPID_RUNONCEHASSHOWN)]
716     HRESULT RunOnceHasShown([out, retval] VARIANT_BOOL *pfShown);
717
718     [id(DISPID_SEARCHGUIDEURL)]
719     HRESULT SearchGuideUrl([out, retval] BSTR *pbstrUrl);
720 }
721
722 [
723     uuid(64ab4bb7-111e-11d1-8f79-00c04fc2fbe1)
724 ]
725 coclass ShellUIHelper {
726     [default] interface IShellUIHelper2;
727 }
728
729 [
730     uuid(55136806-b2de-11d1-b9f2-00a0c98bc547)
731 ]
732 dispinterface DShellNameSpaceEvents {
733     properties:
734     methods:
735     [id(1)] void FavoritesSelectionChange(
736             [in] long cItems,
737             [in] long hItem,
738             [in] BSTR strName,
739             [in] BSTR strUrl,
740             [in] long cVisits,
741             [in] BSTR strDate,
742             [in] long fAvailableOffline);
743
744     [id(2)] void SelectionChange();
745     [id(3)] void DoubleClick();
746     [id(4)] void Initialized();
747 }
748
749 [
750     odl,
751     uuid(55136804-b2de-11d1-b9f2-00a0c98bc547),
752     hidden,
753     dual,
754     oleautomation
755 ]
756 interface IShellFavoritesNameSpace : IDispatch {
757     [id(1)] HRESULT MoveSelectionUp();
758     [id(2)] HRESULT MoveSelectionDown();
759     [id(3)] HRESULT ResetSort();
760     [id(4)] HRESULT NewFolder();
761     [id(5)] HRESULT Synchronize();
762     [id(6)] HRESULT Import();
763     [id(7)] HRESULT Export();
764     [id(8)] HRESULT InvokeContextMenuCommand([in] BSTR strCommand);
765     [id(9)] HRESULT MoveSelectionTo();
766     [id(10), propget] HRESULT SubscriptionsEnabled([out, retval] VARIANT_BOOL *pBool);
767     [id(11)] HRESULT CreateSubscriptionForSelection([out, retval] VARIANT_BOOL *pBool);
768     [id(12)] HRESULT DeleteSubscriptionForSelection([out, retval] VARIANT_BOOL *pBool);
769     [id(13)] HRESULT SetRoot([in] BSTR bstrFullPath);
770 }
771
772 [
773     odl,
774     uuid(e572d3c9-37be-4ae2-825d-d521763e3108),
775     hidden,
776     dual,
777     oleautomation
778 ]
779 interface IShellNameSpace : IShellFavoritesNameSpace {
780     [id(14), propget] HRESULT EnumOptions([out, retval] long* pgrfEnumFlags);
781     [id(14), propput] HRESULT EnumOptions([in] long pgrfEnumFlags);
782
783     [id(15), propget] HRESULT SelectedItem([out, retval] IDispatch **pItem);
784     [id(15), propput] HRESULT SelectedItem([in] IDispatch *pItem);
785
786     [id(16), propget] HRESULT Root([out, retval] VARIANT *pvar);
787     [id(16), propput] HRESULT Root([in] VARIANT pvar);
788
789     [id(17), propget] HRESULT Depth([out, retval] int *piDepth);
790     [id(17), propput] HRESULT Depth([in] int piDepth);
791
792     [id(18), propget] HRESULT Mode([out, retval] unsigned int *puMode);
793     [id(18), propput] HRESULT Mode([in] unsigned int puMode);
794
795     [id(19), propget] HRESULT Flags([out, retval] unsigned long *pdwFlags);
796     [id(19), propput] HRESULT Flags([in] unsigned long pdwFlags);
797
798     [id(20), propput] HRESULT TVFlags([in] unsigned long dwFlags);
799     [id(20), propget] HRESULT TVFlags([out, retval] unsigned long *dwFlags);
800
801     [id(21), propget] HRESULT Columns([out, retval] BSTR *bstrColumns);
802     [id(21), propput] HRESULT Columns([in] BSTR bstrColumns);
803
804     [id(22), propget] HRESULT CountViewTypes([out, retval] int *piTypes);
805
806     [id(23)] HRESULT SetViewType([in] int iType);
807     [id(24)] HRESULT SelectedItems([out, retval] IDispatch **ppid);
808     [id(25)] HRESULT Expand([in] VARIANT var,  int iDepth);
809     [id(26)] HRESULT UnselectAll();
810 }
811
812 [
813     uuid(55136805-b2de-11d1-b9f2-00a0c98bc547)
814 ]
815 coclass ShellNameSpace {
816     [default] interface IShellNameSpace;
817     [default, source] dispinterface DShellNameSpaceEvents;
818 }
819
820 [
821     uuid(2f2f1f96-2bc1-4b1c-be28-ea3774f4676a)
822 ]
823 coclass ShellShellNameSpace {
824     [default] interface IShellNameSpace;
825     [default, source] dispinterface DShellNameSpaceEvents;
826 }
827
828 [
829     odl,
830     uuid(f3470f24-15fd-11d2-bb2e-00805ff7efca),
831     hidden,
832     dual,
833     oleautomation
834 ]
835 interface IScriptErrorList : IDispatch {
836     [id(10)] HRESULT advanceError();
837     [id(11)] HRESULT retreatError();
838     [id(12)] HRESULT canAdvanceError([out, retval] long *pfCanAdvance);
839     [id(13)] HRESULT canRetreatError([out, retval] long *pfCanRetreat);
840     [id(14)] HRESULT getErrorLine([out, retval] long *plLine);
841     [id(15)] HRESULT getErrorChar([out, retval] long *plChar);
842     [id(16)] HRESULT getErrorCode([out, retval] long *plCode);
843     [id(17)] HRESULT getErrorMsg([out, retval] BSTR *pstr);
844     [id(18)] HRESULT getErrorUrl([out, retval] BSTR *pstr);
845     [id(23)] HRESULT getAlwaysShowLockState([out, retval] long *pfAlwaysShowLocked);
846     [id(19)] HRESULT getDetailsPaneOpen([out, retval] long *pfDetailsPaneOpen);
847     [id(20)] HRESULT setDetailsPaneOpen(long fDetailsPaneOpen);
848     [id(21)] HRESULT getPerErrorDisplay([out, retval] long *pfPerErrorDisplay);
849     [id(22)] HRESULT setPerErrorDisplay(long fPerErrorDisplay);
850 }
851
852 [
853     uuid(efd01300-160f-11d2-bb2e-00805ff7efca),
854     hidden,
855     noncreatable
856 ]
857 coclass CScriptErrorList {
858     [default] interface IScriptErrorList;
859 }
860
861 [
862     odl,
863     uuid(ba9239a4-3dd5-11d2-bf8b-00c04fb93661),
864     hidden,
865     dual,
866     oleautomation
867 ]
868 interface ISearch : IDispatch {
869     [propget] HRESULT Title([out, retval] BSTR *pbstrTitle);
870     [propget] HRESULT Id([out, retval] BSTR *pbstrId);
871     [propget] HRESULT URL([out, retval] BSTR *pbstrUrl);
872 }
873
874 [
875     odl,
876     uuid(47c922a2-3dd5-11d2-bf8b-00c04fb93661),
877     hidden,
878     dual,
879     oleautomation
880 ]
881 interface ISearches : IDispatch {
882     [propget] HRESULT Count([out, retval] long *plCount);
883     [propget] HRESULT Default([out, retval] BSTR *pbstrDefault);
884
885     HRESULT Item(
886             [in, optional] VARIANT index,
887             [out, retval] ISearch **ppid);
888
889     [id(-4)] HRESULT _NewEnum([out, retval] IUnknown **ppunk);
890 }
891
892 [
893     odl,
894     uuid(72423e8f-8011-11d2-be79-00a0c9a83da1),
895     hidden,
896     dual,
897     oleautomation
898 ]
899 interface ISearchAssistantOC : IDispatch {
900     [id(1)] HRESULT AddNextMenuItem([in] BSTR bstrText, [in] long idItem);
901     [id(2)] HRESULT SetDefaultSearchUrl([in] BSTR bstrUrl);
902     [id(3)] HRESULT NavigateToDefaultSearch();
903
904     [id(4)] HRESULT IsRestricted(
905             [in] BSTR bstrGuid,
906             [out, retval] VARIANT_BOOL *pVal);
907
908     [id(5), propget] HRESULT ShellFeaturesEnabled([out, retval] VARIANT_BOOL *pVal);
909     [id(6), propget] HRESULT SearchAssistantDefault([out, retval] VARIANT_BOOL *pVal);
910     [id(7), propget] HRESULT Searches([out, retval] ISearches **ppid);
911     [id(8), propget] HRESULT InWebFolder([out, retval] VARIANT_BOOL *pVal);
912
913     [id(9)] HRESULT PutProperty(
914             [in] VARIANT_BOOL bPerLocale,
915             [in] BSTR bstrName,
916             [in] BSTR bstrValue);
917
918     [id(10)] HRESULT GetProperty(
919             [in] VARIANT_BOOL bPerLocale,
920             [in] BSTR bstrName,
921             [out, retval] BSTR *pbstrValue);
922
923     [id(11), propput] HRESULT EventHandled([in] VARIANT_BOOL rhs);
924     [id(12)] HRESULT ResetNextMenu();
925     [id(13)] HRESULT FindOnWeb();
926     [id(14)] HRESULT FindFilesOrFolders();
927     [id(15)] HRESULT FindComputer();
928     [id(16)] HRESULT FindPrinter();
929     [id(17)] HRESULT FindPeople();
930
931     [id(18)] HRESULT GetSearchAssistantURL(
932             [in] VARIANT_BOOL bSubstitute,
933             [in] VARIANT_BOOL bCustomize,
934             [out, retval] BSTR *pbstrValue);
935
936     [id(19)] HRESULT NotifySearchSettingsChanged();
937
938     [id(20), propput] HRESULT ASProvider([in] BSTR pProvider);
939     [id(20), propget] HRESULT ASProvider([out, retval] BSTR *pProvider);
940
941     [id(21), propput] HRESULT ASSetting([in] int pSetting);
942     [id(21), propget] HRESULT ASSetting([out, retval] int *pSetting);
943
944     [id(22)] HRESULT NETDetectNextNavigate();
945     [id(23)] HRESULT PutFindText([in] BSTR FindText);
946     [id(24), propget] HRESULT Version([out, retval] int *pVersion);
947
948     [id(25)] HRESULT EncodeString(
949             [in] BSTR bstrValue,
950             [in] BSTR bstrCharSet,
951             [in] VARIANT_BOOL bUseUTF8,
952             [out, retval] BSTR* pbstrResult);
953 }
954
955 [
956     odl,
957     uuid(72423e8f-8011-11d2-be79-00a0c9a83da2),
958     hidden,
959     dual,
960     oleautomation
961 ]
962 interface ISearchAssistantOC2 : ISearchAssistantOC {
963     [id(26), propget] HRESULT ShowFindPrinter([out, retval] VARIANT_BOOL *pbShowFindPrinter);
964 }
965
966 [
967     odl,
968     uuid(72423e8f-8011-11d2-be79-00a0c9a83da3),
969     hidden,
970     dual,
971     oleautomation
972 ]
973 interface ISearchAssistantOC3 : ISearchAssistantOC2 {
974     [id(27), propget] HRESULT SearchCompanionAvailable([out, retval] VARIANT_BOOL *pbAvailable);
975
976     [id(28), propput] HRESULT UseSearchCompanion([in] VARIANT_BOOL pbUseSC);
977     [id(28), propget] HRESULT UseSearchCompanion([out, retval] VARIANT_BOOL *pbUseSC);
978 }
979
980 [
981     uuid(1611fdda-445b-11d2-85de-00C04fa35c89),
982     hidden
983 ]
984 dispinterface _SearchAssistantEvents {
985     properties:
986     methods:
987     [id(1)] void OnNextMenuSelect([in] long idItem);
988     [id(2)] void OnNewSearch();
989 }
990
991 [
992     uuid(b45ff030-4447-11d2-85de-00C04fa35c89),
993     hidden
994 ]
995 coclass SearchAssistantOC {
996     [default] interface ISearchAssistantOC3;
997     [default, source] dispinterface _SearchAssistantEvents;
998 }
999
1000 [
1001     uuid(2e71fd0f-aab1-42c0-9146-6d2c4edcf07d),
1002     hidden
1003 ]
1004 coclass ShellSearchAssistantOC {
1005     [default] interface ISearchAssistantOC3;
1006     [default, source] dispinterface _SearchAssistantEvents;
1007 }
1008
1009 } /* library */