다음을 통해 공유


DeviceCapabilitiesA 함수(wingdi.h)

DeviceCapabilities 함수는 프린터 드라이버의 기능을 검색합니다.

구문

int DeviceCapabilitiesA(
  [in]  LPCSTR         pDevice,
  [in]  LPCSTR         pPort,
  [in]  WORD           fwCapability,
  [out] LPSTR          pOutput,
  [in]  const DEVMODEA *pDevMode
);

매개 변수

[in] pDevice

프린터 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 프린터 드라이버가 아닌 프린터의 이름입니다.

[in] pPort

디바이스가 연결된 포트의 이름(예: LPT1)을 포함하는 null로 끝나는 문자열에 대한 포인터입니다.

[in] fwCapability

쿼리할 기능입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
DC_BINNAMES
프린터의 용지함 이름을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 문자열 버퍼의 길이는 24자이며 용지함의 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름 문자열은 이름이 24자 길이가 아니면 null로 종료됩니다. pOutputNULL인 경우 반환 값은 필요한 bin 항목의 수입니다.
DC_BINS
사용 가능한 용지함 목록을 검색합니다. pOutput 버퍼는 프린터에 사용 가능한 용지 원본을 나타내는 WORD 값 배열을 받습니다. 반환 값은 배열의 항목 수를 나타냅니다. 가능한 배열 값 목록은 DEVMODE 구조체의 dmDefaultSource 멤버에 대한 설명을 참조하세요. pOutputNULL인 경우 반환 값은 배열에 필요한 항목 수를 나타냅니다.
DC_COLLATE
프린터에서 정렬을 지원하는 경우 반환 값은 1입니다. 그렇지 않으면 반환 값이 0입니다. pOutput 매개 변수는 사용되지 않습니다.
DC_COLORDEVICE
프린터에서 컬러 인쇄를 지원하는 경우 반환 값은 1입니다. 그렇지 않으면 반환 값이 0입니다. pOutput 매개 변수는 사용되지 않습니다.
DC_COPIES
디바이스에서 인쇄할 수 있는 복사본 수를 반환합니다.
DC_DRIVER
프린터 드라이버의 버전 번호를 반환합니다.
DC_DUPLEX
프린터에서 이중 인쇄를 지원하는 경우 반환 값은 1입니다. 그렇지 않으면 반환 값이 0입니다. pOutput 매개 변수는 사용되지 않습니다.
DC_ENUMRESOLUTIONS
프린터에서 지원하는 해상도 목록을 검색합니다. pOutput 버퍼는 LONG 값의 배열을 받습니다. 지원되는 각 해상도에 대해 배열에는 해상도의 x 및 y 차원을 인치당 점으로 지정하는 LONG 값 쌍이 포함됩니다. 반환 값은 지원되는 해상도의 수를 나타냅니다. pOutputNULL인 경우 반환 값은 지원되는 해상도 수를 나타냅니다.
DC_EXTRA
프린터 드라이버에 대한 DEVMODE 구조체의 디바이스별 부분에 필요한 바이트 수를 반환합니다.
DC_FIELDS
프린터 드라이버 DEVMODE 구조체의 dmFields 멤버를 반환합니다. dmFields 멤버는 프린터 드라이버에서 지원되는 구조체의 디바이스 독립적 부분에 있는 멤버를 나타냅니다.
DC_FILEDEPENDENCIES
드라이버가 설치될 때 로드해야 하는 추가 파일의 이름을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 문자열 버퍼의 길이는 64자이며 파일 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름 문자열은 이름이 64자 길이가 아니면 null로 종료됩니다. pOutputNULL인 경우 반환 값은 파일 수입니다.
DC_MAXEXTENT
프린터 드라이버 DEVMODE 구조체의 dmPaperLengthdmPaperWidth 멤버가 지정할 수 있는 최대 용지 크기를 반환합니다. 반환 값의 LOWORD에는 최대 dmPaperWidth 값이 포함되고 HIWORD에는 최대 dmPaperLength 값이 포함됩니다.
DC_MEDIAREADY
현재 사용할 수 있는 용지 양식의 이름을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 문자열 버퍼의 길이는 64자이며 용지 양식의 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름 문자열은 이름이 64자 길이가 아니면 null로 종료됩니다. pOutputNULL인 경우 반환 값은 용지 양식의 수입니다.
DC_MEDIATYPENAMES
지원되는 미디어 형식의 이름을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 문자열 버퍼의 길이는 64자이며 지원되는 미디어 형식의 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름이 64자인 경우가 아니면 문자열은 null로 종료됩니다. pOutputNULL인 경우 반환 값은 필요한 미디어 형식 이름의 수입니다.
DC_MEDIATYPES
지원되는 미디어 유형의 목록을 검색합니다. pOutput 버퍼는 지원되는 미디어 유형을 나타내는 DWORD 값 배열을 받습니다. 반환 값은 배열의 항목 수를 나타냅니다. 가능한 배열 값 목록은 DEVMODE 구조체의 dmMediaType 멤버에 대한 설명을 참조하세요. pOutputNULL인 경우 반환 값은 배열에 필요한 항목 수를 나타냅니다.
DC_MINEXTENT
프린터 드라이버 DEVMODE 구조체의 dmPaperLengthdmPaperWidth 멤버가 지정할 수 있는 최소 용지 크기를 반환합니다. 반환 값의 LOWORD에는 최소 dmPaperWidth 값이 포함되고 HIWORD에는 최소 dmPaperLength 값이 포함됩니다.
DC_ORIENTATION
가로 방향을 생성하기 위해 세로 방향이 시계 반대 방향으로 회전되는 각도의 측면에서 디바이스의 세로 방향과 가로 방향 간의 관계를 반환합니다. 반환 값은 다음 중 하나일 수 있습니다.
0
가로 방향이 없습니다.
90
세로는 가로를 생성하기 위해 90도 회전됩니다.
270
세로는 가로를 생성하기 위해 270도 회전됩니다.
DC_NUP
인쇄된 페이지당 여러 문서 페이지를 인쇄하는 프린터의 기능을 나타내는 정수 배열을 검색합니다. pOutput 버퍼는 DWORD 값의 배열을 받습니다. 각 값은 인쇄된 페이지당 지원되는 문서 페이지 수를 나타냅니다. 반환 값은 배열의 항목 수를 나타냅니다. pOutputNULL인 경우 반환 값은 배열에 필요한 항목 수를 나타냅니다.
DC_PAPERNAMES
지원되는 용지 이름 목록(예: Letter 또는 Legal)을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 문자열 버퍼의 길이는 64자이며 용지 양식의 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름 문자열은 이름이 64자인 경우가 아니면 null로 종료됩니다. pOutputNULL이면 반환 값은 용지 양식의 수입니다.
DC_PAPERS
지원되는 용지 크기 목록을 검색합니다. pOutput 버퍼는 프린터에 사용 가능한 용지 크기를 나타내는 WORD 값 배열을 받습니다. 반환 값은 배열의 항목 수를 나타냅니다. 가능한 배열 값 목록은 DEVMODE 구조체의 dmPaperSize 멤버에 대한 설명을 참조하세요. pOutputNULL인 경우 반환 값은 배열에 필요한 항목 수를 나타냅니다.
DC_PAPERSIZE
지원되는 각 용지 크기의 크기(밀리미터의 10분의 1)를 검색합니다. pOutput 버퍼는 POINT 구조의 배열을 받습니다. 각 구조체에는 용지가 DMORIENT_PORTRAIT 방향에 있는 것처럼 용지 크기의 너비(x차원) 및 길이(y차원) 포함됩니다. 반환 값은 배열의 항목 수를 나타냅니다.
DC_PERSONALITY
프린터에서 지원하는 프린터 설명 언어 목록을 검색합니다. pOutput 버퍼는 문자열 버퍼 배열을 받습니다. 각 버퍼의 길이는 32자이며 프린터 설명 언어의 이름을 포함합니다. 반환 값은 배열의 항목 수를 나타냅니다. 이름 문자열은 이름이 32자인 경우가 아니면 null로 종료됩니다. pOutputNULL인 경우 반환 값은 필요한 배열 항목 수를 나타냅니다.
DC_PRINTERMEM
반환 값은 사용 가능한 프린터 메모리 양(킬로바이트)입니다. pOutput 매개 변수는 사용되지 않습니다.
DC_PRINTRATE
반환 값은 프린터의 인쇄 속도를 나타냅니다. DC_PRINTRATEUNIT 반환된 값은 DC_PRINTRATE 값의 단위를 나타냅니다. pOutput 매개 변수는 사용되지 않습니다.
DC_PRINTRATEPPM
반환 값은 프린터의 인쇄 속도를 분당 페이지 단위로 나타냅니다. pOutput 매개 변수는 사용되지 않습니다.
DC_PRINTRATEUNIT
반환 값은 DC_PRINTRATE 플래그에 대해 반환된 값의 인쇄 속도 단위를 나타내는 다음 값 중 하나입니다. pOutput 매개 변수는 사용되지 않습니다.
PRINTRATEUNIT_CPS
초당 문자 수입니다.
PRINTRATEUNIT_IPM
분당 인치.
PRINTRATEUNIT_LPM
분당 선.
PRINTRATEUNIT_PPM
분당 페이지 수입니다.
DC_SIZE
프린터 드라이버 DEVMODE 구조체의 dmSize 멤버를 반환합니다.
DC_STAPLE
프린터에서 스테이플링을 지원하는 경우 반환 값은 0이 아닌 값입니다. 그렇지 않으면 반환 값이 0입니다. pOutput 매개 변수는 사용되지 않습니다.
DC_TRUETYPE
TrueType 글꼴을 사용하는 드라이버의 기능을 검색합니다. DC_TRUETYPEpOutput 매개 변수는 NULL이어야 합니다. 반환 값은 다음 중 하나 이상일 수 있습니다.
DCTT_BITMAP
디바이스는 TrueType 글꼴을 그래픽으로 인쇄할 수 있습니다.
DCTT_DOWNLOAD
디바이스는 TrueType 글꼴을 다운로드할 수 있습니다.
DCTT_SUBDEV
디바이스는 디바이스 글꼴을 TrueType 글꼴로 대체할 수 있습니다.
DC_VERSION
프린터 드라이버가 준수하는 사양 버전을 반환합니다.

