Share via


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