EnumPrinters 함수

Enumprinters 함수는 사용 가능한 프린터, 인쇄 서버, 도메인 또는 인쇄 공급자를 열거 합니다.

구문

BOOL EnumPrinters(
  _In_  DWORD   Flags,
  _In_  LPTSTR  Name,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pPrinterEnum,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

매개 변수

Flags [in]

함수가 열거 해야 하는 인쇄 개체의 형식입니다. 이 값은 다음 값 중 하나 이상이 될 수 있습니다.

의미
프린터 _ 열거 _ 로컬
_또한 프린터 열거 _ 이름 플래그가 전달 되지 않은 경우이 함수는 name 매개 변수를 무시 하 고 로컬로 설치 된 프린터를 열거 합니다. 프린터 _ 열거 _ 이름도 전달 되는 경우 함수는 이름 에 로컬 프린터를 열거 합니다.
프린터 _ 열거 _ 이름
함수는 이름 으로 식별 되는 프린터를 열거 합니다. 서버, 도메인 또는 인쇄 공급자 일 수 있습니다. NameNULL 인 경우 함수는 사용 가능한 인쇄 공급자를 열거 합니다.
공유 되는 프린터 _ 열거 _
함수는 공유 특성이 있는 프린터를 열거 합니다. 는 격리에 사용할 수 없습니다. 또는 작업을 사용 하 여 다른 프린터 _ 열거 형식과 결합 합니다.
프린터 _ 열거 _ 연결
함수는 사용자가 이전에 연결한 프린터 목록을 열거 합니다.
프린터 _ 열거 _ 네트워크
함수는 컴퓨터의 도메인에 있는 네트워크 프린터를 열거 합니다. 이 값은 Level 이 1 인 경우에만 유효 합니다.
_원격 프린터 열거 _
함수는 컴퓨터의 도메인에서 네트워크 프린터 및 인쇄 서버를 열거 합니다. 이 값은 Level 이 1 인 경우에만 유효 합니다.
프린터 _ 열거형 _ 범주 _ 3d
함수는 3D 프린터만 열거 합니다.
프린터 _ 열거 _ 범주 _ 모두
함수는 3D 프린터를 포함 하 여 모든 인쇄 장치를 열거 합니다.

Level 이 4 인 경우 프린터 _ 열거 _ 연결 및 프린터 _ 열거형 _ 로컬 상수만 사용할 수 있습니다.

참고

3D 인쇄 장치는 기본적으로 열거 되지 않습니다. 3D 프린터만 열거 하려면 프린터 _ 열거 _ 범주 _ 3d프린터 _ 열거 _ 로컬 을 모두 포함 해야 합니다. 다른 모든 로컬 프린터와 함께 3D 프린터를 포함 하려면 프린터 _ 열거 _ 범주 _ 모두프린터 _ 열거 _ 로컬 을 사용 합니다.

이름 [ 진행]

Level 이 1 이면 플래그 에 프린터 _ 열거 이름이 포함 _ 되 고 이름이 null 이 아닌 경우 name 은 열거할 개체의 이름을 지정 하는 null로 끝나는 문자열에 대 한 포인터입니다. 이 문자열은 서버, 도메인 또는 인쇄 공급자의 이름일 수 있습니다.

Level 이 1 이면 플래그 에 프린터 열거 이름이 포함 되 _ _ 고 이름이 NULL 인 경우 함수는 사용 가능한 인쇄 공급자를 열거 합니다.

Level 이 1 이면 플래그 에는 프린터 열거 원격이 포함 되 _ _ 고 이름이 NULL 이면 함수는 사용자의 도메인에 있는 프린터를 열거 합니다.

Level 이 2 또는 5 인 경우,name 은 프린터를 열거할 서버의 이름을 지정 하는 null로 끝나는 문자열에 대 한 포인터입니다. 이 문자열이 NULL 이면 함수는 로컬 컴퓨터에 설치 된 프린터를 열거 합니다.

Level 이 4 인 경우 이름은 NULL 이어야 합니다. 함수는 항상 로컬 컴퓨터에서 쿼리 합니다.

NameNULL 인 경우 플래그 를 프린터 _ 열거 _ 로컬 프린터 열거 연결로 설정 하면 | _ _ 로컬 컴퓨터에 설치 된 프린터가 열거 됩니다. 이러한 프린터에는 로컬 컴퓨터에 물리적으로 연결 된 프린터 및 네트워크에 연결 된 원격 프린터 등이 포함 됩니다.

NameNULL 이 아닌 경우 플래그 를 프린터 _ 열거 _ 로컬 프린터 열거 이름으로 설정 하면 | _ _ 서버 이름 에 설치 된 로컬 프린터를 열거 합니다.

수준 [ 진행]

P프린터 열거형 에서 가리키는 데이터 구조의 형식입니다. 유효한 값은 프린터 _ 정보 _ 1, 프린터 _ 정보 _ 2 , 프린터 _ 정보 _ 4프린터 _ 정보 _ 5 데이터 구조에 해당 하는 1, 2, 4, 5입니다.

이 값은 1, 2, 4 또는 5 일 수 있습니다.

P프린터 열거형 [ 제한이]

프린터 _ 정보 _ 1, 프린터 _ 정보 _ 2, 프린터 _ 정보 _ 4또는 프린터 _ 정보 _ 5 구조의 배열을 수신 하는 버퍼에 대 한 포인터입니다. 각 구조에는 사용 가능한 인쇄 개체를 설명 하는 데이터가 포함 됩니다.

Level 이 1 이면 배열에 프린터 _ 정보 _ 1 구조가 포함 됩니다. Level 이 2 이면 배열에 프린터 _ 정보 _ 2 구조가 포함 됩니다. Level 이 4 인 경우 배열에는 프린터 _ 정보 _ 4 구조가 포함 됩니다. Level 이 5 인 경우 배열에는 프린터 _ 정보 _ 5 구조가 포함 됩니다.

버퍼는 데이터 구조의 배열과 구조 멤버가 가리키는 모든 문자열 또는 기타 데이터를 받을 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 Pcbneeded 매개 변수는 필요한 버퍼 크기를 반환 합니다.

Cbbuf [ 진행]

P프린터 열거 에서 가리키는 버퍼의 크기 (바이트)입니다.

Pcbneeded [ 제한이]

함수가 성공 하는 경우 복사한 바이트 수를 받는 값에 대 한 포인터 이거나, Cbbuf 가 너무 작은 경우 필요한 바이트 수입니다.

Pcreturned [ 제한이]

Pprinter enum 이 가리키는 배열에서 함수가 반환 하 는 프린터 정보 _ _ 1, 프린터 _ 정보 _ 2 , 프린터 정보 _ _ 4또는 프린터 _ 정보 _ 5 구조 수를 받는 값에 대 한 포인터입니다.

반환 값

함수가 성공 하면 0이 아닌 값이 반환 됩니다.

함수가 실패하면 반환 값은 0입니다.

설명

DllMain에서이 메서드를 호출 하지 마십시오.

참고

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

Enumprinters 프린터 열거 컨테이너가 지정 된 프린터 _ 정보 _ 1 구조를 반환 하는 경우이는 프린터 _ _ 개체의 계층이 있음을 나타냅니다. 응용 프로그램은 Enumprinters 를 다시 호출 하 여 계층을 열거할 수 있습니다. 여기서 Name프린터 _ 정보 _ 1 구조의 pName 멤버 값으로 설정 합니다.

Enumprinters 함수는 보안 정보를 검색 하지 않습니다. Pprinterenum 이 가리키는 배열에 프린터 _ 정보 _ 2 구조가 반환 되 면 해당 pSecurityDescriptor 멤버는 NULL 로 설정 됩니다.

기본 프린터에 대 한 정보를 가져오려면 GetDefaultPrinter를 호출 합니다.

프린터 _ 정보 _ 4 구조를 사용 하면 로컬 컴퓨터에 설치 된 프린터의 이름과 사용자가 설정한 원격 연결을 쉽고 빠르게 검색할 수 있습니다. Enumprinters프린터 _ 정보 _ 4 데이터 구조를 사용 하 여 호출 되는 경우 해당 함수는 레지스트리에 지정 된 정보를 쿼리 한 다음 즉시 반환 합니다. 다른 수준의 프린터 _ 정보 _ * _ 데이터 구조를 사용 하 여 호출 하는 경우에는 enumprinters의 동작과 다릅니다. 특히 _ enumprinters 가 수준 2 (프린터 _ 정보 _ 2) 데이터 구조를 사용 하 여 호출 되는 경우 각 원격 연결에서 openprinter 호출을 수행 합니다. 원격 연결이 종료 되거나 원격 서버가 더 이상 존재 하지 않거나 원격 프린터가 더 이상 존재 하지 않는 경우이 함수는 RPC가 시간 초과 될 때까지 기다려야 하므로 Openprinter 호출이 실패 합니다. 이 작업은 다소 시간이 걸릴 수 있습니다. 프린터 _ 정보 _ 4 구조를 전달 하면 응용 프로그램에서 최소한의 필수 정보를 검색할 수 있습니다. 자세한 정보를 원하는 경우 후속 enumprinters 수준 2 호출을 수행할 수 있습니다.

Windows Vista: Enumprinters 에서 반환 된 프린터 데이터는 수준 값이 4 인 경우 로컬 캐시에서 검색 됩니다.

다음 표에서는 수준 매개 변수가 1로 설정 된 경우 다양 한 플래그 값에 대 한 enumprinters 출력을 보여 줍니다.

테이블의 name 매개 변수 열에서 인쇄 공급자, 도메인 및 컴퓨터에 대 한 적절 한 이름을 대체 해야 합니다. 예를 들어 "인쇄 공급자"의 경우 네트워크 인쇄 공급자의 이름 또는 로컬 인쇄 공급자의 이름을 사용할 수 있습니다. 인쇄 공급자 이름을 검색 하려면 이름이 NULL 로 설정 된 enumprinters 를 호출 합니다.

Flags 매개 변수 Name 매개 변수 결과
프린터 _ 열거 _ 로컬 (프린터 _ 열거 이름 아님 _ ) Name 매개 변수는 무시 됩니다.
모든 로컬 프린터.
프린터 _ 열거 _ 이름 "인쇄 공급자"
모든 도메인 이름
프린터 _ 열거 _ 이름 "인쇄 공급자! 도메인
컴퓨터 도메인의 모든 프린터 및 인쇄 서버
프린터 _ 열거 _ 이름 "인쇄 공급자 \ \ 컴퓨터
컴퓨터에서 공유 되는 모든 프린터 \ \
프린터 _ 열거 _ 이름 빈 문자열 ""입니다.
모든 로컬 프린터.
프린터 _ 열거 _ 이름 NULL
컴퓨터 도메인의 모든 인쇄 공급자
프린터 _ 열거 _ 연결 Name 매개 변수는 무시 됩니다.
연결 된 모든 원격 프린터
프린터 _ 열거 _ 네트워크 Name 매개 변수는 무시 됩니다.
컴퓨터 도메인의 모든 프린터
_원격 프린터 열거 _ 빈 문자열 ""입니다.
컴퓨터 도메인의 모든 프린터 및 인쇄 서버
_원격 프린터 열거 _ "인쇄 공급자"
프린터 _ 열거 이름과 동일 _
_원격 프린터 열거 _ "인쇄 공급자! 도메인
지정 된 도메인 에 관계 없이 컴퓨터 도메인의 모든 프린터 및 인쇄 서버
프린터 _ 열거형 _ 범주 _ 3d Name 매개 변수는 무시 됩니다.
3D 프린터만 열거 됩니다.
프린터 _ 열거 _ 범주 _ 모두 Name 매개 변수는 무시 됩니다.
3D 프린터는 기타 모든 프린터와 함께 열거 됩니다.

요구 사항

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

참고 항목

인쇄

인쇄 스풀러 API 함수

Interactivesession.addprinter

DeletePrinter

GetPrinter

프린터 _ 정보 _ 1

프린터 _ 정보 _ 2

프린터 _ 정보 _ 4

프린터 _ 정보 _ 5

SetPrinter