Restructure DirectSound. Remove dsound thread, use MM timers
[wine/testsucceed.git] / dlls / commdlg / filedlgbrowser.h
blobe86a1785dad3de466733c352ec994b02219fdc30
1 /*
2 * Implementation of IShellBrowser for the File Open common dialog
3 *
5 */
7 #ifndef SHBROWSER_H
8 #define SHBROWSER_H TRUE
10 #include "shlobj.h"
11 #include "winbase.h"
12 #include "objbase.h"
13 #include "commdlg.h"
15 /***********************************************************************
16 * Defines and global variables
18 #define _ICOM_THIS_FromICommDlgBrowser(Class,name) Class* This = (Class*) (((char*)name)-sizeof(void *))
20 /* dialog internal property */
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 */
26 /***********************************************************************
27 * Data structure
31 typedef struct
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 */
39 } IShellBrowserImpl;
41 typedef struct
44 LPOPENFILENAMEA ofnInfos;
45 struct {
46 IShellBrowser *FOIShellBrowser;
47 IShellFolder *FOIShellFolder;
48 IShellView *FOIShellView;
49 IDataObject *FOIDataObject;
50 } Shell;
52 struct {
53 HWND hwndOwner;
54 HWND hwndView;
55 RECT rectView;
56 FOLDERSETTINGS folderSettings;
57 LPITEMIDLIST pidlAbsCurrent;
58 LPWSTR lpstrCurrentFilter;
59 } ShellInfos;
61 struct {
62 HWND hwndFileTypeCB;
63 HWND hwndLookInCB;
64 HWND hwndFileName;
65 HWND hwndTB;
66 HWND hwndCustomDlg;
67 DWORD dwDlgProp;
68 } DlgInfos;
70 } FileOpenDlgInfos;
72 /***********************************************************************
73 * Control ID's
75 #define IDS_ABOUTBOX 101
76 #define IDS_DOCUMENTFOLDERS 102
77 #define IDS_PERSONAL 103
78 #define IDS_FAVORITES 104
79 #define IDS_PATH 105
80 #define IDS_DESKTOP 106
82 #define IDS_FONTS 108
83 #define IDS_MYCOMPUTER 110
84 #define IDS_SYSTEMFOLDERS 112
85 #define IDS_LOCALHARDRIVES 113
86 #define IDS_FILENOTFOUND 114
87 #define IDS_VERIFYFILE 115
88 #define IDS_CREATEFILE 116
89 #define IDS_CREATEFOLDER_DENIED 117
90 #define IDS_FILEOPEN_CAPTION 118
91 #define IDL_OVERWRITEFILE 119
92 #define IDS_INVALID_FILENAME_TITLE 120
93 #define IDS_INVALID_FILENAME 121
94 #define IDS_PATHNOTEXISTING 122
95 #define IDS_FILENOTEXISTING 123
97 /* File Dialog Tooltips string IDs */
99 #define IDS_UPFOLDER 150
100 #define IDS_NEWFOLDER 151
101 #define IDS_LISTVIEW 152
102 #define IDS_REPORTVIEW 153
104 #define IDC_OPENREADONLY chx1
106 #define IDC_TOOLBARSTATIC stc1
107 #define IDC_FILETYPESTATIC stc2
108 #define IDC_FILENAMESTATIC stc3
109 #define IDC_LOOKINSTATIC stc4
111 #define IDC_SHELLSTATIC lst1
113 #define IDC_FILETYPE cmb1
114 #define IDC_LOOKIN cmb2
116 #define IDC_FILENAME edt1
118 #define IDC_TOOLBAR ctl1
120 /***********************************************************************
121 * Prototypes for the methods of the IShellBrowserImpl class
123 /* Constructor */
124 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
126 /* IUnknown */
127 HRESULT WINAPI IShellBrowserImpl_QueryInterface(IShellBrowser *iface,
128 REFIID riid,
129 LPVOID *ppvObj);
131 ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface);
133 ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface);
135 /* IOleWindow */
136 HRESULT WINAPI IShellBrowserImpl_GetWindow(IShellBrowser * iface,
137 HWND * phwnd);
139 HRESULT WINAPI IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser * iface,
140 BOOL fEnterMode);
142 /* IShellBrowser */
144 HRESULT WINAPI IShellBrowserImpl_BrowseObject(IShellBrowser *iface,
145 LPCITEMIDLIST pidl,
146 UINT wFlags);
148 HRESULT WINAPI IShellBrowserImpl_EnableModelessSB(IShellBrowser *iface,
149 BOOL fEnable);
151 HRESULT WINAPI IShellBrowserImpl_GetControlWindow(IShellBrowser *iface,
152 UINT id,
153 HWND *lphwnd);
155 HRESULT WINAPI IShellBrowserImpl_GetViewStateStream(IShellBrowser *iface,
156 DWORD grfMode,
157 LPSTREAM *ppStrm);
159 HRESULT WINAPI IShellBrowserImpl_InsertMenusSB(IShellBrowser *iface,
160 HMENU hmenuShared,
161 LPOLEMENUGROUPWIDTHS lpMenuWidths);
163 HRESULT WINAPI IShellBrowserImpl_OnViewWindowActive(IShellBrowser *iface,
164 IShellView *ppshv);
167 HRESULT WINAPI IShellBrowserImpl_QueryActiveShellView(IShellBrowser *iface,
168 IShellView **ppshv);
170 HRESULT WINAPI IShellBrowserImpl_RemoveMenusSB(IShellBrowser *iface,
171 HMENU hmenuShared);
173 HRESULT WINAPI IShellBrowserImpl_SendControlMsg(IShellBrowser *iface,
174 UINT id,
175 UINT uMsg,
176 WPARAM wParam,
177 LPARAM lParam,
178 LRESULT *pret);
180 HRESULT WINAPI IShellBrowserImpl_SetMenuSB(IShellBrowser *iface,
181 HMENU hmenuShared,
182 HOLEMENU holemenuReserved,
183 HWND hwndActiveObject);
185 HRESULT WINAPI IShellBrowserImpl_SetStatusTextSB(IShellBrowser *iface,
186 LPCOLESTR lpszStatusText);
189 HRESULT WINAPI IShellBrowserImpl_SetToolbarItems(IShellBrowser *iface,
190 LPTBBUTTON lpButtons,
191 UINT nButtons,
192 UINT uFlags);
194 HRESULT WINAPI IShellBrowserImpl_TranslateAcceleratorSB(IShellBrowser *iface,
195 LPMSG lpmsg,
196 WORD wID);
199 /* ICommDlgBrowser */
201 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_QueryInterface(ICommDlgBrowser *iface,
202 REFIID riid,
203 LPVOID *ppvObj);
205 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_AddRef(ICommDlgBrowser * iface);
207 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_Release(ICommDlgBrowser * iface);
209 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser *iface,
210 IShellView *ppshv);
212 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnStateChange(ICommDlgBrowser *iface,
213 IShellView *ppshv,
214 ULONG uChange);
216 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *iface,
217 IShellView * ppshv,
218 LPCITEMIDLIST pidl);
221 LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex);
222 UINT GetNumSelected(IDataObject *doSelected);
224 /* pidl handling */
225 BOOL IsPidlFolder (LPSHELLFOLDER psf, LPITEMIDLIST pidl);
227 /* Functions used by the EDIT box */
228 void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
229 int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPSTR * lpstrFileList, UINT * sizeUsed);
231 #endif /*SHBROWSER_H*/