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 OPENFILENAMEA ofnInfos
;
46 IShellBrowser
*FOIShellBrowser
;
47 IShellFolder
*FOIShellFolder
;
48 IShellView
*FOIShellView
;
55 FOLDERSETTINGS folderSettings
;
56 LPITEMIDLIST pidlAbsCurrent
;
57 LPWSTR lpstrCurrentFilter
;
71 /***********************************************************************
74 #define IDS_ABOUTBOX 101
75 #define IDS_DOCUMENTFOLDERS 102
76 #define IDS_PERSONAL 103
77 #define IDS_FAVORITES 104
79 #define IDS_DESKTOP 106
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
89 #define IDC_OPENREADONLY chx1
91 #define IDC_TOOLBARSTATIC stc1
92 #define IDC_FILETYPESTATIC stc2
93 #define IDC_FILENAMESTATIC stc3
94 #define IDC_LOOKINSTATIC stc4
96 #define IDC_SHELLSTATIC lst1
98 #define IDC_FILETYPE cmb1
99 #define IDC_LOOKIN cmb2
101 #define IDC_FILENAME edt1
103 #define IDC_TOOLBAR ctl1
105 /***********************************************************************
106 * Prototypes for the methods of the IShellBrowserImpl class
109 IShellBrowser
* IShellBrowserImpl_Construct(HWND hwndOwner
);
112 HRESULT WINAPI
IShellBrowserImpl_QueryInterface(IShellBrowser
*iface
,
116 ULONG WINAPI
IShellBrowserImpl_AddRef(IShellBrowser
* iface
);
118 ULONG WINAPI
IShellBrowserImpl_Release(IShellBrowser
* iface
);
121 HRESULT WINAPI
IShellBrowserImpl_GetWindow(IShellBrowser
* iface
,
124 HRESULT WINAPI
IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser
* iface
,
129 HRESULT WINAPI
IShellBrowserImpl_BrowseObject(IShellBrowser
*iface
,
133 HRESULT WINAPI
IShellBrowserImpl_EnableModelessSB(IShellBrowser
*iface
,
136 HRESULT WINAPI
IShellBrowserImpl_GetControlWindow(IShellBrowser
*iface
,
140 HRESULT WINAPI
IShellBrowserImpl_GetViewStateStream(IShellBrowser
*iface
,
144 HRESULT WINAPI
IShellBrowserImpl_InsertMenusSB(IShellBrowser
*iface
,
146 LPOLEMENUGROUPWIDTHS lpMenuWidths
);
148 HRESULT WINAPI
IShellBrowserImpl_OnViewWindowActive(IShellBrowser
*iface
,
152 HRESULT WINAPI
IShellBrowserImpl_QueryActiveShellView(IShellBrowser
*iface
,
155 HRESULT WINAPI
IShellBrowserImpl_RemoveMenusSB(IShellBrowser
*iface
,
158 HRESULT WINAPI
IShellBrowserImpl_SendControlMsg(IShellBrowser
*iface
,
165 HRESULT WINAPI
IShellBrowserImpl_SetMenuSB(IShellBrowser
*iface
,
167 HOLEMENU holemenuReserved
,
168 HWND hwndActiveObject
);
170 HRESULT WINAPI
IShellBrowserImpl_SetStatusTextSB(IShellBrowser
*iface
,
171 LPCOLESTR lpszStatusText
);
174 HRESULT WINAPI
IShellBrowserImpl_SetToolbarItems(IShellBrowser
*iface
,
175 LPTBBUTTON lpButtons
,
179 HRESULT WINAPI
IShellBrowserImpl_TranslateAcceleratorSB(IShellBrowser
*iface
,
184 /* ICommDlgBrowser */
186 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_QueryInterface(ICommDlgBrowser
*iface
,
190 ULONG WINAPI
IShellBrowserImpl_ICommDlgBrowser_AddRef(ICommDlgBrowser
* iface
);
192 ULONG WINAPI
IShellBrowserImpl_ICommDlgBrowser_Release(ICommDlgBrowser
* iface
);
194 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser
*iface
,
197 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_OnStateChange(ICommDlgBrowser
*iface
,
201 HRESULT WINAPI
IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBrowser
*iface
,
207 LPITEMIDLIST
GetSelectedPidl(IShellView
*ppshv
);
209 #endif /*SHBROWSER_H*/