filedlgbrowser.h 4.5 KB
Newer Older
1 2
/*
 *  Implementation of IShellBrowser for the File Open common dialog
3
 *
4 5
 * Copyright 1999 Francois Boisvert
 * Copyright 1999, 2000 Juergen Schmied
6
 *
7 8 9 10 11 12 13 14 15 16 17 18
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * 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 26 27 28 29
#ifndef RC_INVOKED
#include <stdarg.h>
#endif

#include "windef.h"
30
#include "winbase.h"
31 32
#include "winuser.h"
#include "shlobj.h"
33 34 35 36 37 38 39
#include "objbase.h"
#include "commdlg.h"

/***********************************************************************
 * Defines and global variables
 */

40 41 42
/* dialog internal property */

#define FODPROP_SAVEDLG 0x0001  /* File dialog is a Save file dialog */
43
#define FODPROP_USEVIEW 0x0002  /* Indicates the user selection must be taken
44 45
				   from the IShellView */

46 47 48 49 50 51 52
/***********************************************************************
 * Data structure
 */


typedef struct
{
Jacek Caban's avatar
Jacek Caban committed
53
    LPOPENFILENAMEW ofnInfos;
54 55 56 57 58 59 60
    BOOL unicode;
    LPWSTR initdir;
    LPWSTR filename;
    LPCWSTR title;
    LPCWSTR defext;
    LPCWSTR filter;
    LPCWSTR customfilter;
61 62
    SIZE sizedlg; /* remember the size of the dialog */
    POINT initial_size; /* remember the initial size of the dialog */
63
    struct {
64
        IShellBrowser *FOIShellBrowser;
65 66
        IShellFolder *FOIShellFolder;
        IShellView *FOIShellView;
67
	IDataObject *FOIDataObject;
68 69 70 71 72 73 74 75 76 77 78 79 80 81
    } Shell;

    struct {
        HWND hwndOwner;
        HWND hwndView;
        FOLDERSETTINGS folderSettings;
        LPITEMIDLIST pidlAbsCurrent;
        LPWSTR lpstrCurrentFilter;
    } ShellInfos;

    struct {
        HWND hwndFileTypeCB;
        HWND hwndLookInCB;
        HWND hwndFileName;
82
	HWND hwndTB;
83
	HWND hwndGrip;
84
        HWND hwndCustomDlg;
85
	DWORD dwDlgProp;
86 87
    } DlgInfos;

88 89 90 91 92 93 94
    struct {
	UINT fileokstring;
	UINT lbselchstring;
	UINT helpmsgstring;
	UINT sharevistring;
    } HookMsg;

95 96
} FileOpenDlgInfos;

97
/***********************************************************************
98
 * Control IDs
99 100 101 102
 */
#define IDS_FILENOTFOUND                114
#define IDS_VERIFYFILE                  115
#define IDS_CREATEFILE                  116
103
#define IDS_OVERWRITEFILE		119
104 105 106 107
#define IDS_INVALID_FILENAME_TITLE	120
#define IDS_INVALID_FILENAME		121
#define IDS_PATHNOTEXISTING		122
#define IDS_FILENOTEXISTING		123
108
#define IDS_INVALID_FOLDERNAME		124
109

Alexandre Julliard's avatar
Alexandre Julliard committed
110 111 112 113 114 115
/* File Dialog Tooltips string IDs */

#define IDS_UPFOLDER                    150
#define IDS_NEWFOLDER                   151
#define IDS_LISTVIEW                    152
#define IDS_REPORTVIEW                  153
Juergen Schmied's avatar
Juergen Schmied committed
116
#define IDS_TODESKTOP                   154
Alexandre Julliard's avatar
Alexandre Julliard committed
117

118 119 120 121 122 123 124 125 126 127 128 129 130 131
#define IDC_OPENREADONLY                chx1

#define IDC_TOOLBARSTATIC		stc1
#define IDC_FILETYPESTATIC              stc2
#define IDC_FILENAMESTATIC              stc3
#define IDC_LOOKINSTATIC                stc4

#define IDC_SHELLSTATIC                 lst1

#define IDC_FILETYPE                    cmb1
#define IDC_LOOKIN                      cmb2

#define IDC_FILENAME                    edt1

132
#define IDC_TOOLBAR			1
133

134 135 136 137
/***********************************************************************
 * Prototypes for the methods of the IShellBrowserImpl class
 */
/* Constructor */
138
IShellBrowser * IShellBrowserImpl_Construct(HWND hwndOwner) DECLSPEC_HIDDEN;
139 140


141
LPITEMIDLIST GetPidlFromDataObject ( IDataObject *doSelected, UINT nPidlIndex) DECLSPEC_HIDDEN;
142 143

/* Functions used by the EDIT box */
144
void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd) DECLSPEC_HIDDEN;
145

146 147 148
/**************************************************************************
*   External Prototypes
*/
149
extern const char FileOpenDlgInfosStr[] DECLSPEC_HIDDEN;
150

151 152
extern IShellFolder*    GetShellFolderFromPidl(LPITEMIDLIST pidlAbs) DECLSPEC_HIDDEN;
extern LPITEMIDLIST     GetParentPidl(LPITEMIDLIST pidl) DECLSPEC_HIDDEN;
153

154 155
extern int     FILEDLG95_LOOKIN_SelectItem(HWND hwnd,LPITEMIDLIST pidl) DECLSPEC_HIDDEN;
extern LRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode) DECLSPEC_HIDDEN;
156

157
#endif /*SHBROWSER_H*/