共用方式為


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)

另請參閱

DIF_ADDPROPERTYPAGE_ADVANCED

DIF_ADDPROPERTYPAGE_BASIC