estrutura SP_PROPSHEETPAGE_REQUEST (setupapi.h)

Uma estrutura SP_PROPSHEETPAGE_REQUEST pode ser passada como o primeiro parâmetro (lpv) para o ponto de entrada ExtensionPropSheetPageProc na DLL SetupAPI . ExtensionPropSheetPageProc é usado para recuperar um identificador para uma página de folha de propriedades especificada.

Para obter informações sobre ExtensionPropSheetPageProc e funções relacionadas, consulte a documentação do SDK do Microsoft Windows.

Sintaxe

typedef struct _SP_PROPSHEETPAGE_REQUEST {
  DWORD            cbSize;
  DWORD            PageRequested;
  HDEVINFO         DeviceInfoSet;
  PSP_DEVINFO_DATA DeviceInfoData;
} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;

Membros

cbSize

O tamanho, em bytes, da estrutura SP_PROPSHEETPAGE_REQUEST.

PageRequested

A página da folha de propriedades a ser adicionada à folha de propriedades. Pode ser um dos seguintes valores:

SPPSR_SELECT_DEVICE_RESOURCES

Especifica a página Seleção de Recursos fornecida pela DLL SetupAPI.

SPPSR_ENUM_BASIC_DEVICE_PROPERTIES

Especifica uma página fornecida pelo provedor BasicProperties32 do dispositivo. Ou seja, um instalador ou outro componente que forneceu páginas em resposta a uma solicitação de instalação DIF_ADDPROPERTYPAGE_BASIC .

SPPSR_ENUM_ADV_DEVICE_PROPERTIES

Especifica uma página fornecida pela classe e/ou pelo provedor EnumPropPages32 do dispositivo. Ou seja, um instalador ou outro componente que forneceu páginas em resposta a uma solicitação de instalação DIF_ADDPROPERTYPAGE_ADVANCED .

DeviceInfoSet

O identificador do conjunto de informações do dispositivo que contém o dispositivo que está sendo instalado.

DeviceInfoData

Um ponteiro para uma estrutura SP_DEVINFO_DATA para o dispositivo que está sendo instalado.

Comentários

O componente que está recuperando as páginas de propriedades chama a função ExtensionPropSheetPageProc da SetupAPI e passa um ponteiro para uma estrutura SP_PROPSHEETPAGE_REQUEST, o endereço de sua função AddPropSheetPageProc e alguns dados privados. O provedor de folha de propriedades chama a rotina AddPropSheetPageProc para cada folha de propriedades que ele fornece.

O trecho de código a seguir mostra como recuperar uma página, a página Seleção de Recursos da 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;
        }
        .
        .
        .
}

O AddPropSheetPageProc para o trecho anterior seria semelhante ao seguinte:

BOOL
CALLBACK
AddPropSheetPageProc(
    IN HPROPSHEETPAGE hpage,
    IN LPARAM lParam
   )
{
    *((HPROPSHEETPAGE *)lParam) = hpage;
    return TRUE;
}

Requisitos

Requisito Valor
Cabeçalho setupapi.h (inclua Setupapi.h)

Confira também

DIF_ADDPROPERTYPAGE_ADVANCED

DIF_ADDPROPERTYPAGE_BASIC