IPrintOemPS::Command 메서드(prcomoem.h)

IPrintOemPS::Command 메서드는 인쇄 작업의 데이터 스트림에 PostScript 명령을 삽입하기 위해 Microsoft PostScript 프린터 드라이버에 대한 플러그 인을 렌더링하는 데 사용됩니다.

구문

HRESULT Command(
        PDEVOBJ   pdevobj,
        DWORD     dwIndex,
        PVOID     pData,
        DWORD     cbSize,
  [out] OUT DWORD *pdwResult
);

매개 변수

pdevobj

DEVOBJ 구조체에 대한 호출자 제공 포인터입니다.

dwIndex

인쇄 작업의 데이터 스트림 내에서 현재 삽입 지점을 나타내는 호출자 제공 값입니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

pData

사용되지 않습니다.

cbSize

사용되지 않습니다.

[out] pdwResult

삽입 작업의 결과를 나타내는 메서드 제공 값을 받습니다. 삽입에 성공하면 이 값은 ERROR_SUCCESS 합니다. 삽입에 실패하면 값은 winerror.h에 정의된 오류 코드 중 하나여야 합니다. 메서드가 지정된 dwIndex 값에 대한 데이터를 삽입하려고 시도하지 않으면 값을 ERROR_NOT_SUPPORTED 합니다.

반환 값

메서드는 다음 값 중 하나를 반환해야 합니다.

반환 코드 Description
S_OK
작업에 성공했습니다.
E_FAIL
작업이 실패했습니다.
E_NOTIMPL
메서드가 구현되지 않았습니다.

설명

IPrintOemPS::Command 메서드는 Microsoft PostScript 프린터 드라이버에서 생성된 데이터 스트림에 PostScript 명령을 삽입하는 데 사용됩니다. 이 메서드를 제공하려면 렌더링 플러그 인에서 정의해야 합니다.

IPrintOemPS::Command 메서드가 호출되면 해당 dwIndex 매개 변수는 인쇄 작업의 데이터 스트림 내에서 현재 삽입 지점을 지정합니다. 메서드는 이 값을 사용하여 수행할 작업(있는 경우)을 결정해야 합니다. wingdi.h에 정의된 인덱스 값은 다음 표에 나와 있습니다.

인덱스 값 수신 시
PSINJECT_BEGINDEFAULTS 프린터 드라이버가 %%BeginDefaults를 데이터 스트림으로 보낸 후
PSINJECT_BEGINPAGESETUP 프린터 드라이버가 %%BeginPageSetup 을 데이터 스트림으로 보낸 후
PSINJECT_BEGINPROLOG 프린터 드라이버가 %%BeginProlog 를 데이터 스트림으로 보낸 후
PSINJECT_BEGINSETUP 프린터 드라이버가 %%BeginSetup 을 데이터 스트림으로 보낸 후
PSINJECT_BEGINSTREAM 프린터 드라이버가 데이터 스트림의 첫 번째 바이트를 보내기 전에
PSINJECT_BOUNDINGBOX 프린터 드라이버가 %%BoundingBox: 를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%BoundingBox: 주석을 대체합니다.
PSINJECT_COMMENTS 프린터 드라이버가 %%EndComments를 데이터 스트림으로 보내기 전에
PSINJECT_DLFONT 인쇄 드라이버가 소프트 글꼴을 다운로드하기 전에
PSINJECT_DOCNEEDEDRES 프린터 드라이버가 %%DocumentNeededResources: 를 리소스 정보와 함께 데이터 스트림으로 보냅니다. IPrintOemPS::Command 메서드가 리소스 정보를 보내면 드라이버의 리소스 정보 다음에 스트림에 추가됩니다. 항목 형식은 다음과 같습니다.

%%+ResourceTypeResourceNames

프린터 드라이버는 %%Trailer 섹션을 보낸 후 %%DocumentNeededResources 보냅니다.

PSINJECT_DOCSUPPLIEDRES 프린터 드라이버가 %%DocumentSuppliedResources: 를 리소스 정보와 함께 데이터 스트림으로 보냅니다. IPrintOemPS::Command 메서드가 리소스 정보를 보내면 드라이버의 리소스 정보 다음에 스트림에 추가됩니다. 항목 형식은 다음과 같습니다.

%%+ResourceTypeResourceNames

프린터 드라이버는 %%Trailer 섹션을 보낸 후 %%DocumentSuppliedResources 보냅니다.

