다음을 통해 공유


IPrintCorePS2::GetOptions 메서드(prcomoem.h)

IPrintCorePS2::GetOptions 메서드는 기능/옵션 키워드 쌍 목록 형식으로 드라이버의 현재 기능 설정을 검색합니다.

통사론

HRESULT GetOptions(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCZZSTR pmszFeaturesRequested,
  [in]  DWORD   cbIn,
  [out] PZZSTR  pmszFeatureOptionBuf,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

매개 변수

[in] pdevobj

DEVOBJ 구조체에 대한 포인터입니다.

[in] dwFlags

예약되어 있으며 0으로 설정해야 합니다.

[in] pmszFeaturesRequested

설정이 요청된 기능 키워드 목록(MULTI_SZ 형식)이 포함된 호출자 제공 버퍼에 대한 포인터입니다. 모든 기능에 대한 설정을 가져오려면 이 매개 변수를 NULL 설정합니다.

[in] cbIn

pmszFeaturesRequested가리키는 버퍼의 크기(바이트)를 지정합니다. 크기에는 마지막 MULTI_SZ null 문자가 포함됩니다.

[out] pmszFeatureOptionBuf

드라이버 설정에서 가져온 기능/옵션 키워드 쌍(MULTI_SZ 형식) 목록을 수신하는 호출자 제공 버퍼에 대한 포인터입니다. 각 기능/옵션 키워드 쌍에는 기능 키워드 이름, null 문자, 옵션 키워드 이름 및 다른 null 문자가 포함됩니다. 목록은 두 개의 NULL 문자로 종료됩니다.

[in] cbSize

pmszFeatureOptionBuf 가리키는 버퍼의 크기(바이트)를 지정합니다.

[out] pcbNeeded

요청된 데이터의 실제 크기(바이트)를 받는 메모리 위치에 대한 포인터입니다.

반환 값

메서드는 다음 값 중 하나를 반환해야 합니다.

반환 코드 묘사
S_OK
메서드가 성공했습니다.
E_OUTOFMEMORY
cbSize 값은 출력 버퍼에 쓸 바이트 수보다 작습니다(pmszFeatureOptionBuf가리키는 버퍼).

이 메서드는 pmszFeatureOptionBuf NULL 설정하여 호출되었습니다.

E_INVALIDARG
입력 버퍼(pmszFeaturesRequested 가리키는 버퍼)가 제공되었지만 해당 내용은 MULTI_SZ 형식이 아닙니다.

pdevobj 매개 변수가 잘못된 드라이버 컨텍스트 개체를 가리켰습니다.

E_NOTIMPL
이 메서드는 지원되지 않습니다.
E_FAIL
메서드가 실패했습니다.

발언

이 메서드는 문서 고정프린터 고정 기능을 모두 지원합니다. 핵심 드라이버가 모든 옵션 설정을 설정하는 drvEnablePDEV 처리를 완료한 후에만 지원됩니다. 지원되지 않는 경우 IPrintCorePS2::GetOptions 호출하면 E_NOTIMPL 반환됩니다. 예를 들어 핵심 드라이버가 렌더링 플러그 인의 IPrintOemPS::EnablePDEV 메서드를 호출하는 경우 드라이버는 여전히 DrvEnablePDEV 처리를 사용하므로 플러그 인의 IPrintOemPS::D evMode 메서드 내에서 플러그 인 호출이 IPrintCorePS2::GetOptions 경우 플러그 인은 E_NOTIMPL 반환 값을 받습니다. 그러나 플러그 인의 IPrintOemPS::EnablePDEV 메서드는 핵심 드라이버가 DrvEnablePDEV 처리를 완료한 후에 호출되므로 플러그 인은 IPrintOemPS::EnablePDEV 메서드 내에서 IPrintCorePS2::GetOptions 성공적으로 호출할 수 있습니다.

요청된 기능 키워드가 인식되지 않거나 기능이 인식되지만 현재 옵션이 선택되어 있지 않으면 기능이 무시되고 기능/옵션 키워드 쌍이 출력 버퍼에 배치되지 않습니다.

데이터 액세스당 두 번의 호출을 수행해야 하는 필요성을 줄이려면 메서드에 고정 크기(예: 1KB)의 출력 버퍼를 전달한 다음 함수 반환 값을 확인합니다. 메서드가 S_OK 반환하는 경우 버퍼에는 이미 관심 있는 데이터가 포함됩니다. 메서드가 E_OUTOFMEMORY 반환하는 경우 *pcbNeeded 값은 관심 있는 데이터를 보유하는 데 필요한 버퍼 크기입니다. 그런 다음 호출자는 더 큰 크기의 버퍼를 할당하고 메서드에 대한 두 번째 호출을 진행해야 합니다.

이 메서드는 Pscript5 렌더링 플러그 인에 대해 지원됩니다.

자세한 내용은 GetOptions 및 SetOptions 사용하는참조하세요.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 prcomoem.h(Prcomoem.h 포함)

참고 항목

deVOBJ

drvEnablePDEV

IPrintCorePS2

IPrintOemPS::D evMode

IPrintOemPS::EnablePDEV