Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Структуру SP_PROPSHEETPAGE_REQUEST можно передать в качестве первого параметра (lpv) в точку входа ExtensionPropSheetPageProc в библиотеке DLL SetupAPI . 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
Указывает страницу Выбора ресурсов, предоставляемую библиотекой DLL SetupAPI.
SPPSR_ENUM_BASIC_DEVICE_PROPERTIES
Указывает страницу, предоставленную поставщиком BasicProperties32 устройства. То есть установщик или другой компонент, который предоставил страницы в ответ на запрос на установку DIF_ADDPROPERTYPAGE_BASIC .
SPPSR_ENUM_ADV_DEVICE_PROPERTIES
Указывает страницу, предоставленную классом и (или) поставщиком EnumPropPages32 устройства. То есть установщик или другой компонент, который предоставил страницы в ответ на запрос на установку DIF_ADDPROPERTYPAGE_ADVANCED .
DeviceInfoSet
Дескриптор для набора сведений об устройстве, содержащего устанавливаемое устройство.
DeviceInfoData
Указатель на структуру SP_DEVINFO_DATA для устанавливаемого устройства.
Комментарии
Компонент, извлекающий страницы свойств, вызывает функцию ExtensionPropSheetPageProc setupAPI и передает указатель на структуру 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) |