PSINJECT_DOCUMENTPROCESSCOLORS
프린터 드라이버가 %%DocumentProcessColors:color 를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%DocumentProcessColors:color 주석을 대체합니다.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
프린터 드라이버가 %%DocumentProcessColors:(atend)를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%DocumentProcessColors:(atend) 주석을 대체합니다.
PSINJECT_ENDDEFAULTS 프린터 드라이버가 %%EndDefaults를 데이터 스트림으로 보내기 전에
PSINJECT_ENDPAGECOMMENTS 프린터 드라이버가 %%EndPageComments를 데이터 스트림으로 보내기 전에
PSINJECT_ENDPAGESETUP 프린터 드라이버가 %%EndPageSetup 을 데이터 스트림으로 보내기 전에
PSINJECT_ENDPROLOG 프린터 드라이버가 %%EndProlog 를 데이터 스트림으로 보내기 전에
PSINJECT_ENDSETUP 프린터 드라이버가 %%EndSetup 을 데이터 스트림으로 보내기 전에
PSINJECT_ENDSTREAM 프린터 드라이버가 데이터 스트림의 마지막 바이트를 보낸 후
PSINJECT_EOF 프린터 드라이버가 %%EOF 를 데이터 스트림으로 보낸 후
PSINJECT_ORIENTATION 프린터 드라이버가 %%Orientation:을(를) 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%Orientation: 주석을 대체합니다.
PSINJECT_PAGEBBOX 프린터 드라이버가 %%PageBoundingBox:를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%PageBoundingBox: 주석을 대체합니다.
PSINJECT_PAGENUMBER 프린터 드라이버가 %%Page: 를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%Page: 주석을 대체합니다.
PSINJECT_PAGEORDER 프린터 드라이버가 %%PageOrder:를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%PageOrder: 주석을 대체합니다.
PSINJECT_PAGES 프린터 드라이버가 %%Pages:nnn 을 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%Pages:nnn 주석을 대체합니다.
PSINJECT_PAGESATEND 프린터 드라이버가 %%Pages:(atend)를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%Pages:(atend) 주석을 대체합니다.
PSINJECT_PAGETRAILER 프린터 드라이버가 %%PageTrailer 를 데이터 스트림으로 보낸 후
PSINJECT_PLATECOLOR 프린터 드라이버가 %%PlateColor:color 를 데이터 스트림에 삽입할 준비가 되면 IPrintOemPS::Command에서 제공하는 데이터는 드라이버의 %%PlateColor:color 주석을 대체합니다.
PSINJECT_PSADOBE 프린터 드라이버가 %!을(를) 보내기 전에 ! 데이터 스트림에 대한 PS-Adobe 입니다.
PSINJECT_SHOWPAGE 프린터 드라이버가 showpage 명령을 보내기 전에
PSINJECT_TRAILER 프린터 드라이버가 %%Trailer 을 데이터 스트림으로 보낸 후
PSINJECT_VMRESTORE 프린터 드라이버가 복원 명령을 보낸 후 (리소스를 다시 사용할 경우 IPrintOemPS::Command 메서드는 마지막 PSINJECT_VMSAVE 이후에 보낸 모든 리소스를 다시 보내야 합니다.)
PSINJECT_VMSAVE 프린터 드라이버가 저장 명령을 보내기 전에 (PSINJECT_VMRESTORE 참조하세요.)

IPrintOemPS::Command 메서드는 PostScript 명령을 삽입하려면 IPrintOemDriverPS::D rvWriteSpoolBuf를 호출해야 합니다.

여러 렌더링 플러그 인 에서 IPrintOemPS::Command 메서드를 내보낸 경우 프린터 드라이버가 삽입 지점에 도달할 때마다 플러그 인이 설치되도록 지정되는 순서대로 메서드가 호출됩니다. 다음 규칙이 적용됩니다.

  • 프린터 드라이버에서 제공하는 데이터에 제공된 데이터가 추가되는 삽입 지점인 경우 각 플러그 인이 호출되고 각 플러그 인에서 PostScript 명령을 추가할 수 있습니다.

  • 삽입 지점이 제공된 데이터가 프린터 드라이버에서 제공하는 데이터를 대체하는 경우 하나의 IPrintOemPS::Command 메서드가 dwResult에 대한 ERROR_SUCCESS 제공할 때까지 플러그 인이 호출됩니다. 다른 플러그 인은 호출되지 않습니다. 모든 플러그 인이 ERROR_NOT_SUPPORTED 제공하면 드라이버 제공 데이터가 대체되지 않습니다.

  • 삽입 지점이 제공된 데이터가 프린터 드라이버에서 제공하는 데이터를 대체하고 애플리케이션이 이미 POSTSCRIPT_INJECTION 프린터 이스케이프 함수를 사용하여 드라이버 제공 데이터를 대체한 경우 플러그 인이 호출되지 않습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 prcomoem.h(Prcomoem.h 포함)