다음을 통해 공유


GenerateCopyFilePaths 함수(winsplp.h)

Point 및 Print DLL의 GenerateCopyFilePaths 함수는 인쇄 대기열에 연결된 파일을 인쇄 클라이언트에 복사할 때 인쇄 스풀러에서 사용하는 원본 및 대상 경로를 수정하는 데 사용됩니다.

구문

DWORD GenerateCopyFilePaths(
  [in]      LPCWSTR pszPrinterName,
  [in]      LPCWSTR pszDirectory,
  [in]      LPBYTE  pSplClientInfo,
  [in]      DWORD   dwLevel,
  [in, out] LPWSTR  pszSourceDir,
  [in, out] LPDWORD pcchSourceDirSize,
  [in, out] LPWSTR  pszTargetDir,
  [in, out] LPDWORD pcchTargetDirSize,
  [in]      DWORD   dwFlags
);

매개 변수

[in] pszPrinterName

인쇄 큐의 이름을 나타내는 문자열에 대한 호출자 제공 포인터입니다.

[in] pszDirectory

레지스트리에서 서버의 디렉터리 항목에 제공된 값을 나타내는 문자열에 대한 호출자 제공 포인터입니다. 자세한 내용은 프린터 설치 중 지원 지점 및 인쇄를 참조하세요.

[in] pSplClientInfo

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

[in] dwLevel

pSplClientInfo가 가리키는 구조체의 수준 번호를 나타내는 호출자 제공 값입니다. 1이어야 합니다.

[in, out] pszSourceDir

입력의 경우 는 파일을 복사할 전체 서버 디렉터리 경로(서버 이름 포함)를 나타내는 문자열에 대한 호출자 제공 포인터를 받습니다.

출력의 경우 함수는 이 문자열을 수정할 수 있습니다.

[in, out] pcchSourceDirSize

pszSourceDir에서 가리키는 버퍼의 길이를 포함하는 호출자 제공 주소입니다. (문자열 길이가 아닌 버퍼 길이입니다.)

[in, out] pszTargetDir

입력의 경우 는 파일을 복사할 클라이언트 디렉터리 경로를 나타내는 문자열에 대한 호출자 제공 포인터를 받습니다. 다음 규칙이 적용됩니다.

  • 서버에서 함수가 호출되면 이 경로는 PRINT$를 기준으로 합니다.
  • 클라이언트에서 함수가 호출되면 문자열에 전체 경로가 포함됩니다.
출력의 경우 함수는 이 문자열을 수정할 수 있습니다.

[in, out] pcchTargetDirSize

pszTargetDir이 가리키는 버퍼의 길이를 포함하는 호출자 제공 주소입니다. (문자열 길이가 아닌 버퍼 길이입니다.)

[in] dwFlags

호출자가 제공한 플래그입니다. 다음 중 하나일 수 있습니다.

COPYFILE_FLAG_CLIENT_SPOOLER

클라이언트의 스풀러에서 함수가 호출되고 있음을 나타냅니다.

COPYFILE_FLAG_SERVER_SPOOLER

서버의 스풀러에서 함수를 호출하고 있음을 나타냅니다.

반환 값

작업이 성공하면 함수는 ERROR_SUCCESS 반환해야 합니다. 그렇지 않으면 winerror.h에 정의된 오류 코드를 반환해야 합니다.

설명

모든 Point 및 Print DLL 은 인쇄 스풀러에서 호출하는 GenerateCopyFilePaths 함수를 내보내야 합니다. 그 목적은 인쇄 스풀러가 서버에서 클라이언트로 큐에 연결된 인쇄 파일을 복사하기 전에 Point 및 Print DLL이 원본 또는 대상 디렉터리 경로 또는 둘 다를 수정하도록 허용하는 것입니다. (클라이언트가 인쇄 서버에 연결할 때 파일이 복사됩니다. 점 및 인쇄 연결을 만드는 단계의 전체 설명은 지원 지점 및 인쇄를 참조하세요.)

Point 및 Print DLL은 서버와 클라이언트 모두에서 실행됩니다. GenerateCopyFilePaths 함수는 dwFlags 인수를 검사 실행 위치를 결정해야 합니다.

일반적으로 이 함수는 다른 버전의 운영 체제가 클라이언트와 서버에서 실행되는 경우 호환성을 제공하는 데 사용됩니다. 예를 들어 서버에서 실행할 때 해당 운영 체제가 클라이언트보다 최신이라는 SPLCLIENT_INFO_1 구조를 읽는 경우 클라이언트의 이전 OS와 호환되도록 원본 및 대상 경로를 수정할 수 있습니다. 반면, 함수가 클라이언트의 운영 체제가 클라이언트보다 최신이라고 판단하는 경우 서버에서 아무 작업도 수행하지 않고 필요한 경우 클라이언트에서 실행할 때 수정을 수행해야 합니다.

pszSourceDirpszTargetDir 매개 변수에 대한 인수는 현재 원본 및 대상 디렉터리 경로를 나타내는 문자열이 포함된 버퍼를 가리킵니다. 이러한 문자열 중 하나를 수정해야 하는 경우 함수는 제공된 버퍼에서 수정해야 합니다. 허용되는 최대 문자열 길이는 pcchSourceDirSizepcchTargetDirSize 인수로 가리깁니다.

원본 또는 대상 디렉터리를 수정할 필요가 없는 경우 함수는 ERROR_SUCCESS 반환해야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 winsplp.h(Winsplp.h 포함)
라이브러리 Mscms.lib
DLL Mscms.dll

추가 정보

SpoolerCopyFileEvent