인쇄 데이터 필터 DLL의 경로를 구성합니다. 이 DLL은 호스트 인쇄 서비스를 사용하여 모든 세션에서 적극적으로 사용됩니다. 그러나 인쇄 데이터 필터 DLL은 지정된 세션의 인쇄 데이터를 전달할지 여부를 지정할 수 있습니다.
이 DLL의 진입점은 다음과 같이 나열됩니다.
PrtFilterAlloc
인쇄 데이터를 전달할 데이터 버퍼를 가져옵니다.
PrtFilterFree
이전에 DLL에서 가져온 데이터 버퍼가 더 이상 필요하지 않으며 DLL이 이 리소스에 할당된 메모리를 해제할 수 있음을 나타냅니다.
PrtFilterJobData
DLL에서 인쇄 데이터를 조작할 수 있습니다.
PrtFilterJobEnd
인쇄 작업이 종료되었음을 DLL에 알릴 수 있습니다.
PrtFilterJobStart
새 인쇄 작업이 시작되었음을 DLL에 알리고 DLL이 작업 시작 시 인쇄 서버에 특수 데이터를 보낼 수 있도록 합니다.
이러한 함수가 일반적으로 사용되는 방법을 설명하기 위해 일반 인쇄 작업 중 호출의 예제 시퀀스에 대한 설명이 아래에 나열되어 있습니다.
PrtFilterStartJob 은 새 인쇄 작업이 시작될 때 호출됩니다. DLL은 데이터를 인쇄하기 전에 프린터로 전송되는 특수 데이터(예: 특수 배너 페이지 또는 특수 프린터 초기화 문자열)가 포함된 데이터 버퍼를 반환할 수 있습니다.
PrtFilterStartJob 함수에서 특수 데이터를 보낸 경우 PrtFilterFree 가 호출되고 특수 데이터를 전달하는 데 사용되는 데이터 버퍼가 해제될 수 있음을 나타냅니다.
모든 인쇄 데이터가 전송될 때까지 함수 호출의 다음 시퀀스가 반복됩니다.
PrtFilterAlloc 은 PrtFilterJobData에 대한 후속 호출에서 인쇄 데이터를 전달하는 데 사용되는 데이터 버퍼를 할당하기 위해 호출됩니다.
PrtFilterJobData 는 가능한 수정을 위해 인쇄 데이터를 DLL에 전달하기 위해 호출됩니다. 이렇게 하면 사용자 DLL이 프린터로 전송되기 전에 프린터 데이터를 조작할 수 있습니다. 반환할 수정된 인쇄 데이터에 더 큰 데이터 버퍼가 필요하거나 DLL이 데이터를 반환하는 데 다른 데이터 버퍼를 사용해야 하는 경우 DLL은 이 데이터를 반환하기 위해 새 데이터 버퍼를 할당해야 할 수 있습니다. DLL은 수정된 인쇄 데이터를 반환하는 데 다른 데이터 버퍼를 사용하는 경우 들어오는 인쇄 데이터를 전달하는 데 사용되는 데이터 버퍼를 해제하도록 선택할 수도 있습니다. PrtFilterJobData에서 다른 데이터 버퍼를 반환하는 경우 PrtFilterFree 함수는 원래 데이터 버퍼에 대한 포인터로 호출되지 않습니다.
PrtFilterFree는 PrtFilterJobData 함수에 들어오는 데이터를 전달하기 위해 PrtFilterAlloc에 의해 할당된 데이터 버퍼를 해제할 수 있음을 나타내기 위해 호출됩니다. PrtFilterJobData에서 다른 데이터 버퍼를 반환한 경우 PrtFilterJobData 함수에서 수정된 인쇄 데이터를 반환하는 데 사용되는 DLL에 의해 할당된 데이터 버퍼를 해제할 수 있음을 나타내기 위해 PrtFilterFree가 호출됩니다.
최종 시퀀스는 모든 인쇄 데이터가 처리될 때 발생합니다.
인쇄 작업의 끝을 나타내기 위해 PrtFilterEndJob이 호출되고 DLL에서 프린터로 보내야 하는 특수 데이터(예: 트레일러 페이지)를 반환할 수 있습니다.
PrtFilterFree 는 PrtFilterEndJob 함수에서 특수 데이터를 보낸 경우 호출되며 특수 데이터를 전달하는 데 사용되는 데이터 버퍼를 해제할 수 있음을 나타냅니다.