[out] pOutput

배열에 대한 포인터입니다. 배열의 형식은 fwCapability 매개 변수의 설정에 따라 달라집니다. pOutputNULL인 경우 반환되는 항목을 확인하려면 위의 각 기능을 참조하세요.

[in] pDevMode

DEVMODE 구조체에 대한 포인터입니다. 이 매개 변수가 NULL이면 DeviceCapabilities 는 지정된 프린터 드라이버에 대한 현재 기본 초기화 값을 검색합니다. 그렇지 않으면 함수는 pDevMode 가 가리키는 구조체에 포함된 값을 검색합니다.

반환 값

함수가 성공하면 반환 값은 fwCapability 매개 변수의 설정에 따라 달라집니다. 반환 값이 0이면 일반적으로 함수가 성공적으로 완료되었지만 지원되지 않는 기능과 같은 일부 유형의 오류가 발생했음을 나타냅니다. 자세한 내용은 fwCapability 값에 대한 설명을 참조하세요.

함수가 -1을 반환하는 경우 이는 기능이 지원되지 않거나 일반적인 함수 오류가 발생했음을 의미할 수 있습니다.

설명

참고 이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 얼마나 빨리 반환되는지는 네트워크 상태, 인쇄 서버 구성 및 프린터 드라이버 구현과 같은 런타임 요인(애플리케이션을 작성할 때 예측하기 어려운 요소)에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.
 
