Partager via


GenerateCopyFilePaths, fonction (winsplp.h)

La fonction GenerateCopyFilePaths d’une DLL de point et d’impression est utilisée pour modifier les chemins d’accès source et de destination utilisés par les spouleurs d’impression lorsqu’ils copient les 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 de répertoire du serveur dans le Registre. Pour plus d’informations, consultez Point de prise en charge et impression pendant les installations d’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 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 d’accès 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 de l’un des éléments suivants :

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 de retour

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

Remarques

Toutes les DLL point et impression doivent exporter une fonction GenerateCopyFilePaths, appelée par le spouleur d’impression. Son objectif est d’autoriser un point et une DLL d’impression à 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 point et impression, consultez Point de prise en charge et impression.)

Une DLL point et d’impression s’exécute sur le serveur et le client. La fonction GenerateCopyFilePaths doit vérifier 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 l’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, il peut modifier les chemins 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, il ne doit probablement rien faire sur le serveur et effectuer des modifications, si nécessaire, lors de l’exécution sur le client.

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

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

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête winsplp.h (include Winsplp.h)
bibliothèque Mscms.lib
DLL Mscms.dll

Voir aussi

SpoolerCopyFileEvent