Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d2633549
Commit
d2633549
authored
Sep 19, 2012
by
Huw Davies
Committed by
Alexandre Julliard
Sep 19, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comdlg32: Move all of the win 3.1 style functionality into the same file.
parent
bd516247
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
197 additions
and
247 deletions
+197
-247
cdlg.h
dlls/comdlg32/cdlg.h
+3
-0
filedlg.c
dlls/comdlg32/filedlg.c
+0
-183
filedlg31.c
dlls/comdlg32/filedlg31.c
+194
-12
filedlg31.h
dlls/comdlg32/filedlg31.h
+0
-52
No files found.
dlls/comdlg32/cdlg.h
View file @
d2633549
...
@@ -177,6 +177,9 @@ int FILEDLG95_ValidatePathAction(LPWSTR lpstrPathAndFile, IShellFolder **ppsf,
...
@@ -177,6 +177,9 @@ int FILEDLG95_ValidatePathAction(LPWSTR lpstrPathAndFile, IShellFolder **ppsf,
int
COMDLG32_SplitFileNames
(
LPWSTR
lpstrEdit
,
UINT
nStrLen
,
LPWSTR
*
lpstrFileList
,
UINT
*
sizeUsed
)
DECLSPEC_HIDDEN
;
int
COMDLG32_SplitFileNames
(
LPWSTR
lpstrEdit
,
UINT
nStrLen
,
LPWSTR
*
lpstrFileList
,
UINT
*
sizeUsed
)
DECLSPEC_HIDDEN
;
void
FILEDLG95_OnOpenMessage
(
HWND
hwnd
,
int
idCaption
,
int
idText
)
DECLSPEC_HIDDEN
;
void
FILEDLG95_OnOpenMessage
(
HWND
hwnd
,
int
idCaption
,
int
idText
)
DECLSPEC_HIDDEN
;
extern
BOOL
GetFileName31A
(
OPENFILENAMEA
*
lpofn
,
UINT
dlgType
)
DECLSPEC_HIDDEN
;
extern
BOOL
GetFileName31W
(
OPENFILENAMEW
*
lpofn
,
UINT
dlgType
)
DECLSPEC_HIDDEN
;
/* ITEMIDLIST */
/* ITEMIDLIST */
extern
LPITEMIDLIST
(
WINAPI
*
COMDLG32_PIDL_ILClone
)
(
LPCITEMIDLIST
);
extern
LPITEMIDLIST
(
WINAPI
*
COMDLG32_PIDL_ILClone
)
(
LPCITEMIDLIST
);
...
...
dlls/comdlg32/filedlg.c
View file @
d2633549
...
@@ -68,7 +68,6 @@
...
@@ -68,7 +68,6 @@
#include "commdlg.h"
#include "commdlg.h"
#include "dlgs.h"
#include "dlgs.h"
#include "cdlg.h"
#include "cdlg.h"
#include "filedlg31.h"
#include "cderr.h"
#include "cderr.h"
#include "shellapi.h"
#include "shellapi.h"
#include "shlobj.h"
#include "shlobj.h"
...
@@ -4025,188 +4024,6 @@ static void MemFree(void *mem)
...
@@ -4025,188 +4024,6 @@ static void MemFree(void *mem)
HeapFree
(
GetProcessHeap
(),
0
,
mem
);
HeapFree
(
GetProcessHeap
(),
0
,
mem
);
}
}
/*
* Old-style (win3.1) dialogs */
/***********************************************************************
* FD32_GetTemplate [internal]
*
* Get a template (or FALSE if failure) when 16 bits dialogs are used
* by a 32 bits application
*
*/
BOOL
FD32_GetTemplate
(
PFD31_DATA
lfs
)
{
LPOPENFILENAMEW
ofnW
=
lfs
->
ofnW
;
LPOPENFILENAMEA
ofnA
=
lfs
->
ofnA
;
HANDLE
hDlgTmpl
;
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATEHANDLE
)
{
if
(
!
(
lfs
->
template
=
LockResource
(
ofnW
->
hInstance
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
else
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATE
)
{
HRSRC
hResInfo
;
if
(
ofnA
)
hResInfo
=
FindResourceA
(
ofnA
->
hInstance
,
ofnA
->
lpTemplateName
,
(
LPSTR
)
RT_DIALOG
);
else
hResInfo
=
FindResourceW
(
ofnW
->
hInstance
,
ofnW
->
lpTemplateName
,
(
LPWSTR
)
RT_DIALOG
);
if
(
!
hResInfo
)
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_FINDRESFAILURE
);
return
FALSE
;
}
if
(
!
(
hDlgTmpl
=
LoadResource
(
ofnW
->
hInstance
,
hResInfo
))
||
!
(
lfs
->
template
=
LockResource
(
hDlgTmpl
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
else
{
/* get it from internal Wine resource */
HRSRC
hResInfo
;
if
(
!
(
hResInfo
=
FindResourceA
(
COMDLG32_hInstance
,
lfs
->
open
?
"OPEN_FILE"
:
"SAVE_FILE"
,
(
LPSTR
)
RT_DIALOG
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_FINDRESFAILURE
);
return
FALSE
;
}
if
(
!
(
hDlgTmpl
=
LoadResource
(
COMDLG32_hInstance
,
hResInfo
))
||
!
(
lfs
->
template
=
LockResource
(
hDlgTmpl
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
return
TRUE
;
}
/***********************************************************************
* FD32_WMMeasureItem [internal]
*/
static
LONG
FD32_WMMeasureItem
(
LPARAM
lParam
)
{
LPMEASUREITEMSTRUCT
lpmeasure
;
lpmeasure
=
(
LPMEASUREITEMSTRUCT
)
lParam
;
lpmeasure
->
itemHeight
=
FD31_GetFldrHeight
();
return
TRUE
;
}
/***********************************************************************
* FileOpenDlgProc [internal]
* Used for open and save, in fact.
*/
static
INT_PTR
CALLBACK
FD32_FileOpenDlgProc
(
HWND
hWnd
,
UINT
wMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
PFD31_DATA
lfs
=
(
PFD31_DATA
)
GetPropA
(
hWnd
,
FD31_OFN_PROP
);
TRACE
(
"msg=%x wparam=%lx lParam=%lx
\n
"
,
wMsg
,
wParam
,
lParam
);
if
((
wMsg
!=
WM_INITDIALOG
)
&&
lfs
&&
lfs
->
hook
)
{
INT_PTR
lRet
;
lRet
=
(
INT_PTR
)
FD31_CallWindowProc
(
lfs
,
wMsg
,
wParam
,
lParam
);
if
(
lRet
)
return
lRet
;
/* else continue message processing */
}
switch
(
wMsg
)
{
case
WM_INITDIALOG
:
return
FD31_WMInitDialog
(
hWnd
,
wParam
,
lParam
);
case
WM_MEASUREITEM
:
return
FD32_WMMeasureItem
(
lParam
);
case
WM_DRAWITEM
:
return
FD31_WMDrawItem
(
hWnd
,
wParam
,
lParam
,
!
lfs
->
open
,
(
DRAWITEMSTRUCT
*
)
lParam
);
case
WM_COMMAND
:
return
FD31_WMCommand
(
hWnd
,
lParam
,
HIWORD
(
wParam
),
LOWORD
(
wParam
),
lfs
);
#if 0
case WM_CTLCOLOR:
SetBkColor((HDC16)wParam, 0x00C0C0C0);
switch (HIWORD(lParam))
{
case CTLCOLOR_BTN:
SetTextColor((HDC16)wParam, 0x00000000);
return hGRAYBrush;
case CTLCOLOR_STATIC:
SetTextColor((HDC16)wParam, 0x00000000);
return hGRAYBrush;
}
break;
#endif
}
return
FALSE
;
}
/***********************************************************************
* GetFileName31A [internal]
*
* Creates a win31 style dialog box for the user to select a file to open/save.
*/
static
BOOL
GetFileName31A
(
LPOPENFILENAMEA
lpofn
,
/* address of structure with data*/
UINT
dlgType
/* type dialogue : open/save */
)
{
BOOL
bRet
=
FALSE
;
PFD31_DATA
lfs
;
if
(
!
lpofn
||
!
FD31_Init
())
return
FALSE
;
TRACE
(
"ofn flags %08x
\n
"
,
lpofn
->
Flags
);
lfs
=
FD31_AllocPrivate
((
LPARAM
)
lpofn
,
dlgType
,
FALSE
);
if
(
lfs
)
{
bRet
=
DialogBoxIndirectParamA
(
COMDLG32_hInstance
,
lfs
->
template
,
lpofn
->
hwndOwner
,
FD32_FileOpenDlgProc
,
(
LPARAM
)
lfs
);
FD31_DestroyPrivate
(
lfs
);
}
TRACE
(
"return lpstrFile='%s' !
\n
"
,
lpofn
->
lpstrFile
);
return
bRet
;
}
/***********************************************************************
* GetFileName31W [internal]
*
* Creates a win31 style dialog box for the user to select a file to open/save
*/
static
BOOL
GetFileName31W
(
LPOPENFILENAMEW
lpofn
,
/* address of structure with data*/
UINT
dlgType
/* type dialogue : open/save */
)
{
BOOL
bRet
=
FALSE
;
PFD31_DATA
lfs
;
if
(
!
lpofn
||
!
FD31_Init
())
return
FALSE
;
lfs
=
FD31_AllocPrivate
((
LPARAM
)
lpofn
,
dlgType
,
TRUE
);
if
(
lfs
)
{
bRet
=
DialogBoxIndirectParamW
(
COMDLG32_hInstance
,
lfs
->
template
,
lpofn
->
hwndOwner
,
FD32_FileOpenDlgProc
,
(
LPARAM
)
lfs
);
FD31_DestroyPrivate
(
lfs
);
}
TRACE
(
"file %s, file offset %d, ext offset %d
\n
"
,
debugstr_w
(
lpofn
->
lpstrFile
),
lpofn
->
nFileOffset
,
lpofn
->
nFileExtension
);
return
bRet
;
}
static
inline
BOOL
is_win16_looks
(
DWORD
flags
)
static
inline
BOOL
is_win16_looks
(
DWORD
flags
)
{
{
return
(
flags
&
(
OFN_ALLOWMULTISELECT
|
OFN_ENABLEHOOK
|
OFN_ENABLETEMPLATE
)
&&
return
(
flags
&
(
OFN_ALLOWMULTISELECT
|
OFN_ENABLEHOOK
|
OFN_ENABLETEMPLATE
)
&&
...
...
dlls/comdlg32/filedlg31.c
View file @
d2633549
/*
/*
*
COMMDLG -
File Dialogs
*
Win 3.1 Style
File Dialogs
*
*
* Copyright 1994 Martin Ayotte
* Copyright 1994 Martin Ayotte
* Copyright 1996 Albrecht Kleine
* Copyright 1996 Albrecht Kleine
...
@@ -34,11 +34,11 @@
...
@@ -34,11 +34,11 @@
#include "winternl.h"
#include "winternl.h"
#include "commdlg.h"
#include "commdlg.h"
#include "shlwapi.h"
#include "shlwapi.h"
#include "cderr.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
commdlg
);
WINE_DEFAULT_DEBUG_CHANNEL
(
commdlg
);
#include "cdlg.h"
#include "cdlg.h"
#include "filedlg31.h"
#define BUFFILE 512
#define BUFFILE 512
#define BUFFILEALLOC 512 * sizeof(WCHAR)
#define BUFFILEALLOC 512 * sizeof(WCHAR)
...
@@ -56,10 +56,26 @@ static HICON hHDisk = 0;
...
@@ -56,10 +56,26 @@ static HICON hHDisk = 0;
static
HICON
hCDRom
=
0
;
static
HICON
hCDRom
=
0
;
static
HICON
hNet
=
0
;
static
HICON
hNet
=
0
;
#define FD31_OFN_PROP "FILEDLG_OFN"
typedef
struct
tagFD31_DATA
{
HWND
hwnd
;
/* file dialog window handle */
BOOL
hook
;
/* TRUE if the dialog is hooked */
UINT
lbselchstring
;
/* registered message id */
UINT
fileokstring
;
/* registered message id */
LPARAM
lParam
;
/* save original lparam */
LPCVOID
template
;
/* template for 32 bits resource */
BOOL
open
;
/* TRUE if open dialog, FALSE if save dialog */
LPOPENFILENAMEW
ofnW
;
/* pointer either to the original structure or
a W copy for A/16 API */
LPOPENFILENAMEA
ofnA
;
/* original structure if 32bits ansi dialog */
}
FD31_DATA
,
*
PFD31_DATA
;
/***********************************************************************
/***********************************************************************
* FD31_Init [internal]
* FD31_Init [internal]
*/
*/
BOOL
FD31_Init
(
void
)
static
BOOL
FD31_Init
(
void
)
{
{
static
BOOL
initialized
=
0
;
static
BOOL
initialized
=
0
;
...
@@ -106,8 +122,7 @@ static void FD31_StripEditControl(HWND hwnd)
...
@@ -106,8 +122,7 @@ static void FD31_StripEditControl(HWND hwnd)
*
*
* Call the appropriate hook
* Call the appropriate hook
*/
*/
BOOL
FD31_CallWindowProc
(
const
FD31_DATA
*
lfs
,
UINT
wMsg
,
WPARAM
wParam
,
static
BOOL
FD31_CallWindowProc
(
const
FD31_DATA
*
lfs
,
UINT
wMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
LPARAM
lParam
)
{
{
BOOL
ret
;
BOOL
ret
;
...
@@ -207,7 +222,7 @@ static BOOL FD31_ScanDir(const OPENFILENAMEW *ofn, HWND hWnd, LPCWSTR newPath)
...
@@ -207,7 +222,7 @@ static BOOL FD31_ScanDir(const OPENFILENAMEW *ofn, HWND hWnd, LPCWSTR newPath)
/***********************************************************************
/***********************************************************************
* FD31_WMDrawItem [internal]
* FD31_WMDrawItem [internal]
*/
*/
LONG
FD31_WMDrawItem
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
,
static
LONG
FD31_WMDrawItem
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
,
int
savedlg
,
const
DRAWITEMSTRUCT
*
lpdis
)
int
savedlg
,
const
DRAWITEMSTRUCT
*
lpdis
)
{
{
WCHAR
*
str
;
WCHAR
*
str
;
...
@@ -641,7 +656,7 @@ static LRESULT FD31_FileTypeChange( const FD31_DATA *lfs )
...
@@ -641,7 +656,7 @@ static LRESULT FD31_FileTypeChange( const FD31_DATA *lfs )
/***********************************************************************
/***********************************************************************
* FD31_WMCommand [internal]
* FD31_WMCommand [internal]
*/
*/
LRESULT
FD31_WMCommand
(
HWND
hWnd
,
LPARAM
lParam
,
UINT
notification
,
static
LRESULT
FD31_WMCommand
(
HWND
hWnd
,
LPARAM
lParam
,
UINT
notification
,
UINT
control
,
const
FD31_DATA
*
lfs
)
UINT
control
,
const
FD31_DATA
*
lfs
)
{
{
switch
(
control
)
switch
(
control
)
...
@@ -812,7 +827,7 @@ static void FD31_FreeOfnW(OPENFILENAMEW *ofnW)
...
@@ -812,7 +827,7 @@ static void FD31_FreeOfnW(OPENFILENAMEW *ofnW)
* FD31_DestroyPrivate [internal]
* FD31_DestroyPrivate [internal]
* destroys the private object
* destroys the private object
*/
*/
void
FD31_DestroyPrivate
(
PFD31_DATA
lfs
)
static
void
FD31_DestroyPrivate
(
PFD31_DATA
lfs
)
{
{
HWND
hwnd
;
HWND
hwnd
;
if
(
!
lfs
)
return
;
if
(
!
lfs
)
return
;
...
@@ -829,6 +844,64 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
...
@@ -829,6 +844,64 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
RemovePropA
(
hwnd
,
FD31_OFN_PROP
);
RemovePropA
(
hwnd
,
FD31_OFN_PROP
);
}
}
/***********************************************************************
* FD31_GetTemplate [internal]
*
* Get a template (or FALSE if failure) when 16 bits dialogs are used
* by a 32 bits application
*
*/
static
BOOL
FD31_GetTemplate
(
PFD31_DATA
lfs
)
{
LPOPENFILENAMEW
ofnW
=
lfs
->
ofnW
;
LPOPENFILENAMEA
ofnA
=
lfs
->
ofnA
;
HANDLE
hDlgTmpl
;
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATEHANDLE
)
{
if
(
!
(
lfs
->
template
=
LockResource
(
ofnW
->
hInstance
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
else
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATE
)
{
HRSRC
hResInfo
;
if
(
ofnA
)
hResInfo
=
FindResourceA
(
ofnA
->
hInstance
,
ofnA
->
lpTemplateName
,
(
LPSTR
)
RT_DIALOG
);
else
hResInfo
=
FindResourceW
(
ofnW
->
hInstance
,
ofnW
->
lpTemplateName
,
(
LPWSTR
)
RT_DIALOG
);
if
(
!
hResInfo
)
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_FINDRESFAILURE
);
return
FALSE
;
}
if
(
!
(
hDlgTmpl
=
LoadResource
(
ofnW
->
hInstance
,
hResInfo
))
||
!
(
lfs
->
template
=
LockResource
(
hDlgTmpl
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
else
/* get it from internal Wine resource */
{
HRSRC
hResInfo
;
if
(
!
(
hResInfo
=
FindResourceA
(
COMDLG32_hInstance
,
lfs
->
open
?
"OPEN_FILE"
:
"SAVE_FILE"
,
(
LPSTR
)
RT_DIALOG
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_FINDRESFAILURE
);
return
FALSE
;
}
if
(
!
(
hDlgTmpl
=
LoadResource
(
COMDLG32_hInstance
,
hResInfo
))
||
!
(
lfs
->
template
=
LockResource
(
hDlgTmpl
)))
{
COMDLG32_SetCommDlgExtendedError
(
CDERR_LOADRESFAILURE
);
return
FALSE
;
}
}
return
TRUE
;
}
/************************************************************************
/************************************************************************
* FD31_AllocPrivate [internal]
* FD31_AllocPrivate [internal]
* allocate a private object to hold 32 bits Unicode
* allocate a private object to hold 32 bits Unicode
...
@@ -837,7 +910,7 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
...
@@ -837,7 +910,7 @@ void FD31_DestroyPrivate(PFD31_DATA lfs)
* On entry : type = dialog procedure type (16,32A,32W)
* On entry : type = dialog procedure type (16,32A,32W)
* dlgType = dialog type (open or save)
* dlgType = dialog type (open or save)
*/
*/
PFD31_DATA
FD31_AllocPrivate
(
LPARAM
lParam
,
UINT
dlgType
,
BOOL
IsUnicode
)
static
PFD31_DATA
FD31_AllocPrivate
(
LPARAM
lParam
,
UINT
dlgType
,
BOOL
IsUnicode
)
{
{
PFD31_DATA
lfs
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
FD31_DATA
));
PFD31_DATA
lfs
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
FD31_DATA
));
...
@@ -865,7 +938,7 @@ PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
...
@@ -865,7 +938,7 @@ PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
FD31_MapOfnStructA
(
lfs
->
ofnA
,
lfs
->
ofnW
,
lfs
->
open
);
FD31_MapOfnStructA
(
lfs
->
ofnA
,
lfs
->
ofnW
,
lfs
->
open
);
}
}
if
(
!
FD3
2
_GetTemplate
(
lfs
))
if
(
!
FD3
1
_GetTemplate
(
lfs
))
{
{
FD31_DestroyPrivate
(
lfs
);
FD31_DestroyPrivate
(
lfs
);
return
NULL
;
return
NULL
;
...
@@ -879,8 +952,7 @@ PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
...
@@ -879,8 +952,7 @@ PFD31_DATA FD31_AllocPrivate(LPARAM lParam, UINT dlgType, BOOL IsUnicode)
/***********************************************************************
/***********************************************************************
* FD31_WMInitDialog [internal]
* FD31_WMInitDialog [internal]
*/
*/
static
LONG
FD31_WMInitDialog
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
)
LONG
FD31_WMInitDialog
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
)
{
{
int
i
,
n
;
int
i
,
n
;
WCHAR
tmpstr
[
BUFFILE
];
WCHAR
tmpstr
[
BUFFILE
];
...
@@ -1001,3 +1073,113 @@ int FD31_GetFldrHeight(void)
...
@@ -1001,3 +1073,113 @@ int FD31_GetFldrHeight(void)
{
{
return
fldrHeight
;
return
fldrHeight
;
}
}
/***********************************************************************
* FD31_WMMeasureItem [internal]
*/
static
LONG
FD31_WMMeasureItem
(
LPARAM
lParam
)
{
LPMEASUREITEMSTRUCT
lpmeasure
;
lpmeasure
=
(
LPMEASUREITEMSTRUCT
)
lParam
;
lpmeasure
->
itemHeight
=
FD31_GetFldrHeight
();
return
TRUE
;
}
/***********************************************************************
* FileOpenDlgProc [internal]
* Used for open and save, in fact.
*/
static
INT_PTR
CALLBACK
FD31_FileOpenDlgProc
(
HWND
hWnd
,
UINT
wMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
PFD31_DATA
lfs
=
(
PFD31_DATA
)
GetPropA
(
hWnd
,
FD31_OFN_PROP
);
TRACE
(
"msg=%x wparam=%lx lParam=%lx
\n
"
,
wMsg
,
wParam
,
lParam
);
if
((
wMsg
!=
WM_INITDIALOG
)
&&
lfs
&&
lfs
->
hook
)
{
INT_PTR
lRet
;
lRet
=
(
INT_PTR
)
FD31_CallWindowProc
(
lfs
,
wMsg
,
wParam
,
lParam
);
if
(
lRet
)
return
lRet
;
/* else continue message processing */
}
switch
(
wMsg
)
{
case
WM_INITDIALOG
:
return
FD31_WMInitDialog
(
hWnd
,
wParam
,
lParam
);
case
WM_MEASUREITEM
:
return
FD31_WMMeasureItem
(
lParam
);
case
WM_DRAWITEM
:
return
FD31_WMDrawItem
(
hWnd
,
wParam
,
lParam
,
!
lfs
->
open
,
(
DRAWITEMSTRUCT
*
)
lParam
);
case
WM_COMMAND
:
return
FD31_WMCommand
(
hWnd
,
lParam
,
HIWORD
(
wParam
),
LOWORD
(
wParam
),
lfs
);
#if 0
case WM_CTLCOLOR:
SetBkColor( (HDC16)wParam, 0x00C0C0C0 );
switch (HIWORD(lParam))
{
case CTLCOLOR_BTN:
SetTextColor( (HDC16)wParam, 0x00000000 );
return hGRAYBrush;
case CTLCOLOR_STATIC:
SetTextColor( (HDC16)wParam, 0x00000000 );
return hGRAYBrush;
}
break;
#endif
}
return
FALSE
;
}
/***********************************************************************
* GetFileName31A [internal]
*
* Creates a win31 style dialog box for the user to select a file to open/save.
*/
BOOL
GetFileName31A
(
OPENFILENAMEA
*
lpofn
,
UINT
dlgType
)
{
BOOL
bRet
=
FALSE
;
PFD31_DATA
lfs
;
if
(
!
lpofn
||
!
FD31_Init
())
return
FALSE
;
TRACE
(
"ofn flags %08x
\n
"
,
lpofn
->
Flags
);
lfs
=
FD31_AllocPrivate
((
LPARAM
)
lpofn
,
dlgType
,
FALSE
);
if
(
lfs
)
{
bRet
=
DialogBoxIndirectParamA
(
COMDLG32_hInstance
,
lfs
->
template
,
lpofn
->
hwndOwner
,
FD31_FileOpenDlgProc
,
(
LPARAM
)
lfs
);
FD31_DestroyPrivate
(
lfs
);
}
TRACE
(
"return lpstrFile='%s' !
\n
"
,
lpofn
->
lpstrFile
);
return
bRet
;
}
/***********************************************************************
* GetFileName31W [internal]
*
* Creates a win31 style dialog box for the user to select a file to open/save
*/
BOOL
GetFileName31W
(
OPENFILENAMEW
*
lpofn
,
UINT
dlgType
)
{
BOOL
bRet
=
FALSE
;
PFD31_DATA
lfs
;
if
(
!
lpofn
||
!
FD31_Init
())
return
FALSE
;
lfs
=
FD31_AllocPrivate
((
LPARAM
)
lpofn
,
dlgType
,
TRUE
);
if
(
lfs
)
{
bRet
=
DialogBoxIndirectParamW
(
COMDLG32_hInstance
,
lfs
->
template
,
lpofn
->
hwndOwner
,
FD31_FileOpenDlgProc
,
(
LPARAM
)
lfs
);
FD31_DestroyPrivate
(
lfs
);
}
TRACE
(
"file %s, file offset %d, ext offset %d
\n
"
,
debugstr_w
(
lpofn
->
lpstrFile
),
lpofn
->
nFileOffset
,
lpofn
->
nFileExtension
);
return
bRet
;
}
dlls/comdlg32/filedlg31.h
deleted
100644 → 0
View file @
bd516247
/*
* Win3.1 style File Dialog interface (32 bit)
*
* 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
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _WINE_DLL_FILEDLG31_H
#define _WINE_DLL_FILEDLG31_H
#define FD31_OFN_PROP "FILEDLG_OFN"
typedef
struct
tagFD31_DATA
{
HWND
hwnd
;
/* file dialog window handle */
BOOL
hook
;
/* TRUE if the dialog is hooked */
UINT
lbselchstring
;
/* registered message id */
UINT
fileokstring
;
/* registered message id */
LPARAM
lParam
;
/* save original lparam */
LPCVOID
template
;
/* template for 32 bits resource */
BOOL
open
;
/* TRUE if open dialog, FALSE if save dialog */
LPOPENFILENAMEW
ofnW
;
/* pointer either to the original structure or
a W copy for A/16 API */
LPOPENFILENAMEA
ofnA
;
/* original structure if 32bits ansi dialog */
}
FD31_DATA
,
*
PFD31_DATA
;
extern
BOOL
FD32_GetTemplate
(
PFD31_DATA
lfs
)
DECLSPEC_HIDDEN
;
extern
BOOL
FD31_Init
(
void
)
DECLSPEC_HIDDEN
;
extern
PFD31_DATA
FD31_AllocPrivate
(
LPARAM
lParam
,
UINT
dlgType
,
BOOL
IsUnicode
)
DECLSPEC_HIDDEN
;
extern
void
FD31_DestroyPrivate
(
PFD31_DATA
lfs
)
DECLSPEC_HIDDEN
;
extern
BOOL
FD31_CallWindowProc
(
const
FD31_DATA
*
lfs
,
UINT
wMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
DECLSPEC_HIDDEN
;
extern
LONG
FD31_WMInitDialog
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
)
DECLSPEC_HIDDEN
;
extern
LONG
FD31_WMDrawItem
(
HWND
hWnd
,
WPARAM
wParam
,
LPARAM
lParam
,
int
savedlg
,
const
DRAWITEMSTRUCT
*
lpdis
)
DECLSPEC_HIDDEN
;
extern
LRESULT
FD31_WMCommand
(
HWND
hWnd
,
LPARAM
lParam
,
UINT
notification
,
UINT
control
,
const
FD31_DATA
*
lfs
)
DECLSPEC_HIDDEN
;
extern
int
FD31_GetFldrHeight
(
void
)
DECLSPEC_HIDDEN
;
#endif
/* _WINE_DLL_FILEDLG31_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment