次の方法で共有


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 を含む)

こちらもご覧ください

DIF_ADDPROPERTYPAGE_ADVANCED

DIF_ADDPROPERTYPAGE_BASIC