Stubs for LsaFreeMemory, LsaQueryInformationPolicy, LsaClose.
[wine] / dlls / commdlg / filedlgbrowser.h
1 /*
2  *  Implementation of IShellBrowser for the File Open common dialog
3  * 
4  *
5  */
6
7 #ifndef SHBROWSER_H
8 #define SHBROWSER_H TRUE
9
10 #include "shlobj.h"
11 #include "winbase.h"
12 #include "objbase.h"
13 #include "commdlg.h"
14
15 /***********************************************************************
16  * Defines and global variables
17  */
18 #define _ICOM_THIS_FromICommDlgBrowser(Class,name) Class* This = (Class*) (((char*)name)-sizeof(void *))
19
20 /* dialog internal property */
21
22 #define FODPROP_SAVEDLG 0x0001  /* File dialog is a Save file dialog */
23 #define FODPROP_USEVIEW 0x0002  /* Indicates the user selection must be taken 
24                                    from the IShellView */
25
26 /***********************************************************************
27  * Data structure
28  */
29
30
31 typedef struct
32 {
33
34     ICOM_VTABLE(IShellBrowser)* lpVtbl;         /* IShellBrowser VTable */
35     ICOM_VTABLE(ICommDlgBrowser)* lpVtbl2;      /* ICommDlgBrowser VTable */
36     DWORD ref;                                  /* Reference counter */
37     HWND hwndOwner;                             /* Owner dialog of the interface */
38
39 } IShellBrowserImpl;
40
41 typedef struct
42 {
43     
44     OPENFILENAMEA ofnInfos;
45     struct {
46         IShellBrowser *FOIShellBrowser; 
47         IShellFolder *FOIShellFolder;
48         IShellView *FOIShellView;
49     } Shell;
50
51     struct {
52         HWND hwndOwner;
53         HWND hwndView;
54         RECT rectView;
55         FOLDERSETTINGS folderSettings;
56         LPITEMIDLIST pidlAbsCurrent;
57         LPWSTR lpstrCurrentFilter;
58     } ShellInfos;
59
60     struct {
61         HWND hwndFileTypeCB;
62         HWND hwndLookInCB;
63         HWND hwndFileName;
64         HWND hwndTB;
65         HWND hwndCustomDlg;
66         DWORD dwDlgProp;
67     } DlgInfos;
68
69 } FileOpenDlgInfos;
70
71 /***********************************************************************
72  * Control ID's
73  */
74 #define IDS_ABOUTBOX                    101
75 #define IDS_DOCUMENTFOLDERS             102
76 #define IDS_PERSONAL                    103
77 #define IDS_FAVORITES                   104
78 #define IDS_PATH                        105
79 #define IDS_DESKTOP                     106
80
81 #define IDS_FONTS                       108
82 #define IDS_MYCOMPUTER                  110
83 #define IDS_SYSTEMFOLDERS               112
84 #define IDS_LOCALHARDRIVES              113
85 #define IDS_FILENOTFOUND                114
86 #define IDS_VERIFYFILE                  115
87 #define IDS_CREATEFILE                  116
88 #define IDS_CREATEFOLDER_DENIED         117
89 #define IDS_FILEOPEN_CAPTION            118
90
91 #define IDC_OPENREADONLY                chx1
92
93 #define IDC_TOOLBARSTATIC               stc1
94 #define IDC_FILETYPESTATIC              stc2
95 #define IDC_FILENAMESTATIC              stc3
96 #define IDC_LOOKINSTATIC                stc4
97
98 #define IDC_SHELLSTATIC                 lst1
99
100 #define IDC_FILETYPE                    cmb1
101 #define IDC_LOOKIN                      cmb2
102
103 #define IDC_FILENAME                    edt1
104
105 #define IDC_TOOLBAR                     ctl1
106
107 /***********************************************************************
108  * Prototypes for the methods of the IShellBrowserImpl class
109  */
110 /* Constructor */
111 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
112
113 /* IUnknown */
114 HRESULT WINAPI IShellBrowserImpl_QueryInterface(IShellBrowser *iface,
115                                             REFIID riid, 
116                                             LPVOID *ppvObj);
117
118 ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface);
119
120 ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface);
121
122 /* IOleWindow */
123 HRESULT WINAPI IShellBrowserImpl_GetWindow(IShellBrowser * iface,  
124                                            HWND * phwnd);
125
126 HRESULT WINAPI IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser * iface,
127                                                       BOOL fEnterMode);
128
129 /* IShellBrowser */
130
131 HRESULT WINAPI IShellBrowserImpl_BrowseObject(IShellBrowser *iface, 
132                                           LPCITEMIDLIST pidl,   
133                                           UINT wFlags);
134
135 HRESULT WINAPI IShellBrowserImpl_EnableModelessSB(IShellBrowser *iface,    
136                                               BOOL fEnable);
137                                               
138 HRESULT WINAPI IShellBrowserImpl_GetControlWindow(IShellBrowser *iface,    
139                                               UINT id,    
140                                               HWND *lphwnd);
141
142 HRESULT WINAPI IShellBrowserImpl_GetViewStateStream(IShellBrowser *iface,
143                                                 DWORD grfMode,    
144                                                 LPSTREAM *ppStrm);
145
146 HRESULT WINAPI IShellBrowserImpl_InsertMenusSB(IShellBrowser *iface,
147                                            HMENU hmenuShared,
148                                            LPOLEMENUGROUPWIDTHS lpMenuWidths);
149
150 HRESULT WINAPI IShellBrowserImpl_OnViewWindowActive(IShellBrowser *iface,
151                                                 IShellView *ppshv);
152                                               
153
154 HRESULT WINAPI IShellBrowserImpl_QueryActiveShellView(IShellBrowser *iface,
155                                                   IShellView **ppshv);
156
157 HRESULT WINAPI IShellBrowserImpl_RemoveMenusSB(IShellBrowser *iface,
158                                            HMENU hmenuShared);
159
160 HRESULT WINAPI IShellBrowserImpl_SendControlMsg(IShellBrowser *iface,    
161                                             UINT id,    
162                                             UINT uMsg,    
163                                             WPARAM wParam,    
164                                             LPARAM lParam,
165                                             LRESULT *pret);
166
167 HRESULT WINAPI IShellBrowserImpl_SetMenuSB(IShellBrowser *iface,
168                                        HMENU hmenuShared,    
169                                        HOLEMENU holemenuReserved,
170                                        HWND hwndActiveObject);
171
172 HRESULT WINAPI IShellBrowserImpl_SetStatusTextSB(IShellBrowser *iface,
173                                              LPCOLESTR lpszStatusText);
174                                                 
175
176 HRESULT WINAPI IShellBrowserImpl_SetToolbarItems(IShellBrowser *iface,
177                                              LPTBBUTTON lpButtons,    
178                                              UINT nButtons,    
179                                              UINT uFlags);
180                                               
181 HRESULT WINAPI IShellBrowserImpl_TranslateAcceleratorSB(IShellBrowser *iface,
182                                                     LPMSG lpmsg,    
183                                                     WORD wID);
184
185
186 /* ICommDlgBrowser */
187
188 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_QueryInterface(ICommDlgBrowser *iface,
189                                             REFIID riid, 
190                                             LPVOID *ppvObj);
191
192 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_AddRef(ICommDlgBrowser * iface);
193
194 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_Release(ICommDlgBrowser * iface);
195
196 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser *iface,
197                                                                   IShellView *ppshv);
198
199 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnStateChange(ICommDlgBrowser *iface,
200                                                                IShellView *ppshv,
201                                                                ULONG uChange);
202
203 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *iface, 
204                                                                IShellView * ppshv,
205                                                                LPCITEMIDLIST pidl);
206
207
208
209 LPITEMIDLIST GetSelectedPidl(IShellView *ppshv);
210
211 #endif /*SHBROWSER_H*/