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

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

[in] cbSize

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

[in] bResolveConflicts

IPrintCoreHelper::SetOptions가 구성 파일의 GPD 또는 PPD 보기에 지정된 하나 이상의 제약 조건과 Unidrv 또는 Pscript 또는 인쇄 프로세서에서 구현된 기능에 대한 제약 조건에서 발생하는 충돌을 resolve 여부를 나타내는 부울 값입니다. TRUE인 경우 이 메서드는 충돌을 resolve 시도해야 합니다. FALSE이면 이 메서드가 충돌을 resolve 시도해서는 안 됩니다. 자세한 내용은 주의 섹션을 참조하세요.

[in] pFOPairs

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

[in] cPairs

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

[out] pcPairsWritten

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

[out] pdwResult

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

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

반환 값

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

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

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

설명

IPrintCoreHelper::SetOptions를 사용하여 여러 설정을 동시에 변경하고 선택한 모든 옵션이 설정된 후 제약 조건을 resolve 수 있습니다. 옵션에 대한 변경 내용은 pFOPairs 배열의 시작부터 순차적으로 적용되므로 이 배열에 동일한 기능이 두 번 나타나면 기능에 대한 마지막 옵션만 선택됩니다. bResolveConflicts 매개 변수가 TRUE가 아니면 옵션 변경 내용이 커밋되지 않습니다(즉, 레지스트리에 저장됨).

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

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 prcomoem.h(Prcomoem.h 포함)

추가 정보

IPrintCoreHelper

IPrintCoreHelper::GetOption