winewayland.drv: Ensure outputs can access xdg information robustly.
[wine.git] / dlls / comdlg32 / filedlgbrowser.h
blob21eb3d56dfe1da94157edbcb4939f15c09d83352
1 /*
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef SHBROWSER_H
23 #define SHBROWSER_H
25 #ifndef RC_INVOKED
26 #include <stdarg.h>
27 #endif
29 #include "windef.h"
30 #include "winbase.h"
31 #include "winuser.h"
32 #include "shlobj.h"
33 #include "objbase.h"
34 #include "commdlg.h"
36 /***********************************************************************
37 * Defines and global variables
40 /* dialog internal property */
42 #define FODPROP_SAVEDLG 0x0001 /* File dialog is a Save file dialog */
43 #define FODPROP_USEVIEW 0x0002 /* Indicates the user selection must be taken
44 from the IShellView */
46 /***********************************************************************
47 * Data structure
51 typedef struct
53 LPOPENFILENAMEW ofnInfos;
54 BOOL unicode;
55 LPWSTR initdir;
56 LPWSTR filename;
57 LPCWSTR title;
58 LPCWSTR defext;
59 LPCWSTR filter;
60 LPCWSTR customfilter;
61 SIZE sizedlg; /* remember the size of the dialog */
62 POINT initial_size; /* remember the initial size of the dialog */
63 struct {
64 IShellBrowser *FOIShellBrowser;
65 IShellFolder *FOIShellFolder;
66 IShellView *FOIShellView;
67 IDataObject *FOIDataObject;
68 } Shell;
70 struct {
71 HWND hwndOwner;
72 HWND hwndView;
73 FOLDERSETTINGS folderSettings;
74 LPITEMIDLIST pidlAbsCurrent;
75 LPWSTR lpstrCurrentFilter;
76 } ShellInfos;
78 struct {
79 HWND hwndFileTypeCB;
80 HWND hwndLookInCB;
81 HWND hwndFileName;
82 HWND hwndTB;
83 HWND hwndGrip;
84 HWND hwndCustomDlg;
85 DWORD dwDlgProp;
86 } DlgInfos;
88 struct {
89 UINT fileokstring;
90 UINT lbselchstring;
91 UINT helpmsgstring;
92 UINT sharevistring;
93 } HookMsg;
95 BOOL ole_initialized;
96 LPITEMIDLIST places[5];
97 } FileOpenDlgInfos;
99 /***********************************************************************
100 * Control IDs
102 #define IDS_FILENOTFOUND 114
103 #define IDS_VERIFYFILE 115
104 #define IDS_CREATEFILE 116
105 #define IDS_OVERWRITEFILE 119
106 #define IDS_INVALID_FILENAME_TITLE 120
107 #define IDS_INVALID_FILENAME 121
108 #define IDS_PATHNOTEXISTING 122
109 #define IDS_FILENOTEXISTING 123
110 #define IDS_INVALID_FOLDERNAME 124
112 /* File Dialog Tooltips string IDs */
114 #define IDS_UPFOLDER 150
115 #define IDS_NEWFOLDER 151
116 #define IDS_LISTVIEW 152
117 #define IDS_REPORTVIEW 153
118 #define IDS_TODESKTOP 154
120 #define IDC_OPENREADONLY chx1
122 #define IDC_TOOLBARSTATIC stc1
123 #define IDC_FILETYPESTATIC stc2
124 #define IDC_FILENAMESTATIC stc3
125 #define IDC_LOOKINSTATIC stc4
127 #define IDC_SHELLSTATIC lst1
129 #define IDC_FILETYPE cmb1
130 #define IDC_LOOKIN cmb2
132 #define IDC_FILENAME edt1
134 #define IDC_TOOLBAR 1
135 #define IDC_TOOLBARPLACES ctl1
137 /***********************************************************************
138 * Prototypes for the methods of the IShellBrowserImpl class
140 /* Constructor */
141 IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner) DECLSPEC_HIDDEN;
144 LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex) DECLSPEC_HIDDEN;
146 /* Functions used by the EDIT box */
147 void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd) DECLSPEC_HIDDEN;
149 /**************************************************************************
150 * External Prototypes
152 extern FileOpenDlgInfos *get_filedlg_infoptr(HWND hwnd) DECLSPEC_HIDDEN;
154 extern IShellFolder* GetShellFolderFromPidl(LPITEMIDLIST pidlAbs) DECLSPEC_HIDDEN;
155 extern LPITEMIDLIST GetParentPidl(LPITEMIDLIST pidl) DECLSPEC_HIDDEN;
157 extern int FILEDLG95_LOOKIN_SelectItem(HWND hwnd,LPITEMIDLIST pidl) DECLSPEC_HIDDEN;
158 extern LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode) DECLSPEC_HIDDEN;
160 #endif /*SHBROWSER_H*/