Implemented timer related functions in ntdll and make the kernel32
[wine] / include / wine / obj_shellbrowser.h
1 /*
2  *    IShellBrowser
3  *
4  * Copyright (C) 1999 Juergen Schmied
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WINE_WINE_OBJ_SHELLBROWSER_H
22 #define __WINE_WINE_OBJ_SHELLBROWSER_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
27
28 /* it's ok commented out, see obj_shellview.h
29    typedef struct IShellBrowser IShellBrowser, *LPSHELLBROWSER;
30 */
31
32 #define SID_SShellBrowser IID_IShellBrowser
33
34 DEFINE_GUID(SID_STopLevelBrowser, 0x4C96BE40L, 0x915C, 0x11CF, 0x99, 0xD3, 0x00, 0xAA, 0x00, 0x4A, 0xE8, 0x37);
35
36 /* targets for GetWindow/SendControlMsg */
37 #define FCW_STATUS              0x0001
38 #define FCW_TOOLBAR             0x0002
39 #define FCW_TREE                0x0003
40 #define FCW_INTERNETBAR         0x0006
41 #define FCW_PROGRESS            0x0008
42
43 /* wFlags for BrowseObject*/
44 #define SBSP_DEFBROWSER         0x0000
45 #define SBSP_SAMEBROWSER        0x0001
46 #define SBSP_NEWBROWSER         0x0002
47
48 #define SBSP_DEFMODE            0x0000
49 #define SBSP_OPENMODE           0x0010
50 #define SBSP_EXPLOREMODE        0x0020
51
52 #define SBSP_ABSOLUTE           0x0000
53 #define SBSP_RELATIVE           0x1000
54 #define SBSP_PARENT             0x2000
55 #define SBSP_NAVIGATEBACK       0x4000
56 #define SBSP_NAVIGATEFORWARD    0x8000
57
58 #define SBSP_ALLOW_AUTONAVIGATE         0x10000
59
60 #define SBSP_INITIATEDBYHLINKFRAME      0x80000000
61 #define SBSP_REDIRECT                   0x40000000
62 #define SBSP_WRITENOHISTORY             0x08000000
63
64 /* uFlage for SetToolbarItems */
65 #define FCT_MERGE       0x0001
66 #define FCT_CONFIGABLE  0x0002
67 #define FCT_ADDTOEND    0x0004
68
69 #define INTERFACE IShellBrowser
70 #define IShellBrowser_METHODS \
71         IOleWindow_METHODS \
72         STDMETHOD(InsertMenusSB)(THIS_ HMENU  hmenuShared, LPOLEMENUGROUPWIDTHS  lpMenuWidths) PURE; \
73         STDMETHOD(SetMenuSB)(THIS_ HMENU  hmenuShared, HOLEMENU  holemenuReserved, HWND  hwndActiveObject) PURE; \
74         STDMETHOD(RemoveMenusSB)(THIS_ HMENU  hmenuShared) PURE; \
75         STDMETHOD(SetStatusTextSB)(THIS_ LPCOLESTR  lpszStatusText) PURE; \
76         STDMETHOD(EnableModelessSB)(THIS_ BOOL  fEnable) PURE; \
77         STDMETHOD(TranslateAcceleratorSB)(THIS_ LPMSG  lpmsg, WORD  wID) PURE; \
78         STDMETHOD(BrowseObject)(THIS_ LPCITEMIDLIST  pidl, UINT  wFlags) PURE; \
79         STDMETHOD(GetViewStateStream)(THIS_ DWORD  grfMode, LPSTREAM * ppStrm) PURE; \
80         STDMETHOD(GetControlWindow)(THIS_ UINT  id, HWND * lphwnd) PURE; \
81         STDMETHOD(SendControlMsg)(THIS_ UINT  id, UINT  uMsg, WPARAM  wParam, LPARAM  lParam, LRESULT * pret) PURE; \
82         STDMETHOD(QueryActiveShellView)(THIS_ IShellView ** IShellView) PURE; \
83         STDMETHOD(OnViewWindowActive)(THIS_ IShellView * IShellView) PURE; \
84         STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON  lpButtons, UINT  nButtons, UINT  uFlags) PURE;
85 ICOM_DEFINE(IShellBrowser,IOleWindow)
86 #undef INTERFACE
87
88 #ifdef COBJMACROS
89 /*** IUnknown methods ***/
90 #define IShellBrowser_QueryInterface(p,a,b)             (p)->lpVtbl->QueryInterface(p,a,b)
91 #define IShellBrowser_AddRef(p)                         (p)->lpVtbl->AddRef(p)
92 #define IShellBrowser_Release(p)                        (p)->lpVtbl->Release(p)
93 /*** IShellBrowser methods ***/
94 #define IShellBrowser_GetWindow(p,a)                    (p)->lpVtbl->GetWindow(p,a)
95 #define IShellBrowser_ContextSensitiveHelp(p,a)         (p)->lpVtbl->ContextSensitiveHelp(p,a)
96 #define IShellBrowser_InsertMenusSB(p,a,b)              (p)->lpVtbl->InsertMenusSB(p,a,b)
97 #define IShellBrowser_SetMenuSB(p,a,b,c)                (p)->lpVtbl->SetMenuSB(p,a,b,c)
98 #define IShellBrowser_RemoveMenusSB(p,a)                (p)->lpVtbl->RemoveMenusSB(p,a)
99 #define IShellBrowser_SetStatusTextSB(p,a)              (p)->lpVtbl->SetStatusTextSB(p,a)
100 #define IShellBrowser_EnableModelessSB(p,a)             (p)->lpVtbl->EnableModelessSB(p,a)
101 #define IShellBrowser_TranslateAcceleratorSB(p,a,b)     (p)->lpVtbl->TranslateAcceleratorSB(p,a,b)
102 #define IShellBrowser_BrowseObject(p,a,b)               (p)->lpVtbl->BrowseObject(p,a,b)
103 #define IShellBrowser_GetViewStateStream(p,a,b)         (p)->lpVtbl->GetViewStateStream(p,a,b)
104 #define IShellBrowser_GetControlWindow(p,a,b)           (p)->lpVtbl->GetControlWindow(p,a,b)
105 #define IShellBrowser_SendControlMsg(p,a,b,c,d,e)       (p)->lpVtbl->SendControlMsg(p,a,b,c,d,e)
106 #define IShellBrowser_QueryActiveShellView(p,a)         (p)->lpVtbl->QueryActiveShellView(p,a)
107 #define IShellBrowser_OnViewWindowActive(p,a)           (p)->lpVtbl->OnViewWindowActive(p,a)
108 #define IShellBrowser_SetToolbarItems(p,a,b,c)          (p)->lpVtbl->SetToolbarItems(p,a,b,c)
109 #endif
110
111 #ifdef __cplusplus
112 } /* extern "C" */
113 #endif /* defined(__cplusplus) */
114
115 #endif /* __WINE_WINE_OBJ_SHELLBROWSER_H */