IPrintOemUI::D eviceCapabilities 메서드(prcomoem.h)
메서드 IPrintOemUI::DeviceCapabilities
를 사용하면 사용자 인터페이스 플러그 인이 사용자 지정된 디바이스 기능을 지정할 수 있습니다.
구문
HRESULT DeviceCapabilities(
POEMUIOBJ poemuiobj,
HANDLE hPrinter,
PWSTR pDeviceName,
WORD wCapability,
PVOID pOutput,
PDEVMODE pPublicDM,
PVOID pOEMDM,
DWORD dwOld,
DWORD *dwResult
);
매개 변수
poemuiobj
OEMUIOBJ 구조체에 대한 호출자 제공 포인터입니다.
hPrinter
프린터 디바이스에 대한 호출자 제공 핸들입니다.
pDeviceName
디바이스 이름을 나타내는 문자열에 대한 호출자 제공 포인터입니다.
wCapability
메서드가 반환해야 하는 정보의 유형을 나타내는 호출자 제공 플래그입니다. 플래그 목록은 DrvDeviceCapabilities 함수에 대한 설명을 참조하세요.
pOutput
요청된 정보를 수신하기 위해 버퍼에 대한 호출자 제공 포인터입니다. 반환되는 정보 유형은 wCapability에 지정된 플래그에 따라 달라집니다.
pPublicDM
유효성이 검사된 DEVMODEW 구조체에 대한 호출자 제공 포인터입니다.
pOEMDM
사용자 인터페이스 플러그 인의 프라이빗 DEVMODEW 구조체 멤버에 대한 호출자 제공 포인터입니다.
dwOld
프린터 드라이버의 DrvDeviceCapabilities 함수 또는 다른 사용자 인터페이스 플러그 인에서 호출자가 제공한 반환 값입니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
dwResult
wCapability로 지정된 플래그에 종속된 반환 값입니다. 자세한 내용은 DrvDeviceCapabilities 함수에 대한 설명 및 다음 설명 섹션을 참조하세요.
반환 값
메서드는 다음 값 중 하나를 반환해야 합니다.
반환 코드 | Description |
---|---|
|
작업에 성공했습니다. |
|
플러그 인은 자체 용도로 pOutput 매개 변수가 가리키는 버퍼를 사용하려고 합니다. 이 반환 값은 prcomoem.h에 정의되어 있습니다. 이 반환 값을 사용하는 시기에 대한 자세한 내용은 다음 주의 섹션을 참조하세요. |
|
작업이 실패했습니다. |
|
메서드가 구현되지 않았습니다. |
설명
사용자 인터페이스 플러그 인의 IPrintOemUI::DeviceCapabilities
메서드는 사용자 모드 프린터 인터페이스 DLL에서 내보낸 DrvDeviceCapabilities 함수와 동일한 유형의 작업을 수행합니다. 메서드는 프린터에서 제공하는 기능을 지정합니다.
메서드를 IPrintOemUI::DeviceCapabilities
사용하여 기능에 대한 Unidrv 지원을 선점하거나 프린터 드라이버에서 제공하지 않는 기능을 추가할 수 있습니다. 드라이버는 DrvDeviceCapabilities 함수 내에서 를 호출 IPrintOemUI::DeviceCapabilities
합니다.
메서드가 IPrintOemUI::DeviceCapabilities
수신된 DC_FIELDS 플래그에 대한 응답으로 적절한 비트를 설정하여 기능에 대한 사용자 지정 지원을 나타내는 경우 사용자 지정된 코드는 기능을 완전히 지원해야 합니다. 전체 지원에는 일반적으로 메서드 호출 IPrintOemUI::DeviceCapabilities
에 대한 응답으로 기능에 대한 정보를 반환하고 기능을 구현하기 위한 적절한 사용자 모드 또는 커널 모드 코드를 제공하는 것이 포함됩니다.
여러 사용자 인터페이스 플러그 인에서 메서드를 내보낼 경우 IPrintOemUI::DeviceCapabilities
플러그 인이 설치를 위해 지정된 순서대로 메서드가 호출됩니다. 플러그 인의 IPrintOemUI::DeviceCapabilities
메서드가 호출 될 때마다 해당 dwOld 입력 값은 이전에 호출 된 플러그 인의 IPrintOemUI::DeviceCapabilities
메서드에서 반환 값입니다. 호출된 첫 번째 플러그 인의 경우 dwOld 는 프린터 드라이버의 DrvDeviceCapabilities 함수의 반환 값을 포함합니다. 마찬가지로 pOutput 에서 가리키는 버퍼에는 입력에 이전에 호출 IPrintOemUI::DeviceCapabilities
된 메서드 또는 DrvDeviceCapabilities 함수가 배치한 모든 콘텐츠가 포함됩니다.
여러 사용자 인터페이스 플러그 인이 서로 함께 작동하려면 각 IPrintOemUI::DeviceCapabilities
메서드가 다음 규칙을 준수해야 합니다.
-
사용자 인터페이스 플러그 인이 지정된 기능을 지원하지 않는 경우 해당
IPrintOemUI::DeviceCapabilities
메서드는 dwResult에서 dwOld 매개 변수의 내용만 반환해야 합니다. -
사용자 인터페이스 플러그 인이 기능을 지원하는 경우 해당
IPrintOemUI::DeviceCapabilities
메서드는 dwOld 및 pOutput이 가리키는 버퍼의 내용을 무시해야 합니다. 지정된 기능을 지원함을 나타내는 데 적합한 반환 값 및 버퍼 콘텐츠를 제공해야 합니다. 메서드가 오류를 감지하면 dwResult에서 GDI_ERROR 반환해야 합니다. -
사용자 인터페이스 플러그 인이 pOutput이 가리키는 버퍼에서 받은 기능 정보를 수정하려면 해당
IPrintOemUI::DeviceCapabilities
메서드가 버퍼 내용을 수정하고 dwResult에서 적절한 반환 값을 반환해야 합니다. 예를 들어 wCapability 가 DC_FIELDS 경우 메서드는 dwOld에 설정된 비트로 설정해야 하는 비트 또는 를 반환하고 dwResult에서 OR 작업의 결과를 반환해야 합니다. - dwOld의 수신된 콘텐츠가 GDI_ERROR 경우에도 이전 규칙을 따라야 합니다.
IPrintOemUI::DeviceCapabilities
메서드를 호출하고 DC_FIELDS 지정하고 모든 집합 비트의 합합을 호출자에게 반환합니다.
S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환 값은 Windows Vista에서 새로 추가되었으며 Unidrv 및 Pscript5 사용자 인터페이스 플러그 인 모두에 적용됩니다. 플러그 인은 pOutput 매개 변수가 가리키는 버퍼에 배치되는 내용을 완전히 제어해야 하는 경우에만 S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환 값을 사용해야 합니다. 플러그 인이 S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환할 때 Unidrv 또는 Pscript5 코어 드라이버는 pOutput 버퍼에 데이터를 배치하지 않습니다. 플러그 인은 DEVMODEW 구조의 설정( pPublicDM 및 pOEMDM 매개 변수가 가리키는)이 GPD 또는 PPD 파일에 지정된 것과 다른 디바이스 기능 데이터를 보고해야 한다는 것을 사용자 인터페이스 플러그 인에 나타낼 때 이 값을 반환해야 할 수 있습니다. 예를 들어 사진 인쇄를 지정하는 DEVMODEW 구조체에는 GPD 또는 PPD 파일에 지정된 것과 다른 용지 유형 집합이 필요할 수 있습니다. 이러한 상황에서 pOutput 및 dwOld 매개 변수의 값에 관계없이 플러그 인은 S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환해야 하며 dwResult 매개 변수를 보고하려는 용지 형식의 수로 설정해야 합니다. pOutput이 NULL이 아닌 경우 플러그 인은 pOutput에서 가리키는 버퍼를 원하는 용지 유형 집합으로 채워야 하며, dwResult를 플러그 인에서 보고하려는 용지 유형 수로 설정해야 합니다.
여러 사용자 인터페이스 플러그 인이 동시에 활성화되고 그 중 하나가 S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환하는 경우 Unidrv 또는 Pscript5 코어 드라이버는 이 반환 값을 플러그 인이 전체 대체 출력 데이터를 제공하려는 것을 의미하도록 해석합니다. 따라서 핵심 드라이버는 플러그 인을 호출하기 전에 pOutput 버퍼에 데이터를 배치하지 않습니다. (핵심 드라이버는 설치에 지정된 순서대로 플러그 인을 호출합니다.)
핵심 드라이버가 pOutput 버퍼에 배치하는 값을 바꿀 필요가 없는 경우 플러그 인은 S_OK 반환해야 합니다. Unidrv 및 Pscript5 핵심 드라이버는 pOutput 버퍼를 사용하는 디바이스 기능에 대해서만 S_DEVCAP_OUTPUT_FULL_REPLACEMENT 반환 값을 인식합니다. 즉, wCapability 매개 변수가 다음 플래그 중 하나로 설정된 경우 입니다.
DC_PAPERNAMES
DC_PAPERS
DC_PAPERSIZE
DC_BINNAMES
DC_BINS
DC_NUP
DC_PERSONALITY
DC_MEDIAREADY
DC_MEDIATYPENAMES
DC_MEDIATYPES
DC_ENUMRESOLUTIONS
사용자 인터페이스 플러그 인을 만들고 설치하는 방법에 대한 자세한 내용은 Microsoft의 프린터 드라이버 사용자 지정을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | prcomoem.h(Prcomoem.h 포함) |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기