2 * Win3.1 style File Dialog interface (32 bit)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _WINE_DLL_FILEDLG31_H
20 #define _WINE_DLL_FILEDLG31_H
22 #define FD31_OFN_PROP "FILEDLG_OFN"
25 typedef struct tagFD31_DATA
*PFD31_DATA
;
27 typedef struct tagFD31_CALLBACKS
29 BOOL (CALLBACK
*Init
)(LPARAM lParam
, PFD31_DATA lfs
, DWORD data
);
30 BOOL (CALLBACK
*CWP
)(PFD31_DATA lfs
, UINT wMsg
, WPARAM wParam
,
31 LPARAM lParam
); /* CWP instead of CallWindowProc to avoid macro expansion */
32 void (CALLBACK
*UpdateResult
)(PFD31_DATA lfs
);
33 void (CALLBACK
*UpdateFileTitle
)(PFD31_DATA lfs
);
34 LRESULT (CALLBACK
*SendLbGetCurSel
)(PFD31_DATA lfs
);
35 void (CALLBACK
*Destroy
)(PFD31_DATA lfs
);
36 } FD31_CALLBACKS
, *PFD31_CALLBACKS
;
38 typedef struct tagFD31_DATA
40 HWND hwnd
; /* file dialog window handle */
41 BOOL hook
; /* TRUE if the dialog is hooked */
42 UINT lbselchstring
; /* registered message id */
43 UINT fileokstring
; /* registered message id */
44 LPARAM lParam
; /* save original lparam */
45 LPCVOID
template; /* template for 32 bits resource */
46 BOOL open
; /* TRUE if open dialog, FALSE if save dialog */
47 LPOPENFILENAMEW ofnW
; /* pointer either to the original structure or
48 a W copy for A/16 API */
49 LPVOID private1632
; /* 16/32 bit caller private data */
50 PFD31_CALLBACKS callbacks
; /* callbacks to handle 16/32 bit differences */
53 extern BOOL
FD31_Init(void);
54 extern PFD31_DATA
FD31_AllocPrivate(LPARAM lParam
, UINT dlgType
,
55 PFD31_CALLBACKS callbacks
, DWORD data
);
56 extern void FD31_DestroyPrivate(PFD31_DATA lfs
);
57 extern void FD31_MapOfnStructA(LPOPENFILENAMEA ofnA
, LPOPENFILENAMEW ofnW
, BOOL open
);
58 extern void FD31_FreeOfnW(LPOPENFILENAMEW ofnW
);
59 extern BOOL
FD31_CallWindowProc(PFD31_DATA lfs
, UINT wMsg
, WPARAM wParam
,
61 extern LONG
FD31_WMInitDialog(HWND hWnd
, WPARAM wParam
, LPARAM lParam
);
62 extern LONG
FD31_WMDrawItem(HWND hWnd
, WPARAM wParam
, LPARAM lParam
,
63 int savedlg
, LPDRAWITEMSTRUCT lpdis
);
64 extern LRESULT
FD31_WMCommand(HWND hWnd
, LPARAM lParam
, UINT notification
,
65 UINT control
, PFD31_DATA lfs
);
66 extern int FD31_GetFldrHeight(void);
68 #endif /* _WINE_DLL_FILEDLG31_H */