다음을 통해 공유


IPrintCoreHelperPS::SetOptions 메서드(prcomoem.h)

IPrintCoreHelperPS::SetOptions 메서드는 여러 기능 옵션 쌍을 동시에 설정합니다.

통사론

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

매개 변수

[in, optional] pDevmode

DEVMODEW 구조체에 대한 포인터입니다. 이 포인터가 제공되면 IPrintCoreHelperPS::SetOptions 기본 또는 현재 DEVMODEW 구조가 아닌 pDevmode 가리키는 DEVMODEW 구조를 사용해야 합니다. 이 메서드가 플러그 인 공급자 또는 IPrintOemPS::D evMode호출되는 경우 이 매개 변수가 필요합니다. 대부분의 다른 상황에서는 매개 변수가 NULL 합니다. 핵심 드라이버가 pDevmode NULL 설정하면 전달된 DEVMODEW 구조가 아닌 내부 상태를 수정합니다. 이 작업은 전체 UI 교체와 같은 작업 중에 필요하며, DDI에서 반환하는 DEVMODEW 구조(예: DrvDocumentPropertySheets)는 핵심 드라이버의 UI 모듈에서 서비스됩니다.

[in] cbSize

pDevmode 매개 변수가 가리키는 DEVMODEW 구조체의 크기(바이트)입니다.

[in] bResolveConflicts

IPrintCoreHelperPS::SetOptions 구성 파일의 PPD 보기에서 하나 이상의 제약 조건과 Pscript 또는 인쇄 프로세서에서 구현된 기능에 대한 제약 조건에서 발생하는 충돌을 해결해야 하는지 여부를 나타내는 부울 값입니다. TRUE 경우 이 메서드는 충돌을 해결하려고 시도해야 합니다. FALSE 경우 이 메서드는 충돌을 해결하려고 시도해서는 안 됩니다.

[in] pFOPairs

각 요소에 기능 옵션 쌍이 포함된 PRINT_FEATURE_OPTION 요소의 배열입니다. 각 기능 옵션 쌍에는 해당 기능에 대해 선택할 수 있는 기능과 옵션이 나열됩니다. 모든 설정은 순차적으로 적용됩니다. 중복은 허용되지 않지만 배열의 뒷부분(즉, 더 높은 인덱스)에 표시되는 설정은 배열의 앞부분에 나타나는 설정을 재정의합니다.

[in] cPairs

pFOPairs 매개 변수가 가리키는 기능 옵션 쌍의 수입니다.

[out] pcPairsWritten

IPrintCoreHelperPS::SetOptions 반환되거나 실패하기 전에 성공적으로 저장된 기능 옵션 쌍의 수를 수신하는 변수에 대한 포인터입니다. 이 메서드가 성공적으로 반환되면 pcPairsWritten cairs 동일한 값을 갖습니다. 메서드가 실패하면 pcPairsWritten 0부터 cpairs값까지 값을 가질 수 있습니다. 이 매개 변수는 선택 사항이며 NULL 수 있습니다.

[out] pdwResult

충돌 해결의 상태를 받는 변수에 대한 포인터입니다. 상태는 다음 값 중 하나일 수 있습니다.

묘사
SETOPTIONS_RESULT_NO_CONFLICT 새 설정을 기준으로 구성 파일의 PPD 뷰에 지정된 제약 조건이 위반되지 않았습니다.
SETOPTIONS_RESULT_CONFLICT_RESOLVED 구성 파일의 PPD 뷰에 지정된 제약 조건이 하나 이상 위반되었으며 호출자는 메서드가 충돌을 해결하도록 요청했습니다. 이 값을 사용하면 충돌이 해결된 설정이 변경됩니다.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED 구성 파일의 PPD 뷰에 지정된 제약 조건이 하나 이상 위반되었으며 호출자는 메서드가 충돌을 해결하지 않도록 요청했습니다. 설정은 변경되지 않으며 충돌은 그대로 유지됩니다.

반환 값

IPrintCoreHelperPS::SetOptions 다음 값 중 하나를 반환해야 합니다.

반환 코드 묘사
S_OK 작업이 성공했습니다.
E_INVALIDARG 하나 이상의 인수가 잘못되었거나 기능이 지원되지 않았습니다.
E_OUTOFMEMORY 결과 배열의 메모리를 할당할 수 없습니다.

다른 오류의 경우 메서드는 표준 COM 오류 코드를 반환해야 합니다.

발언

IPrintCoreHelperPS::SetOptions 사용하여 여러 설정을 동시에 변경하고 선택한 모든 옵션이 설정된 후 제약 조건을 해결할 수 있습니다. 옵션에 대한 변경 내용은 pFOPairs 배열의 시작부터 순차적으로 적용되므로 이 배열에 동일한 기능이 두 번 나타나면 기능에 대한 마지막 옵션만 선택됩니다. bResolveConflicts 매개 변수가 TRUE 않으면 옵션 변경 내용이 커밋되지 않습니다.

대부분의 시나리오에서 bResolveConflicts 매개 변수는 TRUE 설정해야 합니다. 사용자에게 충돌을 해결하라는 메시지를 표시하려면 이 매개 변수를 FALSE 설정합니다.

요구 사항

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

참고 항목

IPrintCoreHelperPS

IPrintCoreHelperPS::GetOptions