winnt.h: Added GCC variant of DEFAULT_UNREACHABLE macro.
[wine] / include / shdeprecated.idl
1 /*
2  * Deprecated shell interfaces
3  *
4  * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
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 "ocidl.idl";
23 import "shtypes.idl";
24 import "shobjidl.idl";
25 import "hlink.idl";
26 import "exdisp.idl";
27
28 cpp_quote("#define TLOG_BACK    -1")
29 cpp_quote("#define TLOG_FORE    1")
30
31 cpp_quote("#define TLMENUF_INCLUDECURRENT   0x00000001")
32 cpp_quote("#define TLMENUF_CHECKCURRENT     (TLMENUF_INCLUDECURRENT | 0x00000002)")
33 cpp_quote("#define TLMENUF_BACK             0x00000010")
34 cpp_quote("#define TLMENUF_FORE             0x00000020")
35 cpp_quote("#define TLMENUF_BACKANDFORTH     (TLMENUF_BACK | TLMENUF_FORE | TLMENUF_INCLUDECURRENT)")
36
37 [
38     hidden,
39     local,
40     object,
41     uuid(F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3)
42 ]
43 interface ITravelEntry : IUnknown
44 {
45     HRESULT Invoke(
46         [in] IUnknown *punk);
47
48     HRESULT Update(
49         [in] IUnknown *punk,
50         [in] BOOL fIsLocalAnchor);
51
52     HRESULT GetPidl(
53         [out] LPITEMIDLIST *ppidl);
54 };
55
56 [
57     hidden,
58     local,
59     object,
60     uuid(66A9CB08-4802-11d2-A561-00A0C92DBFE8)
61 ]
62 interface ITravelLog : IUnknown
63 {
64     HRESULT AddEntry(
65         [in] IUnknown *punk,
66         [in] BOOL fIsLocalAnchor);
67
68     HRESULT UpdateEntry(
69         [in] IUnknown *punk,
70         [in] BOOL fIsLocalAnchor);
71
72     HRESULT UpdateExternal(
73         [in] IUnknown *punk,
74         [in] IUnknown *punkHLBrowseContext);
75
76     HRESULT Travel(
77         [in] IUnknown *punk,
78         [in] int iOffset);
79
80     HRESULT GetTravelEntry(
81         [in]  IUnknown *punk,
82         [in]  int iOffset,
83         [optional, out] ITravelEntry **ppte);
84
85     HRESULT FindTravelEntry(
86         [in]  IUnknown *punk,
87         [in]  LPCITEMIDLIST pidl,
88         [out] ITravelEntry **ppte);
89
90     HRESULT GetToolTipText(
91         [in]  IUnknown *punk,
92         [in]  int iOffset,
93         [in]  int idsTemplate,
94         [out, size_is(cchText)] LPWSTR pwzText,
95         [in]  DWORD cchText);
96
97     HRESULT InsertMenuEntries(
98         [in] IUnknown *punk,
99         [in] HMENU hmenu,
100         [in] int nPos,
101         [in] int idFirst,
102         [in] int idLast,
103         [in] DWORD dwFlags);
104
105     HRESULT Clone(
106         [out] ITravelLog **pptl);
107
108     DWORD CountEntries(
109         [in] IUnknown *punk);
110
111     HRESULT Revert();
112 };
113
114 typedef void *CIE4ConnectionPoint;
115
116 [
117     local,
118     object,
119     uuid(0D7D1D00-6FC0-11D0-A974-00C04FD705A2)
120 ]
121 interface IExpDispSupport : IUnknown
122 {
123     HRESULT FindCIE4ConnectionPoint(
124         REFIID riid,
125         CIE4ConnectionPoint **ppccp);
126
127     HRESULT OnTranslateAccelerator(
128         MSG  *pMsg,
129         DWORD grfModifiers);
130
131     HRESULT OnInvoke(
132         DISPID dispidMember,
133         REFIID iid,
134         LCID lcid,
135         WORD wFlags,
136         DISPPARAMS *pdispparams,
137         VARIANT *pVarResult,
138         EXCEPINFO *pexcepinfo,
139         UINT *puArgErr);
140 };
141
142 typedef enum tagBNSTATE
143 {
144     BNS_NORMAL = 0,
145     BNS_BEGIN_NAVIGATE = 1,
146     BNS_NAVIGATE = 2
147
148 } BNSTATE;
149
150 enum {
151     SBSC_HIDE = 0,
152     SBSC_SHOW = 1,
153     SBSC_TOGGLE = 2,
154     SBSC_QUERY =  3
155 };
156
157 cpp_quote("#define BSF_REGISTERASDROPTARGET     0x00000001")
158 cpp_quote("#define BSF_THEATERMODE              0x00000002")
159 cpp_quote("#define BSF_NOLOCALFILEWARNING       0x00000010")
160 cpp_quote("#define BSF_UISETBYAUTOMATION        0x00000100")
161 cpp_quote("#define BSF_RESIZABLE                0x00000200")
162 cpp_quote("#define BSF_CANMAXIMIZE              0x00000400")
163 cpp_quote("#define BSF_TOPBROWSER               0x00000800")
164 cpp_quote("#define BSF_NAVNOHISTORY             0x00001000")
165 cpp_quote("#define BSF_HTMLNAVCANCELED          0x00002000")
166 cpp_quote("#define BSF_DONTSHOWNAVCANCELPAGE    0x00004000")
167 cpp_quote("#define BSF_SETNAVIGATABLECODEPAGE   0x00008000")
168 cpp_quote("#define BSF_DELEGATEDNAVIGATION      0x00010000")
169 cpp_quote("#define BSF_TRUSTEDFORACTIVEX        0x00020000")
170
171 cpp_quote("#define HLNF_CALLERUNTRUSTED             0x00200000")
172 cpp_quote("#define HLNF_TRUSTEDFORACTIVEX           0x00400000")
173 cpp_quote("#define HLNF_DISABLEWINDOWRESTRICTIONS   0x00800000")
174 cpp_quote("#define HLNF_TRUSTFIRSTDOWNLOAD          0x01000000")
175 cpp_quote("#define HLNF_UNTRUSTEDFORDOWNLOAD        0x02000000")
176 cpp_quote("#define SHHLNF_NOAUTOSELECT              0x04000000")
177 cpp_quote("#define SHHLNF_WRITENOHISTORY            0x08000000")
178 cpp_quote("#define HLNF_EXTERNALNAVIGATE            0x10000000")
179 cpp_quote("#define HLNF_ALLOW_AUTONAVIGATE          0x20000000")
180 cpp_quote("#define HLNF_NEWWINDOWSMANAGED           0x80000000")
181
182 [
183     local,
184     object,
185     uuid(02ba3b52-0547-11d1-b833-00c04fc9b31f)
186 ]
187 interface IBrowserService : IUnknown
188 {
189     HRESULT GetParentSite(
190         [out] IOleInPlaceSite **ppipsite);
191
192     HRESULT SetTitle(
193         [in] IShellView *psv,
194         [in] LPCWSTR pszName);
195
196     HRESULT GetTitle(
197         [in] IShellView *psv,
198         [out, size_is(cchName)] LPWSTR pszName,
199         [in] DWORD cchName);
200
201     HRESULT GetOleObject(
202         [out] IOleObject **ppobjv);
203
204     HRESULT GetTravelLog(
205         [out, optional] ITravelLog **pptl);
206
207     HRESULT ShowControlWindow(
208         [in] UINT id,
209         [in] BOOL fShow);
210
211     HRESULT IsControlWindowShown(
212         [in] UINT id,
213         [out] BOOL *pfShown);
214
215     HRESULT IEGetDisplayName(
216         [in] PCIDLIST_ABSOLUTE pidl,
217         [out] LPWSTR pwszName,
218         [in] UINT uFlags);
219
220     HRESULT IEParseDisplayName(
221         [in] UINT uiCP,
222         [in] LPCWSTR pwszPath,
223         [out] PIDLIST_ABSOLUTE *ppidlOut);
224
225     HRESULT DisplayParseError(
226         [in] HRESULT hres,
227         [in] LPCWSTR pwszPath);
228
229     HRESULT NavigateToPidl(
230         [in] PCIDLIST_ABSOLUTE pidl,
231         [in] DWORD grfHLNF);
232
233     HRESULT SetNavigateState(
234         [in] BNSTATE bnstate);
235
236     HRESULT GetNavigateState(
237         [out] BNSTATE *pbnstate);
238
239     HRESULT NotifyRedirect(
240         [in] IShellView *psv,
241         [in] PCIDLIST_ABSOLUTE pidl,
242         [out] BOOL *pfDidBrowse);
243
244     HRESULT UpdateWindowList();
245
246     HRESULT UpdateBackForwardState();
247
248     HRESULT SetFlags(
249         [in] DWORD dwFlags,
250         [in] DWORD dwFlagMask);
251
252     HRESULT GetFlags(
253         [out] DWORD *pdwFlags);
254
255     HRESULT CanNavigateNow();
256
257     HRESULT GetPidl(
258         [out] PIDLIST_ABSOLUTE *ppidl);
259
260     HRESULT SetReferrer(
261         [in] PCIDLIST_ABSOLUTE pidl);
262
263     DWORD GetBrowserIndex();
264
265     HRESULT GetBrowserByIndex(
266         [in] DWORD dwID,
267         [out] IUnknown **ppunk);
268
269     HRESULT GetHistoryObject(
270         [out] IOleObject **ppole,
271         [out] IStream **pstm,
272         [out] IBindCtx **ppbc);
273
274     HRESULT SetHistoryObject(
275         [in] IOleObject *pole,
276         [in] BOOL fIsLocalAnchor);
277
278     HRESULT CacheOLEServer(
279         [in] IOleObject *pole);
280
281     HRESULT GetSetCodePage(
282         [in] VARIANT *pvarIn,
283         [out] VARIANT *pvarOut);
284
285     HRESULT OnHttpEquiv(
286         [in] IShellView *psv,
287         [in] BOOL fDone,
288         [in] VARIANT *pvarargIn,
289         [out] VARIANT *pvarargOut);
290
291     HRESULT GetPalette(
292         [out] HPALETTE *hpal);
293
294     HRESULT RegisterWindow(
295         [in] BOOL fForceRegister,
296         [in] int swc);
297 }
298
299 [
300     object,
301     local,
302     uuid(5836fb00-8187-11cf-a12b-00aa004ae837)
303 ]
304 interface IShellService : IUnknown
305 {
306     HRESULT SetOwner( [in] IUnknown *pUnk );
307 }
308
309 cpp_quote("#if 0")
310 typedef HANDLE HMONITOR;
311 cpp_quote("#endif")
312
313 enum {
314     SECURELOCK_NOCHANGE                 = -1,
315     SECURELOCK_SET_UNSECURE             = 0,
316     SECURELOCK_SET_MIXED                = 1,
317     SECURELOCK_SET_SECUREUNKNOWNBIT     = 2,
318     SECURELOCK_SET_SECURE40BIT          = 3,
319     SECURELOCK_SET_SECURE56BIT          = 4,
320     SECURELOCK_SET_FORTEZZA             = 5,
321     SECURELOCK_SET_SECURE128BIT         = 6,
322     SECURELOCK_FIRSTSUGGEST             = 7,
323     SECURELOCK_SUGGEST_UNSECURE         = SECURELOCK_FIRSTSUGGEST,
324     SECURELOCK_SUGGEST_MIXED            = 8,
325     SECURELOCK_SUGGEST_SECUREUNKNOWNBIT = 9,
326     SECURELOCK_SUGGEST_SECURE40BIT      = 10,
327     SECURELOCK_SUGGEST_SECURE56BIT      = 11,
328     SECURELOCK_SUGGEST_FORTEZZA         = 12,
329     SECURELOCK_SUGGEST_SECURE128BIT     = 13,
330 };
331
332
333 typedef struct {
334     HWND _hwnd;
335     ITravelLog *_ptl;
336     IHlinkFrame *_phlf;
337     IWebBrowser2 *_pautoWB2;
338     IExpDispSupport *_pautoEDS;
339     IShellService *_pautoSS;
340     int _eSecureLockIcon;
341     DWORD _fCreatingViewWindow;
342     UINT _uActivateState;
343
344     LPCITEMIDLIST _pidlNewShellView;
345
346     IOleCommandTarget *_pctView;
347
348     LPITEMIDLIST _pidlCur;
349     IShellView *_psv;
350     IShellFolder *_psf;
351     HWND _hwndView;
352     LPWSTR _pszTitleCur;
353
354     LPITEMIDLIST _pidlPending;
355     IShellView *_psvPending;
356     IShellFolder *_psfPending;
357     HWND _hwndViewPending;
358     LPWSTR _pszTitlePending;
359
360     BOOL _fIsViewMSHTML;
361     BOOL _fPrivacyImpacted;
362
363 } BASEBROWSERDATA, *LPBASEBROWSERDATA;
364 typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA;
365
366 cpp_quote("#define VIEW_PRIORITY_RESTRICTED         0x00000070")
367 cpp_quote("#define VIEW_PRIORITY_CACHEHIT           0x00000050")
368 cpp_quote("#define VIEW_PRIORITY_STALECACHEHIT      0x00000045")
369 cpp_quote("#define VIEW_PRIORITY_USEASDEFAULT       0x00000043")
370 cpp_quote("#define VIEW_PRIORITY_SHELLEXT           0x00000040")
371 cpp_quote("#define VIEW_PRIORITY_CACHEMISS          0x00000030")
372 cpp_quote("#define VIEW_PRIORITY_INHERIT            0x00000020")
373 cpp_quote("#define VIEW_PRIORITY_SHELLEXT_ASBACKUP  0x0015")
374 cpp_quote("#define VIEW_PRIORITY_DESPERATE          0x00000010")
375 cpp_quote("#define VIEW_PRIORITY_NONE               0x00000000")
376
377 typedef struct tagFolderSetData {
378     FOLDERSETTINGS _fs;
379     SHELLVIEWID _vidRestore;
380     DWORD _dwViewPriority;
381 } FOLDERSETDATA, *LPFOLDERSETDATA;
382
383 typedef struct SToolbarItem {
384     IDockingWindow *ptbar;
385     BORDERWIDTHS rcBorderTool;
386     LPWSTR pwszItem;
387     BOOL fShow;
388     HMONITOR hMon;
389 } TOOLBARITEM, *LPTOOLBARITEM;
390
391 cpp_quote("#define ITB_VIEW        ((UINT)-1)")
392
393 [
394     local,
395     object,
396     uuid(68BD21CC-438B-11d2-A560-00A0C92DBFE8)
397 ]
398 interface IBrowserService2 : IBrowserService
399 {
400     LRESULT WndProcBS(
401         [in] HWND hwnd,
402         [in] UINT uMsg,
403         [in, out] WPARAM wParam,
404         [in, out] LPARAM lParam);
405
406     HRESULT SetAsDefFolderSettings();
407
408     HRESULT GetViewRect(
409         [in, out] RECT *prc);
410
411     HRESULT OnSize(
412         [in] WPARAM wParam);
413
414     HRESULT OnCreate(
415         [in] struct tagCREATESTRUCTW *pcs);
416
417     LRESULT OnCommand(
418         [in] WPARAM wParam,
419         [in] LPARAM lParam);
420
421     HRESULT OnDestroy();
422
423     LRESULT OnNotify(
424         [in, out] struct tagNMHDR *pnm);
425
426     HRESULT OnSetFocus();
427
428     HRESULT OnFrameWindowActivateBS(
429         [in] BOOL fActive);
430
431     HRESULT ReleaseShellView();
432
433     HRESULT ActivatePendingView();
434
435     HRESULT CreateViewWindow(
436         [in] IShellView *psvNew,
437         [in] IShellView *psvOld,
438         [out] LPRECT prcView,
439         [out] HWND *phwnd);
440
441     HRESULT CreateBrowserPropSheetExt(
442         [in] REFIID riid,
443         [out] void **ppv);
444
445     HRESULT GetViewWindow(
446         [out] HWND *phwndView);
447
448     HRESULT GetBaseBrowserData(
449         [in, out] LPCBASEBROWSERDATA *pbbd);
450
451     LPBASEBROWSERDATA PutBaseBrowserData();
452
453     HRESULT InitializeTravelLog(
454         [in] ITravelLog *ptl,
455         [in] DWORD dw);
456
457     HRESULT SetTopBrowser();
458
459     HRESULT Offline(
460         [in] int iCmd);
461
462     HRESULT AllowViewResize(
463         [in] BOOL f);
464
465     HRESULT SetActivateState(
466         [in] UINT u);
467
468     HRESULT UpdateSecureLockIcon(
469         [in] int eSecureLock);
470
471     HRESULT InitializeDownloadManager();
472
473     HRESULT InitializeTransitionSite();
474
475     HRESULT _Initialize(
476         [in] HWND hwnd,
477         [in] IUnknown *pauto);
478
479     HRESULT _CancelPendingNavigationAsync();
480
481     HRESULT _CancelPendingView();
482
483     HRESULT _MaySaveChanges();
484
485     HRESULT _PauseOrResumeView(
486         [in] BOOL fPaused);
487
488     HRESULT _DisableModeless();
489
490     HRESULT _NavigateToPidl(
491         [in] LPCITEMIDLIST pidl,
492         [in] DWORD grfHLNF,
493         [in] DWORD dwFlags);
494
495     HRESULT _TryShell2Rename(
496         [in] IShellView *psv,
497         [in] LPCITEMIDLIST pidlNew);
498
499     HRESULT _SwitchActivationNow();
500
501     HRESULT _ExecChildren(
502         [in] IUnknown *punkBar,
503         [in] BOOL fBroadcast,
504         [in] const GUID *pguidCmdGroup,
505         [in] DWORD nCmdID,
506         [in] DWORD nCmdexecopt,
507         [in] VARIANTARG *pvarargIn,
508         [in, out] VARIANTARG *pvarargOut);
509
510     HRESULT _SendChildren(
511         [in] HWND hwndBar,
512         [in] BOOL fBroadcast,
513         [in] UINT uMsg,
514         [in, out] WPARAM wParam,
515         [in, out] LPARAM lParam);
516
517     HRESULT GetFolderSetData(
518         [in, out] struct tagFolderSetData *pfsd);
519
520     HRESULT _OnFocusChange(
521         [in] UINT itb);
522
523     HRESULT v_ShowHideChildWindows(
524         [in] BOOL fChildOnly);
525
526     UINT _get_itbLastFocus();
527
528     HRESULT _put_itbLastFocus(
529         [in] UINT itbLastFocus);
530
531     HRESULT _UIActivateView(
532         [in] UINT uState);
533
534     HRESULT _GetViewBorderRect(
535         [in, out] RECT* prc);
536
537     HRESULT _UpdateViewRectSize();
538
539     HRESULT _ResizeNextBorder(
540         [in] UINT itb);
541
542     HRESULT _ResizeView();
543
544     HRESULT _GetEffectiveClientArea(
545         [in, out] LPRECT lprectBorder,
546         [in] HMONITOR hmon);
547
548     IStream* v_GetViewStream(
549         [in] LPCITEMIDLIST pidl,
550         [in] DWORD grfMode,
551         [in] LPCWSTR pwszName);
552
553     LRESULT ForwardViewMsg(
554         [in] UINT uMsg,
555         [in] WPARAM wParam,
556         [in] LPARAM lParam);
557
558     HRESULT SetAcceleratorMenu(
559         [in] HACCEL hacc);
560
561     int _GetToolbarCount();
562
563     LPTOOLBARITEM _GetToolbarItem(
564         [in] int itb);
565
566     HRESULT _SaveToolbars(
567         [in] IStream *pstm);
568
569     HRESULT _LoadToolbars(
570         [in] IStream *pstm);
571
572     HRESULT _CloseAndReleaseToolbars(
573         [in] BOOL fClose);
574
575     HRESULT v_MayGetNextToolbarFocus(
576         [in] LPMSG lpMsg,
577         [in] UINT itbNext,
578         [in] int citb,
579         [out] LPTOOLBARITEM *pptbi,
580         [out] HWND *phwnd);
581
582     HRESULT _ResizeNextBorderHelper(
583         [in] UINT itb,
584         [in] BOOL bUseHmonitor);
585
586     UINT _FindTBar(
587         [in] IUnknown *punkSrc);
588
589     HRESULT _SetFocus(
590         [in] LPTOOLBARITEM ptbi,
591         [in] HWND hwnd,
592         [in] LPMSG lpMsg);
593
594     HRESULT v_MayTranslateAccelerator(
595         [in] MSG* pmsg);
596
597     HRESULT _GetBorderDWHelper(
598         [in] IUnknown *punkSrc,
599         [in] LPRECT lprectBorder,
600         [in] BOOL bUseHmonitor);
601
602     HRESULT v_CheckZoneCrossing(
603         [in, out] LPCITEMIDLIST pidl);
604 };