Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/dlls/comdlg32/filedlgbrowser.h
4389 views
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20
*/
21
22
#ifndef SHBROWSER_H
23
#define SHBROWSER_H
24
25
#ifndef RC_INVOKED
26
#include <stdarg.h>
27
#endif
28
29
#include "windef.h"
30
#include "winbase.h"
31
#include "winuser.h"
32
#include "shlobj.h"
33
#include "objbase.h"
34
#include "commdlg.h"
35
36
/***********************************************************************
37
* Defines and global variables
38
*/
39
40
/* dialog internal property */
41
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 */
45
46
/***********************************************************************
47
* Data structure
48
*/
49
50
51
typedef struct
52
{
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;
69
70
struct {
71
HWND hwndOwner;
72
HWND hwndView;
73
FOLDERSETTINGS folderSettings;
74
LPITEMIDLIST pidlAbsCurrent;
75
LPWSTR lpstrCurrentFilter;
76
} ShellInfos;
77
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;
87
88
struct {
89
UINT fileokstring;
90
UINT lbselchstring;
91
UINT helpmsgstring;
92
UINT sharevistring;
93
} HookMsg;
94
95
BOOL ole_initialized;
96
LPITEMIDLIST places[5];
97
} FileOpenDlgInfos;
98
99
/***********************************************************************
100
* Control IDs
101
*/
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
111
112
/* File Dialog Tooltips string IDs */
113
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
119
120
#define IDC_OPENREADONLY chx1
121
122
#define IDC_TOOLBARSTATIC stc1
123
#define IDC_FILETYPESTATIC stc2
124
#define IDC_FILENAMESTATIC stc3
125
#define IDC_LOOKINSTATIC stc4
126
127
#define IDC_SHELLSTATIC lst1
128
129
#define IDC_FILETYPE cmb1
130
#define IDC_LOOKIN cmb2
131
132
#define IDC_FILENAME edt1
133
134
#define IDC_TOOLBAR 1
135
#define IDC_TOOLBARPLACES ctl1
136
137
/***********************************************************************
138
* Prototypes for the methods of the IShellBrowserImpl class
139
*/
140
/* Constructor */
141
IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner);
142
143
144
LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex);
145
146
/* Functions used by the EDIT box */
147
void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd);
148
149
/**************************************************************************
150
* External Prototypes
151
*/
152
extern FileOpenDlgInfos *get_filedlg_infoptr(HWND hwnd);
153
154
extern IShellFolder* GetShellFolderFromPidl(LPITEMIDLIST pidlAbs);
155
extern LPITEMIDLIST GetParentPidl(LPITEMIDLIST pidl);
156
157
extern int FILEDLG95_LOOKIN_SelectItem(HWND hwnd,LPITEMIDLIST pidl);
158
extern LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode);
159
160
#endif /*SHBROWSER_H*/
161
162