mirror of
git://source.winehq.org/git/wine.git
synced 2024-07-21 12:34:09 +00:00
comctl32: Add helper for calling PROPERTYSHEETPAGE callback.
This commit is contained in:
parent
e5bfd522d2
commit
e05f6451bc
|
@ -106,7 +106,6 @@ typedef struct tagPropPageInfo
|
|||
BOOL isDirty;
|
||||
LPCWSTR pszText;
|
||||
BOOL hasHelp;
|
||||
BOOL useCallback;
|
||||
BOOL hasIcon;
|
||||
} PropPageInfo;
|
||||
|
||||
|
@ -199,6 +198,15 @@ static WCHAR *heap_strdupAtoW(const char *str)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void HPSP_call_callback(HPROPSHEETPAGE hpsp, UINT msg)
|
||||
{
|
||||
if (!(hpsp->psp.dwFlags & PSP_USECALLBACK) || !hpsp->psp.pfnCallback ||
|
||||
(msg == PSPCB_ADDREF && hpsp->psp.dwSize <= PROPSHEETPAGEA_V1_SIZE))
|
||||
return;
|
||||
|
||||
hpsp->psp.pfnCallback(0, msg, &hpsp->callback_psp);
|
||||
}
|
||||
|
||||
#define add_flag(a) if (dwFlags & a) {strcat(string, #a );strcat(string," ");}
|
||||
/******************************************************************************
|
||||
* PROPSHEET_UnImplementedFlags
|
||||
|
@ -419,7 +427,6 @@ static BOOL PROPSHEET_CollectPageInfo(HPROPSHEETPAGE hpsp,
|
|||
* Process property page flags.
|
||||
*/
|
||||
dwFlags = hpsp->psp.dwFlags;
|
||||
psInfo->proppage[index].useCallback = (dwFlags & PSP_USECALLBACK) && (hpsp->psp.pfnCallback);
|
||||
psInfo->proppage[index].hasHelp = dwFlags & PSP_HASHELP;
|
||||
psInfo->proppage[index].hasIcon = dwFlags & (PSP_USEHICON | PSP_USEICONID);
|
||||
|
||||
|
@ -1436,8 +1443,7 @@ static BOOL PROPSHEET_CreatePage(HWND hwndParent,
|
|||
pTemplateCopy->dwExtendedStyle |= WS_EX_CONTROLPARENT;
|
||||
}
|
||||
|
||||
if (psInfo->proppage[index].useCallback)
|
||||
(*(hpsp->psp.pfnCallback))(0, PSPCB_CREATE, &hpsp->psp);
|
||||
HPSP_call_callback(hpsp, PSPCB_CREATE);
|
||||
|
||||
if(hpsp->psp.dwFlags & PSP_INTERNAL_UNICODE)
|
||||
hwndPage = CreateDialogIndirectParamW(hpsp->psp.hInstance,
|
||||
|
@ -3013,9 +3019,7 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(
|
|||
else
|
||||
ppsp->pszHeaderSubTitle = NULL;
|
||||
|
||||
if ((ppsp->dwFlags & PSP_USECALLBACK) && ppsp->dwSize > PROPSHEETPAGEA_V1_SIZE && ppsp->pfnCallback)
|
||||
ppsp->pfnCallback(0, PSPCB_ADDREF, ppsp + 1);
|
||||
|
||||
HPSP_call_callback(ret, PSPCB_ADDREF);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -3074,9 +3078,7 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage
|
|||
else
|
||||
ppsp->pszHeaderSubTitle = NULL;
|
||||
|
||||
if ((ppsp->dwFlags & PSP_USECALLBACK) && ppsp->dwSize > PROPSHEETPAGEW_V1_SIZE && ppsp->pfnCallback)
|
||||
ppsp->pfnCallback(0, PSPCB_ADDREF, ppsp + 1);
|
||||
|
||||
HPSP_call_callback(ret, PSPCB_ADDREF);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -3098,8 +3100,7 @@ BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hPropPage)
|
|||
if (!hPropPage)
|
||||
return FALSE;
|
||||
|
||||
if ((psp->dwFlags & PSP_USECALLBACK) && psp->pfnCallback)
|
||||
psp->pfnCallback(0, PSPCB_RELEASE, &hPropPage->callback_psp);
|
||||
HPSP_call_callback(hPropPage, PSPCB_RELEASE);
|
||||
|
||||
if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE( psp->u.pszTemplate ))
|
||||
Free((void*)psp->u.pszTemplate);
|
||||
|
|
Loading…
Reference in a new issue