GenerateCopyFilePaths 関数 (winsplp.h)
ポイントアンドプリント 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
サーバーの Directory レジストリエントリに指定された値を表す文字列への呼び出し元指定ポインター。 詳細については、「プリンターのインストール時のサポート ポイントと印刷を参照してください。
[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 はすべて、印刷スプーラーによって呼び出される GenerateCopyFilePaths 関数をエクスポートする必要があります。 その目的は、印刷スプーラーがサーバーからクライアントに印刷キューに関連付けられているファイルをコピーする前に、ポイントと印刷 DLL がソースまたはコピー先のディレクトリ パスまたはその両方を変更できるようにすることです。 (ファイルは、クライアントがプリント サーバーに接続するときにコピーされます。ポイントとプリントの接続の作成に関連する手順の詳細については、「サポート ポイントと印刷」を参照してください)。
ポイントおよび印刷 DLL は、サーバーとクライアントの両方で実行されます。 GenerateCopyFilePaths 関数は、dwFlags 引数を調べて、それが実行されている場所を判断する必要があります。
通常、この関数は、異なるバージョンのオペレーティング システムがクライアントとサーバーで実行されている場合に互換性を提供するために使用されます。 たとえば、関数がサーバー上で実行するときに、オペレーティング システムがクライアントよりも新しい (SPLCLIENT_INFO_1 構造を読み取って) 判断した場合、クライアントの古い OS と互換性のあるソースパスと宛先パスを変更できます。 一方、クライアントのオペレーティング システムがクライアントのオペレーティング システムよりも新しいと関数が判断した場合は、サーバーで何も実行せず、必要に応じて、クライアントで実行するときに変更を実行する必要があります。
pszSourceDir および pszTargetDir パラメーターの引数は、現在のソースと宛先のディレクトリ パスを表す文字列を含むバッファーを指します。 これらの文字列のいずれかを変更する必要がある場合、関数は指定されたバッファーで変更を行う必要があります。 許容される最大文字列長は、pcchSourceDirSize および pcchTargetDirSize 引数によって指されます。
ソースディレクトリまたはコピー先ディレクトリを変更する必要がない場合、関数は ERROR_SUCCESSを返すだけです。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | winsplp.h (Winsplp.h を含む) |
ライブラリ | Mscms.lib |
DLL | Mscms.dll |