2 * Implementation of IShellBrowser for the File Open common dialog
8 #define SHBROWSER_H TRUE
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 /***********************************************************************
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 */
44 LPOPENFILENAMEA ofnInfos;
46 IShellBrowser *FOIShellBrowser;
47 IShellFolder *FOIShellFolder;
48 IShellView *FOIShellView;
49 IDataObject *FOIDataObject;
56 FOLDERSETTINGS folderSettings;
57 LPITEMIDLIST pidlAbsCurrent;
58 LPWSTR lpstrCurrentFilter;
72 /***********************************************************************
75 #define IDS_ABOUTBOX 101
76 #define IDS_DOCUMENTFOLDERS 102
77 #define IDS_PERSONAL 103
78 #define IDS_FAVORITES 104
80 #define IDS_DESKTOP 106
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
103 #define IDS_TODESKTOP 154
105 #define IDC_OPENREADONLY chx1
107 #define IDC_TOOLBARSTATIC stc1
108 #define IDC_FILETYPESTATIC stc2
109 #define IDC_FILENAMESTATIC stc3
110 #define IDC_LOOKINSTATIC stc4
112 #define IDC_SHELLSTATIC lst1
114 #define IDC_FILETYPE cmb1
115 #define IDC_LOOKIN cmb2
117 #define IDC_FILENAME edt1
119 #define IDC_TOOLBAR ctl1
121 /***********************************************************************
122 * Prototypes for the methods of the IShellBrowserImpl class
125 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
128 HRESULT WINAPI IShellBrowserImpl_QueryInterface(IShellBrowser *iface,
132 ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface);
134 ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface);
137 HRESULT WINAPI IShellBrowserImpl_GetWindow(IShellBrowser * iface,
140 HRESULT WINAPI IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser * iface,
145 HRESULT WINAPI IShellBrowserImpl_BrowseObject(IShellBrowser *iface,
149 HRESULT WINAPI IShellBrowserImpl_EnableModelessSB(IShellBrowser *iface,
152 HRESULT WINAPI IShellBrowserImpl_GetControlWindow(IShellBrowser *iface,
156 HRESULT WINAPI IShellBrowserImpl_GetViewStateStream(IShellBrowser *iface,
160 HRESULT WINAPI IShellBrowserImpl_InsertMenusSB(IShellBrowser *iface,
162 LPOLEMENUGROUPWIDTHS lpMenuWidths);
164 HRESULT WINAPI IShellBrowserImpl_OnViewWindowActive(IShellBrowser *iface,
168 HRESULT WINAPI IShellBrowserImpl_QueryActiveShellView(IShellBrowser *iface,
171 HRESULT WINAPI IShellBrowserImpl_RemoveMenusSB(IShellBrowser *iface,
174 HRESULT WINAPI IShellBrowserImpl_SendControlMsg(IShellBrowser *iface,
181 HRESULT WINAPI IShellBrowserImpl_SetMenuSB(IShellBrowser *iface,
183 HOLEMENU holemenuReserved,
184 HWND hwndActiveObject);
186 HRESULT WINAPI IShellBrowserImpl_SetStatusTextSB(IShellBrowser *iface,
187 LPCOLESTR lpszStatusText);
190 HRESULT WINAPI IShellBrowserImpl_SetToolbarItems(IShellBrowser *iface,
191 LPTBBUTTON lpButtons,
195 HRESULT WINAPI IShellBrowserImpl_TranslateAcceleratorSB(IShellBrowser *iface,
200 /* ICommDlgBrowser */
202 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_QueryInterface(ICommDlgBrowser *iface,
206 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_AddRef(ICommDlgBrowser * iface);
208 ULONG WINAPI IShellBrowserImpl_ICommDlgBrowser_Release(ICommDlgBrowser * iface);
210 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser *iface,
213 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_OnStateChange(ICommDlgBrowser *iface,
217 HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser *iface,
222 LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex);
223 UINT GetNumSelected(IDataObject *doSelected);
226 BOOL IsPidlFolder (LPSHELLFOLDER psf, LPITEMIDLIST pidl);
228 /* Functions used by the EDIT box */
229 void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
230 int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPSTR * lpstrFileList, UINT * sizeUsed);
232 #endif /*SHBROWSER_H*/