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