- Begin attempt at usage of the OPEN_PACKET for I/O Create operations. Currently...
[reactos.git] / reactos / dll / win32 / comdlg32 / filedlgbrowser.h
1 /*
2 * Implementation of IShellBrowser for the File Open common dialog
3 *
4 * Copyright 1999 Francois Boisvert
5 * Copyright 1999, 2000 Juergen Schmied
6 *
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.
11 *
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.
16 *
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
20 */
21
22 #ifndef SHBROWSER_H
23 #define SHBROWSER_H
24
25 #ifndef RC_INVOKED
26 #include <stdarg.h>
27 #endif
28
29 #define COM_NO_WINDOWS_H
30 #include "windef.h"
31 #include "winbase.h"
32 #include "winuser.h"
33 #include "shlobj.h"
34 #include "objbase.h"
35 #include "commdlg.h"
36
37 /***********************************************************************
38 * Defines and global variables
39 */
40
41 /* dialog internal property */
42
43 #define FODPROP_SAVEDLG 0x0001 /* File dialog is a Save file dialog */
44 #define FODPROP_USEVIEW 0x0002 /* Indicates the user selection must be taken
45 from the IShellView */
46
47 /***********************************************************************
48 * Data structure
49 */
50
51
52 typedef struct
53 {
54 LPOPENFILENAMEW ofnInfos;
55 BOOL unicode;
56 LPWSTR initdir;
57 LPWSTR filename;
58 LPCWSTR title;
59 LPCWSTR defext;
60 LPCWSTR filter;
61 LPCWSTR customfilter;
62 struct {
63 IShellBrowser *FOIShellBrowser;
64 IShellFolder *FOIShellFolder;
65 IShellView *FOIShellView;
66 IDataObject *FOIDataObject;
67 } Shell;
68
69 struct {
70 HWND hwndOwner;
71 HWND hwndView;
72 FOLDERSETTINGS folderSettings;
73 LPITEMIDLIST pidlAbsCurrent;
74 LPWSTR lpstrCurrentFilter;
75 } ShellInfos;
76
77 struct {
78 HWND hwndFileTypeCB;
79 HWND hwndLookInCB;
80 HWND hwndFileName;
81 HWND hwndTB;
82 HWND hwndCustomDlg;
83 DWORD dwDlgProp;
84 } DlgInfos;
85
86 struct {
87 UINT fileokstring;
88 UINT lbselchstring;
89 UINT helpmsgstring;
90 UINT sharevistring;
91 } HookMsg;
92
93 } FileOpenDlgInfos;
94
95 /***********************************************************************
96 * Control ID's
97 */
98 #define IDS_ABOUTBOX 101
99 #define IDS_DOCUMENTFOLDERS 102
100 #define IDS_PERSONAL 103
101 #define IDS_FAVORITES 104
102 #define IDS_PATH 105
103 #define IDS_DESKTOP 106
104
105 #define IDS_FONTS 108
106 #define IDS_MYCOMPUTER 110
107 #define IDS_SYSTEMFOLDERS 112
108 #define IDS_LOCALHARDRIVES 113
109 #define IDS_FILENOTFOUND 114
110 #define IDS_VERIFYFILE 115
111 #define IDS_CREATEFILE 116
112 #define IDS_CREATEFOLDER_DENIED 117
113 #define IDS_FILEOPEN_CAPTION 118
114 #define IDS_OVERWRITEFILE 119
115 #define IDS_INVALID_FILENAME_TITLE 120
116 #define IDS_INVALID_FILENAME 121
117 #define IDS_PATHNOTEXISTING 122
118 #define IDS_FILENOTEXISTING 123
119
120 /* File Dialog Tooltips string IDs */
121
122 #define IDS_UPFOLDER 150
123 #define IDS_NEWFOLDER 151
124 #define IDS_LISTVIEW 152
125 #define IDS_REPORTVIEW 153
126 #define IDS_TODESKTOP 154
127
128 #define IDC_OPENREADONLY chx1
129
130 #define IDC_TOOLBARSTATIC stc1
131 #define IDC_FILETYPESTATIC stc2
132 #define IDC_FILENAMESTATIC stc3
133 #define IDC_LOOKINSTATIC stc4
134
135 #define IDC_SHELLSTATIC lst1
136
137 #define IDC_FILETYPE cmb1
138 #define IDC_LOOKIN cmb2
139
140 #define IDC_FILENAME edt1
141
142 #define IDC_TOOLBAR 1
143
144 /***********************************************************************
145 * Prototypes for the methods of the IShellBrowserImpl class
146 */
147 /* Constructor */
148 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
149
150
151 LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex);
152 UINT GetNumSelected(IDataObject *doSelected);
153
154 /* pidl handling */
155 BOOL IsPidlFolder (LPSHELLFOLDER psf, LPCITEMIDLIST pidl);
156
157 /* Functions used by the EDIT box */
158 void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
159
160 #endif /*SHBROWSER_H*/