SP_PROPSHEETPAGE_REQUEST結構 (setupapi.h)
SP_PROPSHEETPAGE_REQUEST 結構可以當做第一個參數傳遞至 SetupAPI DLL 中 ExtensionPropSheetPageProc 進入點 (lpv) 。 ExtensionPropSheetPageProc 可用來擷取指定之屬性表頁面的句柄。
如需 ExtensionPropSheetPageProc 和相關函式的相關信息,請參閱 Microsoft Windows SDK 檔。
語法
typedef struct _SP_PROPSHEETPAGE_REQUEST {
DWORD cbSize;
DWORD PageRequested;
HDEVINFO DeviceInfoSet;
PSP_DEVINFO_DATA DeviceInfoData;
} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;
成員
cbSize
SP_PROPSHEETPAGE_REQUEST 結構的大小,以位元組為單位。
PageRequested
要加入至屬性表的屬性表頁面。 可以是下列值之一:
SPPSR_SELECT_DEVICE_RESOURCES
指定 SetupAPI DLL 所提供的 [資源選取] 頁面。
SPPSR_ENUM_BASIC_DEVICE_PROPERTIES
指定裝置的 BasicProperties32 提供者所提供的頁面。 也就是說,提供頁面 () 的安裝程式或其他元件,以回應 DIF_ADDPROPERTYPAGE_BASIC 安裝要求。
SPPSR_ENUM_ADV_DEVICE_PROPERTIES
指定類別和/或裝置 EnumPropPages32 提供者所提供的頁面。 也就是說,提供頁面 () 的安裝程式或其他元件,以回應 DIF_ADDPROPERTYPAGE_ADVANCED 安裝要求。
DeviceInfoSet
包含所安裝裝置之裝置資訊集的句柄。
DeviceInfoData
所安裝裝置 之SP_DEVINFO_DATA 結構的指標。
備註
正在擷取屬性頁的元件會呼叫 SetupAPI 的 ExtensionPropSheetPageProc 函 式,並傳入指向SP_PROPSHEETPAGE_REQUEST結構的指標、其 AddPropSheetPageProc 函式的位址,以及一些私用數據。 屬性表提供者會針對它提供的每個屬性表呼叫 AddPropSheetPageProc 例程。
下列程式代碼摘錄顯示如何擷取一頁,即 SetupAPI 的資源選取頁面:
{
DWORD Err;
HINSTANCE hLib;
FARPROC PropSheetExtProc;
HPROPSHEETPAGE hPages[2];
.
.
.
if(!(hLib = GetModuleHandle(TEXT("setupapi.dll")))) {
return GetLastError();
}
if(!(PropSheetExtProc = GetProcAddress(hLib,
"ExtensionPropSheetPageProc"))) {
Err = GetLastError();
FreeLibrary(hLib);
return Err;
}
PropPageRequest.cbSize = sizeof(SP_PROPSHEETPAGE_REQUEST);
PropPageRequest.PageRequested =
SPPSR_SELECT_DEVICE_RESOURCES;
PropPageRequest.DeviceInfoSet = DeviceInfoSet;
PropPageRequest.DeviceInfoData = DeviceInfoData;
if(!PropSheetExtProc(&PropPageRequest,
AddPropSheetPageProc, &hPages[1])) {
Err = ERROR_INVALID_PARAMETER;
FreeLibrary(hLib);
return Err;
}
.
.
.
}
先前摘錄的 AddPropSheetPageProc 會如下所示:
BOOL
CALLBACK
AddPropSheetPageProc(
IN HPROPSHEETPAGE hpage,
IN LPARAM lParam
)
{
*((HPROPSHEETPAGE *)lParam) = hpage;
return TRUE;
}
規格需求
需求 | 值 |
---|---|
標頭 | setupapi.h (包括 Setupapi.h) |