pDevMode 매개 변수가 가리키는 DEVMODE 구조체는 DocumentProperties 함수를 호출하여 가져올 수 있습니다.

프린터 드라이버가 사용자 지정 디바이스 기능을 지원하는 경우 드라이버는 각 사용자 지정 기능에 대해 SetPrinterData 함수를 호출해야 합니다. SetPrinterData 함수는 인쇄 시스템에 적절한 프린터 데이터를 추가하여 32비트 애플리케이션이 64비트 Windows 설치에서 사용자 지정 기능에 액세스할 수 있도록 합니다.

각 사용자 지정 기능에 대해 먼저 기능 유형을 설명하는 프린터 데이터를 추가해야 합니다. 이렇게 하려면 SetPrinterData를 호출할 때 pValueName 문자열을 CustomDeviceCapabilityType_Xxx 설정합니다. 여기서 "Xxx"는 기능의 16진수 표현입니다. 예를 들어 "CustomDeviceCapabilityType_1234"이 있을 수 있습니다. 설정한 레지스트리 데이터는 REG_DWORD 형식이어야 하며 해당 값을 다음 중 하나로 설정해야 합니다.

  • 사용자 지정 기능이 DWORD인 경우 0
  • 1, 사용자 지정 기능이 바이트 버퍼인 경우
  • 2, 사용자 지정 기능이 항목 배열인 경우
사용자 지정 기능이 항목 배열인 경우 SetPinterData 를 두 번째로 호출하여 배열의 항목 크기에 대한 정보를 제공해야 합니다. 이렇게 하려면 SetPinterData를 호출할 때 제공하는 pValueName 문자열은 "CustomDeviceCapabilitySize_Xxx"이어야 합니다. 여기서 Xxx는 기능의 16진수 표현입니다. 예를 들어 "CustomDeviceCapabilitySize_1234"이 있을 수 있습니다. 설정한 레지스트리 데이터는 REG_DWORD 형식이어야 하며 해당 값을 배열에 있는 항목의 크기(바이트)로 설정해야 합니다.

참고

wingdi.h 헤더는 DEVICECapabilities를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 WinSpool.lib
DLL WinSpool.drv

추가 정보

Devmode

DOCINFO

DocumentProperties

GetDeviceCaps

GetProcAddress

LoadLibrary

지점

인쇄 스풀러 API 함수

인쇄

Startdoc