Share via


GenerateCopyFilePaths, fonction (winsplp.h)

La fonction GenerateCopyFilePaths d’une DLL point et print est utilisée pour modifier les chemins d’accès source et de destination utilisés par les spouleurs d’impression lorsqu’ils copient des fichiers associés à la file d’attente d’impression vers un client d’impression.

Syntaxe

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
);

Paramètres

[in] pszPrinterName

Pointeur fourni par l’appelant vers une chaîne représentant le nom de la file d’attente d’impression.

[in] pszDirectory

Pointeur fourni par l’appelant vers une chaîne représentant la valeur fournie pour l’entrée répertoire du serveur dans le Registre. Pour plus d’informations, consultez Prise en charge du point et de l’impression pendant l’installation de l’imprimante.

[in] pSplClientInfo

Pointeur fourni par l’appelant vers une structure SPLCLIENT_INFO_1 .

[in] dwLevel

Valeur fournie par l’appelant indiquant le numéro de niveau de la structure pointée par pSplClientInfo. Doit être égal à 1.

[in, out] pszSourceDir

Pour l’entrée, reçoit un pointeur fourni par l’appelant vers une chaîne représentant le chemin complet du répertoire du serveur (y compris le nom du serveur) à partir duquel les fichiers doivent être copiés.

Pour la sortie, la fonction peut modifier cette chaîne.

[in, out] pcchSourceDirSize

Adresse fournie par l’appelant contenant la longueur de la mémoire tampon pointée par pszSourceDir. (Notez qu’il s’agit de la longueur de la mémoire tampon, et non de la longueur de chaîne.)

[in, out] pszTargetDir

Pour l’entrée, reçoit un pointeur fourni par l’appelant vers une chaîne représentant le chemin du répertoire client vers lequel les fichiers doivent être copiés. Les règles suivantes s’appliquent :

  • Lorsque la fonction est appelée sur le serveur, ce chemin est relatif à PRINT$.
  • Lorsque la fonction est appelée sur le client, la chaîne contient un chemin d’accès complet.
Pour la sortie, la fonction peut modifier cette chaîne.

[in, out] pcchTargetDirSize

Adresse fournie par l’appelant contenant la longueur de la mémoire tampon pointée par pszTargetDir. (Notez qu’il s’agit de la longueur de la mémoire tampon, et non de la longueur de chaîne.)

[in] dwFlags

Indicateur fourni par l’appelant. Il peut s'agir d'une des méthodes suivantes :

COPYFILE_FLAG_CLIENT_SPOOLER

Indique que la fonction est appelée par le spouleur du client.

COPYFILE_FLAG_SERVER_SPOOLER

Indique que la fonction est appelée par le spouleur du serveur.

Valeur retournée

Si l’opération réussit, la fonction doit retourner ERROR_SUCCESS. Sinon, elle doit retourner un code d’erreur défini dans winerror.h.

Remarques

Toutes les DLL Point et Print doivent exporter une fonction GenerateCopyFilePaths appelée par le spouleur d’impression. Son objectif est de permettre à une DLL Point et Print de modifier le chemin du répertoire source ou de destination, ou les deux, avant que le spouleur d’impression copie les fichiers associés à la file d’attente d’impression d’un serveur vers un client. (Les fichiers sont copiés lorsqu’un client se connecte à un serveur d’impression. Pour obtenir une description complète des étapes impliquées dans la création d’une connexion pointer et imprimer, consultez Prise en charge du point et de l’impression.)

Une DLL Point et Print s’exécute sur le serveur et le client. La fonction GenerateCopyFilePaths doit case activée l’argument dwFlags pour déterminer où il s’exécute.

En règle générale, cette fonction est utilisée pour assurer la compatibilité lorsque différentes versions du système d’exploitation s’exécutent sur le client et le serveur. Par exemple, si la fonction, lors de son exécution sur le serveur, détermine (en lisant la structure SPLCLIENT_INFO_1 ) que son système d’exploitation est plus récent que celui du client, elle peut modifier les chemins d’accès source et de destination pour qu’ils soient compatibles avec l’ancien système d’exploitation du client. En revanche, si la fonction détermine que le système d’exploitation du client est plus récent que celui du client, elle ne doit probablement rien faire sur le serveur et effectuer des modifications, si nécessaire, lors de l’exécution sur le client.

Les arguments des paramètres pszSourceDir et pszTargetDir pointent vers des mémoires tampons contenant des chaînes qui représentent les chemins actuels du répertoire source et de destination. Si des modifications sont nécessaires à l’une de ces chaînes, la fonction doit apporter des modifications dans les mémoires tampons fournies. Les longueurs de chaîne maximales autorisées sont pointées par les arguments pcchSourceDirSize et pcchTargetDirSize .

Si aucune modification n’est nécessaire aux répertoires source ou de destination, la fonction doit simplement retourner ERROR_SUCCESS.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête winsplp.h (inclure Winsplp.h)
Bibliothèque Mscms.lib
DLL Mscms.dll

Voir aussi

SpoolerCopyFileEvent