다음을 통해 공유


EnumPrinterData 함수

EnumPrinterData 함수는 지정된 프린터에 대한 구성 데이터를 열거합니다.

단일 호출에서 구성 데이터를 검색하려면 EnumPrinterDataEx 함수를 사용합니다.

구문

DWORD EnumPrinterData(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   dwIndex,
  _Out_ LPTSTR  pValueName,
  _In_  DWORD   cbValueName,
  _Out_ LPDWORD pcbValueName,
  _Out_ LPDWORD pType,
  _Out_ LPBYTE  pData,
  _In_  DWORD   cbData,
  _Out_ LPDWORD pcbData
);

매개 변수

hPrinter [in]

구성 데이터를 가져올 프린터에 대한 핸들입니다. OpenPrinter 또는 AddPrinter 함수를 사용하여 프린터 핸들을 검색합니다.

dwIndex [in]

검색할 구성 데이터 값을 지정하는 인덱스 값입니다.

지정된 프린터 핸들에 대해 EnumPrinterData 를 처음 호출할 때 이 매개 변수를 0으로 설정합니다. 그런 다음, 함수가 ERROR_NO_MORE_ITEMS 반환할 때까지 동일한 프린터와 관련된 후속 호출에 대해 매개 변수를 하나씩 증분합니다. 자세한 내용은 다음 설명 섹션을 참조하세요.

cbValueNamecbData 매개 변수 설명에 언급된 기술을 사용하여 적절한 버퍼 크기 값을 가져오는 경우 지정된 프린터 핸들에 대한 EnumPrinterData에 대한 첫 번째 호출에서 두 매개 변수를 모두 0으로 설정하면 해당 호출에 대해 dwIndex 값이 중요하지 않습니다. EnumPrinterData에 대한 다음 호출에서 dwIndex를 0으로 설정하여 실제 열거 프로세스를 시작합니다.

구성 데이터 값은 정렬되지 않습니다. 새 값에는 임의 인덱스가 있습니다. 즉 , EnumPrinterData 함수는 임의의 순서로 값을 반환할 수 있습니다.

pValueName [out]

종료 null 문자를 포함하여 구성 데이터 값의 이름을 받는 버퍼에 대한 포인터입니다.

cbValueName [in]

pValueName이 가리키는 버퍼의 크기(바이트)입니다.

운영 체제에서 적절한 버퍼 크기를 제공하려면 지정된 프린터 핸들에 대해 EnumPrinterData에 대한 첫 번째 호출에 대해 이 매개 변수와 cbData 매개 변수를 모두 0으로 설정합니다. 함수가 반환될 때 pcbValueName 이 가리키는 변수에는 모든 프린터의 구성 데이터 값 이름을 성공적으로 열거할 수 있을 만큼 큰 버퍼 크기가 포함됩니다.

pcbValueName [out]

pValueName이 가리키는 버퍼에 저장된 바이트 수를 수신하는 변수에 대한 포인터입니다.

pType [out]

지정된 값에 저장된 데이터 형식을 나타내는 코드를 수신하는 변수에 대한 포인터입니다. 가능한 형식 코드 목록은 레지스트리 값 형식을 참조하세요. 형식 코드가 필요하지 않은 경우 pType 매개 변수는 NULL 일 수 있습니다.

pData [out]

구성 데이터 값을 받는 버퍼에 대한 포인터입니다.

구성 데이터 값이 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

cbData [in]

pData가 가리키는 버퍼의 크기(바이트)입니다.

운영 체제에서 적절한 버퍼 크기를 제공하려면 지정된 프린터 핸들에 대해 EnumPrinterData를 처음 호출할 때 이 매개 변수와 cbValueName 매개 변수를 모두 0으로 설정합니다. 함수가 반환될 때 pcbData 가 가리키는 변수에는 프린터의 모든 구성 데이터 값 이름을 성공적으로 열거할 수 있을 만큼 큰 버퍼 크기가 포함됩니다.

pcbData [out]

pData가 가리키는 버퍼에 저장된 바이트 수를 수신하는 변수에 대한 포인터입니다.

pDataNULL인 경우 이 매개 변수는 NULL일 수 있습니다.

반환 값

함수가 성공하면 반환 값이 ERROR_SUCCESS.

함수가 실패하면 반환 값은 시스템 오류 코드입니다.

함수는 지정된 프린터 핸들에 대해 검색할 구성 데이터 값이 더 이상 없으면 ERROR_NO_MORE_ITEMS 반환합니다.

설명

참고

이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 반환되는 빈도는 애플리케이션을 작성할 때 예측하기 어려운 네트워크 상태, 인쇄 서버 구성 및 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.

EnumPrinterDataSetPrinterData 함수에 의해 설정된 프린터 구성 데이터를 검색합니다. 프린터의 구성 데이터는 명명된 값과 형식화된 값 집합으로 구성됩니다. EnumPrinterData 함수는 이러한 값 중 하나와 해당 이름 및 형식 코드를 호출할 때마다 가져옵니다. EnumPrinterData 함수를 연속해서 여러 번 호출하여 프린터의 모든 구성 데이터 값을 가져옵니다.

프린터 구성 데이터는 레지스트리에 저장됩니다. 프린터 구성 데이터를 열거하는 동안 해당 데이터를 변경할 수 있는 레지스트리 함수를 호출하지 않아야 합니다.

운영 체제에서 적절한 버퍼 크기를 제공하려면 먼저 매개 변수 섹션의 앞부분에서 설명한 대로 cbValueNamecbData 매개 변수를 모두 0으로 설정하여 EnumPrinterData를 호출합니다. 이 호출에서는 dwIndex 값이 중요하지 않습니다. 함수가 반환되면 *pcbValueName 및 *pcbData 에는 프린터의 모든 구성 데이터 값 이름 및 값을 열거할 수 있을 만큼 큰 버퍼 크기가 포함됩니다. 다음 호출에서 값 이름 및 데이터 버퍼를 할당하고, cbValueNamecbData 를 할당된 버퍼의 크기(바이트)로 설정하고 , dwIndex 를 0으로 설정합니다. 그런 다음, 함수가 ERROR_NO_MORE_ITEMS 반환될 때까지 EnumPrinterData 함수를 계속 호출하여 dwIndex 를 매번 하나씩 증분합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Winspool.h(Windows.h 포함)
라이브러리
Winspool.lib
DLL
Winspool.drv
유니코드 및 ANSI 이름
EnumPrinterDataW (유니코드) 및 EnumPrinterDataA (ANSI)

추가 정보

인쇄

인쇄 스풀러 API 함수

DeletePrinterData

EnumPrinterDataEx

GetPrinterData

OpenPrinter

SetPrinter

SetPrinterData