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 반환할 때까지 동일한 프린터와 관련된 후속 호출에 대해 매개 변수를 하나씩 증분합니다. 자세한 내용은 다음 설명 섹션을 참조하세요.
cbValueName 및 cbData 매개 변수 설명에 언급된 기술을 사용하여 적절한 버퍼 크기 값을 가져오는 경우 지정된 프린터 핸들에 대한 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가 가리키는 버퍼에 저장된 바이트 수를 수신하는 변수에 대한 포인터입니다.
pData가 NULL인 경우 이 매개 변수는 NULL일 수 있습니다.
반환 값
함수가 성공하면 반환 값이 ERROR_SUCCESS.
함수가 실패하면 반환 값은 시스템 오류 코드입니다.
함수는 지정된 프린터 핸들에 대해 검색할 구성 데이터 값이 더 이상 없으면 ERROR_NO_MORE_ITEMS 반환합니다.
설명
참고
이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 반환되는 빈도는 애플리케이션을 작성할 때 예측하기 어려운 네트워크 상태, 인쇄 서버 구성 및 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.
EnumPrinterData 는 SetPrinterData 함수에 의해 설정된 프린터 구성 데이터를 검색합니다. 프린터의 구성 데이터는 명명된 값과 형식화된 값 집합으로 구성됩니다. EnumPrinterData 함수는 이러한 값 중 하나와 해당 이름 및 형식 코드를 호출할 때마다 가져옵니다. EnumPrinterData 함수를 연속해서 여러 번 호출하여 프린터의 모든 구성 데이터 값을 가져옵니다.
프린터 구성 데이터는 레지스트리에 저장됩니다. 프린터 구성 데이터를 열거하는 동안 해당 데이터를 변경할 수 있는 레지스트리 함수를 호출하지 않아야 합니다.
운영 체제에서 적절한 버퍼 크기를 제공하려면 먼저 매개 변수 섹션의 앞부분에서 설명한 대로 cbValueName 및 cbData 매개 변수를 모두 0으로 설정하여 EnumPrinterData를 호출합니다. 이 호출에서는 dwIndex 값이 중요하지 않습니다. 함수가 반환되면 *pcbValueName 및 *pcbData 에는 프린터의 모든 구성 데이터 값 이름 및 값을 열거할 수 있을 만큼 큰 버퍼 크기가 포함됩니다. 다음 호출에서 값 이름 및 데이터 버퍼를 할당하고, cbValueName 및 cbData 를 할당된 버퍼의 크기(바이트)로 설정하고 , dwIndex 를 0으로 설정합니다. 그런 다음, 함수가 ERROR_NO_MORE_ITEMS 반환될 때까지 EnumPrinterData 함수를 계속 호출하여 dwIndex 를 매번 하나씩 증분합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|
DLL |
|
유니코드 및 ANSI 이름 |
EnumPrinterDataW (유니코드) 및 EnumPrinterDataA (ANSI) |