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
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
124 IShellBrowser
* IShellBrowserImpl_Construct(HWND hwndOwner
);
127 HRESULT WINAPI
IShellBrowserImpl_QueryInterface(IShellBrowser
*iface
,
131 ULONG WINAPI
IShellBrowserImpl_AddRef(IShellBrowser
* iface
);
133 ULONG WINAPI
IShellBrowserImpl_Release(IShellBrowser
* iface
);
136 HRESULT WINAPI
IShellBrowserImpl_GetWindow(IShellBrowser
* iface
,
139 HRESULT WINAPI
IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser
* iface
,
144 HRESULT WINAPI
IShellBrowserImpl_BrowseObject(IShellBrowser
*iface
,
148 HRESULT WINAPI
IShellBrowserImpl_EnableModelessSB(IShellBrowser
*iface
,
151 HRESULT WINAPI
IShellBrowserImpl_GetControlWindow(IShellBrowser
*iface
,
155 HRESULT WINAPI
IShellBrowserImpl_GetViewStateStream(IShellBrowser
*iface
,
159 HRESULT WINAPI
IShellBrowserImpl_InsertMenusSB(IShellBrowser
*iface
,
161 LPOLEMENUGROUPWIDTHS lpMenuWidths
);
163 HRESULT WINAPI
IShellBrowserImpl_OnViewWindowActive(IShellBrowser
*iface
,
167 HRESULT WINAPI
IShellBrowserImpl_QueryActiveShellView(IShellBrowser
*iface
,
170 HRESULT WINAPI
IShellBrowserImpl_RemoveMenusSB(IShellBrowser
*iface
,
173 HRESULT WINAPI
IShellBrowserImpl_SendControlMsg(IShellBrowser
*iface
,
180 HRESULT WINAPI
IShellBrowserImpl_SetMenuSB(IShellBrowser
*iface
,
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
,
194 HRESULT WINAPI
IShellBrowserImpl_TranslateAcceleratorSB(IShellBrowser
*iface
,
199 /* ICommDlgBrowser */
201 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_QueryInterface(ICommDlgBrowser
*iface
,
205 ULONG WINAPI
IShellBrowserImpl_ICommDlgBrowser_AddRef(ICommDlgBrowser
* iface
);
207 ULONG WINAPI
IShellBrowserImpl_ICommDlgBrowser_Release(ICommDlgBrowser
* iface
);
209 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser
*iface
,
212 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_OnStateChange(ICommDlgBrowser
*iface
,
216 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser
*iface
,
221 LPITEMIDLIST
GetPidlFromDataObject ( IDataObject
*doSelected
, UINT nPidlIndex
);
222 UINT
GetNumSelected(IDataObject
*doSelected
);
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*/