LONG (FAR *PFNPROPSHEETUI)(
PPROPSHEETUI_INFO pPSUIInfo, | |
LPARAM lParam | |
); |
PFNPROPSHEETUI is a caller-defined function that the CPSUI calls to enable its caller to add or delete pages from a property sheet.
Reason |
Description |
PROPSHEETUI_REASON_INIT |
The lParam parameter is either the unmodified lParam parameter passed to CommonPropertySheetUI, or the lParam2 parameter passed to PFNCOMPROPSHEET with a Function of CPSFUNC_ADD_PFNPROPSHEETUI. The CPSUI has copied this instance of lParam to the lParamInit field of the PROPSHEETUI_INFO structure. The lParamInit field is passed to all subsequent calls to PFNPROPSHEETUI without modification. The lParam parameter must not reside on the calling function’s stack. |
PROPSHEETUI_REASON_ |
The lParam parameter is a pointer to a PROPSHEETUI_INFO_HEADER structure. PFNPROPSHEETUI must fill in the fields of this structure for the CPSUI. |
PROPSHEETUI_REASON_ |
The lParam parameter is zero when the destroy request occurs because the caller has called the CPSUI’s PFNCOMPROPSHEET callback with Function set to CPSFUNC_DELETE_HCOMPROPSHEET, or when the CPSUI’s callback failed a caller’s CPSFUNC_ADD_Xxx request. The lParam parameter is nonzero when the user is exiting the property sheet. |
PROPSHEETUI_REASON_ |
The lParam parameter is a pointer to a SETRESULT_INFO structure in which the CPSUI has set the following fields: hSetResult contains the handle to those page(s) added to the sheet through a call to PFNCOMPROPSHEET with a CPSFUNC_ADD_Xxx function index; Result contains the result obtained when hSetResult was generated. PFNPROPSHEETUI should save this result in the Result field of the structure to which pPSUIInfo points. When PFNPROPSHEETUI’s return value is greater than zero, the CPSUI propagates the Result field of the structure to which pPSUIInfo points to its parent. |
PROPSHEETUI_REASON_ |
The lParam parameter is a pointer to a PROPSHEETUI_GETICON_INFO structure in which the CPSUI has set the following fields: cxIcon is the icon’s width, in pixels; cyIcon is the icon’s height, in pixels; hIcon is null. PFNPROPSHEETUI should create an icon and return its handle, or, if it does not create an icon, should return null. |
The return value of PFNPROPSHEETUI depends on the Reason field of the PROPSHEETUI_INFO structure shown in the following table.
Reason |
Return Value |
PROPSHEETUI_REASON_INIT, |
Returns greater than zero to indicate success, and less than or equal to zero to indicate failure. |
PROPSHEETUI_REASON_SET_RESULT |
Returns greater than zero to indicate that the Result field in the structure to which pPSUIInfo points should be set to its parent; returns less than or equal to zero to indicate that Result need not be set to its parent. |
PROPSHEETUI_REASON_GET_ICON |
Returns greater than zero to indicate success, zero to indicate that no icon was available, and less than zero to indicate failure. |
PFNPROPSHEETUI is a pseudoname; the actual name of this function can be decided upon by the developer. PFNPROPSHEETUI must be implemented.
PFNPROPSHEETUI is a caller-defined function in which the caller can request the CPSUI to add pages to the property sheet. The CPSUI calls this function as follows:
PROPSHEETUI_INFO PSUIInfo; PFNPROPSHEETUI(&PSUIInfo, lParam);
The CPSUI stores the reason for calling PFNPROPSHEETUI in the Reason field of the PROPSHEETUI_INFO structure to which pPSUIInfo points. PFNPROPSHEETUI should be implemented as a re-entrant, message-based function, as the CPSUI calls it several times over the lifetime of the property sheet.
The CPSUI calls PFNPROPSHEETUI for the first time with Reason always set to PROPSHEETUI_REASON_INIT. PFNPROPSHEETUI should initialize itself and then call the CPSUI to add new pages to the property sheet root identified by the hComPropSheet member of the PROPSHEETUI_INFO structure. PFNPROPSHEETUI must call back to the CPSUI to actually add (or delete) pages from the property sheet. The CPSUI provides a pointer to its callback in the pfnComPropSheet field. The CPSUI callback returns a value greater than zero to indicate success, and a value less than or equal to zero to indicate failure.
If the first call to PFNPROPSHEETUI does not return successfully, the CPSUI calls PFNPROPSHEETUI with Reason set to PROPSHEETUI_REASON_DESTROY so that PFNPROPSHEETUI can uninitialize itself.
The CPSUI calls PFNPROPSHEETUI with Reason set to PROPSHEETUI_REASON_GET_INFO_HEADER to obtain high-level property sheet information to use when it displays the property sheet dialog boxes.
CommonPropertySheetUI, PFNCOMPROPSHEET, PROPSHEETUI_INFO, PROPSHEETUI_INFO_HEADER