Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
6cb68628
Commit
6cb68628
authored
Dec 23, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comdlg32: Store the open file name A structure directly instead of using a private pointer.
parent
f2d18c1c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
38 deletions
+27
-38
filedlg.c
dlls/comdlg32/filedlg.c
+26
-37
filedlg31.h
dlls/comdlg32/filedlg31.h
+1
-1
No files found.
dlls/comdlg32/filedlg.c
View file @
6cb68628
...
...
@@ -105,11 +105,6 @@ typedef struct tagLookInInfo
UINT
uSelectedItem
;
}
LookInInfos
;
typedef
struct
tagFD32_PRIVATE
{
OPENFILENAMEA
*
ofnA
;
/* original structure if 32bits ansi dialog */
}
FD32_PRIVATE
,
*
PFD32_PRIVATE
;
/***********************************************************************
* Defines and global variables
...
...
@@ -3748,7 +3743,7 @@ static void MemFree(void *mem)
static
BOOL
FD32_GetTemplate
(
PFD31_DATA
lfs
)
{
LPOPENFILENAMEW
ofnW
=
lfs
->
ofnW
;
PFD32_PRIVATE
priv
=
(
PFD32_PRIVATE
)
lfs
->
private1632
;
LPOPENFILENAMEA
ofnA
=
lfs
->
ofnA
;
HANDLE
hDlgTmpl
;
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATEHANDLE
)
...
...
@@ -3762,9 +3757,9 @@ static BOOL FD32_GetTemplate(PFD31_DATA lfs)
else
if
(
ofnW
->
Flags
&
OFN_ENABLETEMPLATE
)
{
HRSRC
hResInfo
;
if
(
priv
->
ofnA
)
hResInfo
=
FindResourceA
(
priv
->
ofnA
->
hInstance
,
priv
->
ofnA
->
lpTemplateName
,
if
(
ofnA
)
hResInfo
=
FindResourceA
(
ofnA
->
hInstance
,
ofnA
->
lpTemplateName
,
(
LPSTR
)
RT_DIALOG
);
else
hResInfo
=
FindResourceW
(
ofnW
->
hInstance
,
...
...
@@ -3808,13 +3803,10 @@ static BOOL FD32_GetTemplate(PFD31_DATA lfs)
static
BOOL
CALLBACK
FD32_Init
(
LPARAM
lParam
,
PFD31_DATA
lfs
,
DWORD
data
)
{
BOOL
IsUnicode
=
(
BOOL
)
data
;
PFD32_PRIVATE
priv
;
priv
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
FD32_PRIVATE
));
lfs
->
private1632
=
priv
;
if
(
NULL
==
lfs
->
private1632
)
return
FALSE
;
if
(
IsUnicode
)
{
lfs
->
ofnA
=
NULL
;
lfs
->
ofnW
=
(
LPOPENFILENAMEW
)
lParam
;
if
(
lfs
->
ofnW
->
Flags
&
OFN_ENABLEHOOK
)
if
(
lfs
->
ofnW
->
lpfnHook
)
...
...
@@ -3822,12 +3814,12 @@ static BOOL CALLBACK FD32_Init(LPARAM lParam, PFD31_DATA lfs, DWORD data)
}
else
{
priv
->
ofnA
=
(
LPOPENFILENAMEA
)
lParam
;
if
(
priv
->
ofnA
->
Flags
&
OFN_ENABLEHOOK
)
if
(
priv
->
ofnA
->
lpfnHook
)
lfs
->
ofnA
=
(
LPOPENFILENAMEA
)
lParam
;
if
(
lfs
->
ofnA
->
Flags
&
OFN_ENABLEHOOK
)
if
(
lfs
->
ofnA
->
lpfnHook
)
lfs
->
hook
=
TRUE
;
lfs
->
ofnW
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
lfs
->
ofnW
));
FD31_MapOfnStructA
(
priv
->
ofnA
,
lfs
->
ofnW
,
lfs
->
open
);
FD31_MapOfnStructA
(
lfs
->
ofnA
,
lfs
->
ofnW
,
lfs
->
open
);
}
if
(
!
FD32_GetTemplate
(
lfs
))
return
FALSE
;
...
...
@@ -3844,15 +3836,14 @@ static BOOL CALLBACK FD32_CallWindowProc(const FD31_DATA *lfs, UINT wMsg, WPARAM
LPARAM
lParam
)
{
BOOL
ret
;
PFD32_PRIVATE
priv
=
(
PFD32_PRIVATE
)
lfs
->
private1632
;
if
(
priv
->
ofnA
)
if
(
lfs
->
ofnA
)
{
TRACE
(
"Call hookA %p (%p, %04x, %08lx, %08lx)
\n
"
,
priv
->
ofnA
->
lpfnHook
,
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
ret
=
priv
->
ofnA
->
lpfnHook
(
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
lfs
->
ofnA
->
lpfnHook
,
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
ret
=
lfs
->
ofnA
->
lpfnHook
(
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
TRACE
(
"ret hookA %p (%p, %04x, %08lx, %08lx)
\n
"
,
priv
->
ofnA
->
lpfnHook
,
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
lfs
->
ofnA
->
lpfnHook
,
lfs
->
hwnd
,
wMsg
,
wParam
,
lParam
);
return
ret
;
}
...
...
@@ -3870,25 +3861,25 @@ static BOOL CALLBACK FD32_CallWindowProc(const FD31_DATA *lfs, UINT wMsg, WPARAM
*/
static
void
CALLBACK
FD32_UpdateResult
(
const
FD31_DATA
*
lfs
)
{
PFD32_PRIVATE
priv
=
(
PFD32_PRIVATE
)
lfs
->
private1632
;
LPOPENFILENAMEW
ofnW
=
lfs
->
ofnW
;
LPOPENFILENAMEA
ofnA
=
lfs
->
ofnA
;
if
(
priv
->
ofnA
)
if
(
ofnA
)
{
LPSTR
lpszTemp
;
if
(
ofnW
->
nMaxFile
&&
!
WideCharToMultiByte
(
CP_ACP
,
0
,
ofnW
->
lpstrFile
,
-
1
,
priv
->
ofnA
->
lpstrFile
,
ofnW
->
nMaxFile
,
NULL
,
NULL
))
priv
->
ofnA
->
lpstrFile
[
ofnW
->
nMaxFile
-
1
]
=
0
;
ofnA
->
lpstrFile
,
ofnA
->
nMaxFile
,
NULL
,
NULL
))
ofnA
->
lpstrFile
[
ofnA
->
nMaxFile
-
1
]
=
0
;
/* offsets are not guaranteed to be the same in WCHAR to MULTIBYTE conversion */
/* set filename offset */
lpszTemp
=
PathFindFileNameA
(
priv
->
ofnA
->
lpstrFile
);
priv
->
ofnA
->
nFileOffset
=
(
lpszTemp
-
priv
->
ofnA
->
lpstrFile
);
lpszTemp
=
PathFindFileNameA
(
ofnA
->
lpstrFile
);
ofnA
->
nFileOffset
=
(
lpszTemp
-
ofnA
->
lpstrFile
);
/* set extension offset */
lpszTemp
=
PathFindExtensionA
(
priv
->
ofnA
->
lpstrFile
);
priv
->
ofnA
->
nFileExtension
=
(
*
lpszTemp
)
?
(
lpszTemp
-
priv
->
ofnA
->
lpstrFile
)
+
1
:
0
;
lpszTemp
=
PathFindExtensionA
(
ofnA
->
lpstrFile
);
ofnA
->
nFileExtension
=
(
*
lpszTemp
)
?
(
lpszTemp
-
ofnA
->
lpstrFile
)
+
1
:
0
;
}
}
...
...
@@ -3898,14 +3889,14 @@ static void CALLBACK FD32_UpdateResult(const FD31_DATA *lfs)
*/
static
void
CALLBACK
FD32_UpdateFileTitle
(
const
FD31_DATA
*
lfs
)
{
PFD32_PRIVATE
priv
=
(
PFD32_PRIVATE
)
lfs
->
private1632
;
LPOPENFILENAMEW
ofnW
=
lfs
->
ofnW
;
LPOPENFILENAMEA
ofnA
=
lfs
->
ofnA
;
if
(
priv
->
ofnA
)
if
(
ofnA
)
{
if
(
!
WideCharToMultiByte
(
CP_ACP
,
0
,
ofnW
->
lpstrFileTitle
,
-
1
,
priv
->
ofnA
->
lpstrFileTitle
,
ofnW
->
nMaxFileTitle
,
NULL
,
NULL
))
priv
->
ofnA
->
lpstrFileTitle
[
ofnW
->
nMaxFileTitle
-
1
]
=
0
;
ofnA
->
lpstrFileTitle
,
ofnA
->
nMaxFileTitle
,
NULL
,
NULL
))
ofnA
->
lpstrFileTitle
[
ofnA
->
nMaxFileTitle
-
1
]
=
0
;
}
}
...
...
@@ -3926,10 +3917,8 @@ static LRESULT CALLBACK FD32_SendLbGetCurSel(const FD31_DATA *lfs)
*/
static
void
CALLBACK
FD32_Destroy
(
const
FD31_DATA
*
lfs
)
{
PFD32_PRIVATE
priv
=
(
PFD32_PRIVATE
)
lfs
->
private1632
;
/* if ofnW has been allocated, have to free everything in it */
if
(
NULL
!=
priv
&&
NULL
!=
priv
->
ofnA
)
if
(
lfs
->
ofnA
)
{
FD31_FreeOfnW
(
lfs
->
ofnW
);
HeapFree
(
GetProcessHeap
(),
0
,
lfs
->
ofnW
);
...
...
dlls/comdlg32/filedlg31.h
View file @
6cb68628
...
...
@@ -46,7 +46,7 @@ struct tagFD31_DATA
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 */
LP
VOID
private1632
;
/* 16/32 bit caller private data
*/
LP
OPENFILENAMEA
ofnA
;
/* original structure if 32bits ansi dialog
*/
PFD31_CALLBACKS
callbacks
;
/* callbacks to handle 16/32 bit differences */
};
...
...
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