IPrintCoreUI2::WhyConstrained 메서드(prcomoem.h)
IPrintCoreUI2::WhyConstrained
메서드는 지정된 기능/옵션 선택이 제한되는 이유를 결정합니다.
통사론
HRESULT WhyConstrained(
[in] POEMUIOBJ poemuiobj,
[in] DWORD dwFlags,
[in] PCSTR pszFeatureKeyword,
[in] PCSTR pszOptionKeyword,
[out] PZZSTR pmszReasonList,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
매개 변수
[in] poemuiobj
현재 컨텍스트, OEMUIOBJ 구조체에 대한 포인터입니다.
[in] dwFlags
예약되어 있으며 0으로 설정해야 합니다.
[in] pszFeatureKeyword
호출자에 대한 관심 있는 단일 기능 키워드를 포함하는 호출자 제공 버퍼에 대한 포인터입니다.
[in] pszOptionKeyword
옵션 키워드를 포함하는 호출자 제공 버퍼에 대한 포인터입니다.
[out] pmszReasonList
지정된 기능/옵션에 제약 조건을 적용하는 기능/옵션 키워드 쌍의 목록을 수신하는 호출자 제공 버퍼에 대한 포인터입니다. 이 목록은 목록의 각 항목이 다음 항목과 null 문자로 구분된 MULTI_SZ 형식입니다. 목록은 두 개의 null 문자로 종료됩니다.
이 매개 변수를 NULL 설정하여 목록을 채운 채 이유 목록의 크기(*pcbNeeded)를 쿼리합니다.
[in] cbSize
pmszReasonList가리키는 버퍼의 크기(바이트)를 지정합니다.
[out] pcbNeeded
이유 목록의 실제 크기(바이트)를 받는 메모리 위치에 대한 포인터입니다.
반환 값
메서드는 다음 값 중 하나를 반환해야 합니다.
반환 코드 | 묘사 |
---|---|
|
메서드가 성공했습니다. |
|
cbSize 값은 출력 버퍼에 쓸 바이트 수보다 작습니다(pmszReasonList가리키는 버퍼).
이 메서드는 pmszReasonList NULL 설정하여 호출되었습니다. |
|
이 메서드는 지원되지 않습니다. |
|
poemuiobj 매개 변수가 잘못된 컨텍스트 개체를 가리켰습니다.
기능 키워드 또는 옵션 키워드가 인식되지 않았습니다. 기능 고정(Driver-Supplied 속성 시트 페이지바꾸기 참조)이 현재 컨텍스트에 지정된 것과 일치하지 않습니다. |
|
메서드가 실패했습니다. |
발언
이 메서드는 핵심 드라이버의 표준 UI 페이지를 완전히 대체하는 Windows XP Pscript5 UI 플러그 인에서만 지원되며 UI 플러그 인의 IPrintOemUI::D ocumentPropertySheets 및 IPrintOemUI::D evicePropertySheets 함수 및 속성 시트 콜백 루틴 중에만 지원됩니다. 자세한 내용은 Driver-Supplied 속성 시트 페이지 바꾸기 참조하세요.
OEM UI 사용자가 제한된 항목을 선택하려고 하면 호출자는 이 메서드를 사용하여 항목이 제한된 이유를 설명하는 메시지를 표시할 수 있습니다. 이 메서드가 반환되면 pmszReasonList 현재 드라이버 설정에 표시되지만 선택한 기능/옵션 키워드와 충돌하는 하나 이상의 기능/옵션 쌍 목록을 가리킵니다. 충돌이 없으면 메서드가 S_OK 반환해야 합니다. pmszReasonList null 문자만 포함하는 빈 ASCII 문자열로 채워져야 하며 *pcbNeeded 1로 설정해야 합니다.
데이터 액세스당 두 번의 호출을 수행해야 하는 필요성을 줄이려면 메서드에 고정 크기(예: 1KB)의 출력 버퍼를 전달한 다음 함수 반환 값을 확인합니다. 메서드가 S_OK 반환하는 경우 버퍼에는 이미 관심 있는 데이터가 포함됩니다. 메서드가 E_OUTOFMEMORY 반환하는 경우 *pcbNeeded 값은 관심 있는 데이터를 보유하는 데 필요한 버퍼 크기입니다. 그런 다음 호출자는 더 큰 크기의 버퍼를 할당하고 메서드에 대한 두 번째 호출을 진행해야 합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | prcomoem.h(Prcomoem.h 포함) |
참고 항목
IPrintCoreUI2::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets