2 * Implementation of IShellBrowser for the File Open common dialog
4 * Copyright 1999 Francois Boisvert
5 * Copyright 1999, 2000 Juergen Schmied
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 /***********************************************************************
31 * Defines and global variables
33 #define _ICommDlgBrowser_Offset ((int)(&(((IShellBrowserImpl*)0)->lpVtblCommDlgBrowser)))
34 #define _ICOM_THIS_FromICommDlgBrowser(class, name) class* This = (class*)(((char*)name)-_ICommDlgBrowser_Offset);
36 #define _IServiceProvider_Offset ((int)(&(((IShellBrowserImpl*)0)->lpVtblServiceProvider)))
37 #define _ICOM_THIS_FromIServiceProvider(class, name) class* This = (class*)(((char*)name)-_IServiceProvider_Offset);
39 /* dialog internal property */
41 #define FODPROP_SAVEDLG 0x0001 /* File dialog is a Save file dialog */
42 #define FODPROP_USEVIEW 0x0002 /* Indicates the user selection must be taken
43 from the IShellView */
45 /***********************************************************************
53 LPOPENFILENAMEA ofnInfos;
55 IShellBrowser *FOIShellBrowser;
56 IShellFolder *FOIShellFolder;
57 IShellView *FOIShellView;
58 IDataObject *FOIDataObject;
65 FOLDERSETTINGS folderSettings;
66 LPITEMIDLIST pidlAbsCurrent;
67 LPWSTR lpstrCurrentFilter;
88 /***********************************************************************
91 #define IDS_ABOUTBOX 101
92 #define IDS_DOCUMENTFOLDERS 102
93 #define IDS_PERSONAL 103
94 #define IDS_FAVORITES 104
96 #define IDS_DESKTOP 106
99 #define IDS_MYCOMPUTER 110
100 #define IDS_SYSTEMFOLDERS 112
101 #define IDS_LOCALHARDRIVES 113
102 #define IDS_FILENOTFOUND 114
103 #define IDS_VERIFYFILE 115
104 #define IDS_CREATEFILE 116
105 #define IDS_CREATEFOLDER_DENIED 117
106 #define IDS_FILEOPEN_CAPTION 118
107 #define IDL_OVERWRITEFILE 119
108 #define IDS_INVALID_FILENAME_TITLE 120
109 #define IDS_INVALID_FILENAME 121
110 #define IDS_PATHNOTEXISTING 122
111 #define IDS_FILENOTEXISTING 123
113 /* File Dialog Tooltips string IDs */
115 #define IDS_UPFOLDER 150
116 #define IDS_NEWFOLDER 151
117 #define IDS_LISTVIEW 152
118 #define IDS_REPORTVIEW 153
119 #define IDS_TODESKTOP 154
121 #define IDC_OPENREADONLY chx1
123 #define IDC_TOOLBARSTATIC stc1
124 #define IDC_FILETYPESTATIC stc2
125 #define IDC_FILENAMESTATIC stc3
126 #define IDC_LOOKINSTATIC stc4
128 #define IDC_SHELLSTATIC lst1
130 #define IDC_FILETYPE cmb1
131 #define IDC_LOOKIN cmb2
133 #define IDC_FILENAME edt1
135 #define IDC_TOOLBAR ctl1
137 /***********************************************************************
138 * Prototypes for the methods of the IShellBrowserImpl class
141 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
144 LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex);
145 UINT GetNumSelected(IDataObject *doSelected);
148 BOOL IsPidlFolder (LPSHELLFOLDER psf, LPITEMIDLIST pidl);
150 /* Functions used by the EDIT box */
151 void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
152 int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPSTR * lpstrFileList, UINT * sizeUsed);
154 #endif /*SHBROWSER_H*/