mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-18 10:26:33 +00:00
Make a copy of the dialog resource before correcting styles.
This commit is contained in:
parent
db4c45671f
commit
99653905ec
|
@ -96,7 +96,7 @@ static BOOL PROPSHEET_CollectPageInfo(LPCPROPSHEETPAGEA lppsp,
|
||||||
int index);
|
int index);
|
||||||
static BOOL PROPSHEET_CreateTabControl(HWND hwndParent,
|
static BOOL PROPSHEET_CreateTabControl(HWND hwndParent,
|
||||||
PropSheetInfo * psInfo);
|
PropSheetInfo * psInfo);
|
||||||
static int PROPSHEET_CreatePage(HWND hwndParent, int index,
|
static BOOL PROPSHEET_CreatePage(HWND hwndParent, int index,
|
||||||
const PropSheetInfo * psInfo,
|
const PropSheetInfo * psInfo,
|
||||||
LPCPROPSHEETPAGEA ppshpage);
|
LPCPROPSHEETPAGEA ppshpage);
|
||||||
static BOOL PROPSHEET_ShowPage(HWND hwndDlg, int index, PropSheetInfo * psInfo);
|
static BOOL PROPSHEET_ShowPage(HWND hwndDlg, int index, PropSheetInfo * psInfo);
|
||||||
|
@ -1002,7 +1002,7 @@ static BOOL PROPSHEET_CreateTabControl(HWND hwndParent,
|
||||||
*
|
*
|
||||||
* Creates a page.
|
* Creates a page.
|
||||||
*/
|
*/
|
||||||
static int PROPSHEET_CreatePage(HWND hwndParent,
|
static BOOL PROPSHEET_CreatePage(HWND hwndParent,
|
||||||
int index,
|
int index,
|
||||||
const PropSheetInfo * psInfo,
|
const PropSheetInfo * psInfo,
|
||||||
LPCPROPSHEETPAGEA ppshpage)
|
LPCPROPSHEETPAGEA ppshpage)
|
||||||
|
@ -1013,6 +1013,8 @@ static int PROPSHEET_CreatePage(HWND hwndParent,
|
||||||
PropPageInfo* ppInfo = psInfo->proppage;
|
PropPageInfo* ppInfo = psInfo->proppage;
|
||||||
PADDING_INFO padding;
|
PADDING_INFO padding;
|
||||||
UINT pageWidth,pageHeight;
|
UINT pageWidth,pageHeight;
|
||||||
|
DWORD resSize;
|
||||||
|
LPVOID temp = NULL;
|
||||||
|
|
||||||
TRACE("index %d\n", index);
|
TRACE("index %d\n", index);
|
||||||
|
|
||||||
|
@ -1020,11 +1022,31 @@ static int PROPSHEET_CreatePage(HWND hwndParent,
|
||||||
pTemplate = (DLGTEMPLATE*)ppshpage->u.pResource;
|
pTemplate = (DLGTEMPLATE*)ppshpage->u.pResource;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HRSRC hResource = FindResourceA(ppshpage->hInstance,
|
HRSRC hResource;
|
||||||
|
HANDLE hTemplate;
|
||||||
|
|
||||||
|
hResource = FindResourceA(ppshpage->hInstance,
|
||||||
ppshpage->u.pszTemplate,
|
ppshpage->u.pszTemplate,
|
||||||
RT_DIALOGA);
|
RT_DIALOGA);
|
||||||
HGLOBAL hTemplate = LoadResource(ppshpage->hInstance, hResource);
|
if(!hResource)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
resSize = SizeofResource(ppshpage->hInstance, hResource);
|
||||||
|
|
||||||
|
hTemplate = LoadResource(ppshpage->hInstance, hResource);
|
||||||
|
if(!hTemplate)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
pTemplate = (LPDLGTEMPLATEA)LockResource(hTemplate);
|
pTemplate = (LPDLGTEMPLATEA)LockResource(hTemplate);
|
||||||
|
/*
|
||||||
|
* Make a copy of the dialog template to make it writable
|
||||||
|
*/
|
||||||
|
temp = COMCTL32_Alloc(resSize);
|
||||||
|
if (!temp)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
memcpy(temp, pTemplate, resSize);
|
||||||
|
pTemplate = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((MyDLGTEMPLATEEX*)pTemplate)->signature == 0xFFFF)
|
if (((MyDLGTEMPLATEEX*)pTemplate)->signature == 0xFFFF)
|
||||||
|
@ -1058,6 +1080,9 @@ static int PROPSHEET_CreatePage(HWND hwndParent,
|
||||||
hwndParent,
|
hwndParent,
|
||||||
ppshpage->pfnDlgProc,
|
ppshpage->pfnDlgProc,
|
||||||
(LPARAM)ppshpage);
|
(LPARAM)ppshpage);
|
||||||
|
/* Free a no more needed copy */
|
||||||
|
if(temp)
|
||||||
|
COMCTL32_Free(temp);
|
||||||
|
|
||||||
ppInfo[index].hwndPage = hwndPage;
|
ppInfo[index].hwndPage = hwndPage;
|
||||||
|
|
||||||
|
@ -2270,8 +2295,7 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case PSM_GETCURRENTPAGEHWND:
|
case PSM_GETCURRENTPAGEHWND:
|
||||||
|
@ -2417,16 +2441,20 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
case PSM_SETTITLEW:
|
case PSM_SETTITLEW:
|
||||||
FIXME("Unimplemented msg PSM_SETTITLE32W\n");
|
FIXME("Unimplemented msg PSM_SETTITLE32W\n");
|
||||||
return 0;
|
return FALSE;
|
||||||
|
|
||||||
case PSM_SETCURSELID:
|
case PSM_SETCURSELID:
|
||||||
FIXME("Unimplemented msg PSM_SETCURSELID\n");
|
FIXME("Unimplemented msg PSM_SETCURSELID\n");
|
||||||
return 0;
|
return FALSE;
|
||||||
|
|
||||||
case PSM_SETFINISHTEXTW:
|
case PSM_SETFINISHTEXTW:
|
||||||
FIXME("Unimplemented msg PSM_SETFINISHTEXT32W\n");
|
FIXME("Unimplemented msg PSM_SETFINISHTEXT32W\n");
|
||||||
return 0;
|
return FALSE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue