次の方法で共有


GenerateCopyFilePaths 関数 (winsplp.h)

Point and 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 で定義されたエラー コードを返す必要があります。

注釈

すべての ポイント DLL と印刷 DLL は 、印刷スプーラーによって呼び出される GenerateCopyFilePaths 関数をエクスポートする必要があります。 その目的は、印刷スプーラーが印刷キューに関連付けられているファイルをサーバーからクライアントにコピーする前に、ポイントと印刷 DLL がソースまたはコピー先のディレクトリ パス、またはその両方を変更できるようにすることです。 (ファイルは、クライアントがプリント サーバーに接続するときにコピーされます。ポイントと印刷の接続の作成に関連する手順の詳細については、「 ポイントと印刷のサポート」を参照してください)。

Point と Print DLL は、サーバーとクライアントの両方で実行されます。 GenerateCopyFilePaths 関数は、dwFlags 引数をチェックして、それが実行されている場所を決定する必要があります。

通常、この関数は、異なるバージョンのオペレーティング システムがクライアントとサーバーで実行されている場合に互換性を提供するために使用されます。 たとえば、 関数がサーバー上で実行するときに、オペレーティング システムがクライアントよりも新しいと ( SPLCLIENT_INFO_1 構造を読み取って) 判断した場合、クライアントの古い OS と互換性のあるソースパスと宛先パスを変更できます。 一方、クライアントのオペレーティング システムがクライアントのオペレーティング システムよりも新しいと関数が判断した場合は、サーバーで何も行わない必要があり、必要に応じて、クライアントで実行するときに変更を実行する必要があります。

pszSourceDir パラメーターと pszTargetDir パラメーターの引数は、現在のソースと宛先のディレクトリ パスを表す文字列を含むバッファーを指します。 これらの文字列のいずれかに変更が必要な場合、関数は指定されたバッファーで変更を行う必要があります。 許容される文字列の最大長は、 pcchSourceDirSize 引数と pcchTargetDirSize 引数によって指されます。

ソースディレクトリまたはコピー先ディレクトリを変更する必要がない場合、関数は ERROR_SUCCESSを返すだけです。

要件

要件
対象プラットフォーム ユニバーサル
Header winsplp.h (Winsplp.h を含む)
Library Mscms.lib
[DLL] Mscms.dll

こちらもご覧ください

SpoolerCopyFileEvent