(setupapi.h) SP_PROPSHEETPAGE_REQUEST 结构
SP_PROPSHEETPAGE_REQUEST结构可以作为第一个参数 (lpv) 传递到 SetupAPI DLL 中的 ExtensionPropSheetPageProc 入口点。 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;
}
要求
要求 | 值 |
---|---|
Header | setupapi.h (包括 Setupapi.h) |