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 ルーチンを呼び出します。
次のコードの抜粋は、1 つのページ (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 を含む) |