Condividi tramite


Funzione GenerateCopyFilePaths (winsplp.h)

Per modificare i percorsi di origine e di destinazione utilizzati dagli spooler di stampa quando copiano i file associati alla coda di stampa in un client di stampa, viene usata una DLL point e print DLL GenerateCopyFilePaths.

Sintassi

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

Parametri

[in] pszPrinterName

Puntatore fornito dal chiamante a una stringa che rappresenta il nome della coda di stampa.

[in] pszDirectory

Puntatore fornito dal chiamante a una stringa che rappresenta il valore fornito per la voce Directory del server nel Registro di sistema. Per altre informazioni, vedere punto di supporto e stampa durante le installazioni di stampanti.

[in] pSplClientInfo

Puntatore fornito dal chiamante a una struttura SPLCLIENT_INFO_1.

[in] dwLevel

Valore fornito dal chiamante che indica il numero di livello della struttura a cui punta pSplClientInfo. Deve essere 1.

[in, out] pszSourceDir

Per l'input, riceve un puntatore fornito dal chiamante a una stringa che rappresenta il percorso completo della directory del server (incluso il nome del server) da cui copiare i file.

Per l'output, la funzione può modificare questa stringa.

[in, out] pcchSourceDirSize

Indirizzo fornito dal chiamante contenente la lunghezza del buffer a cui punta pszSourceDir. Si noti che si tratta della lunghezza del buffer, non della lunghezza della stringa.

[in, out] pszTargetDir

Per l'input, riceve un puntatore fornito dal chiamante a una stringa che rappresenta il percorso della directory client in cui copiare i file. Si applicano le regole seguenti:

  • Quando la funzione viene chiamata nel server, questo percorso è relativo a PRINT$.
  • Quando la funzione viene chiamata sul client, la stringa contiene un percorso completo.
Per l'output, la funzione può modificare questa stringa.

[in, out] pcchTargetDirSize

Indirizzo fornito dal chiamante contenente la lunghezza del buffer a cui punta pszTargetDir. Si noti che si tratta della lunghezza del buffer, non della lunghezza della stringa.

[in] dwFlags

Flag fornito dal chiamante. Può essere uno dei seguenti:

COPYFILE_FLAG_CLIENT_SPOOLER

Indica che la funzione viene chiamata dallo spooler del client.

COPYFILE_FLAG_SERVER_SPOOLER

Indica che la funzione viene chiamata dallo spooler del server.

Valore restituito

Se l'operazione ha esito positivo, la funzione deve restituire ERROR_SUCCESS. In caso contrario, deve restituire un codice di errore definito in winerror.h.

Osservazioni

Tutte le DLL point e print devono esportare una funzione GenerateCopyFilePaths, chiamata dallo spooler di stampa. Il suo scopo è consentire a una DLL punto e stampa di modificare il percorso della directory di origine o di destinazione oppure entrambi, prima che lo spooler di stampa copia i file associati alla coda di stampa da un server a un client. I file vengono copiati quando un client si connette a un server di stampa. Per una descrizione completa dei passaggi necessari per la creazione di una connessione punto e stampa, vedere punto di supporto e stampa.

Una DLL point e print viene eseguita sia sul server che sul client. La funzione GenerateCopyFilePaths deve controllare l'argomento dwFlags per determinare dove è in esecuzione.

In genere, questa funzione viene usata per garantire la compatibilità quando nel client e nel server vengono eseguite versioni diverse del sistema operativo. Ad esempio, se la funzione, quando viene eseguita nel server, determina (leggendo la struttura SPLCLIENT_INFO_1) che il sistema operativo è più recente del client, può modificare i percorsi di origine e di destinazione in modo che siano compatibili con il sistema operativo precedente del client. D'altra parte, se la funzione determina che il sistema operativo del client è più recente del client, probabilmente non deve eseguire alcuna operazione sul server ed eseguire modifiche, se necessario, durante l'esecuzione sul client.

Gli argomenti per i parametri pszSourceDir e pszTargetDir puntano ai buffer contenenti stringhe che rappresentano i percorsi di directory di origine e di destinazione correnti. Se è necessario apportare modifiche a una di queste stringhe, la funzione deve apportare modifiche nei buffer forniti. Le lunghezze massime consentite della stringa sono puntate dagli argomenti pcchSourceDirSize e pcchTargetDirSize.

Se non sono necessarie modifiche alle directory di origine o di destinazione, la funzione deve restituire solo ERROR_SUCCESS.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione winsplp.h (includere Winsplp.h)
libreria Mscms.lib
dll Mscms.dll

Vedere anche

SpoolerCopyFileEvent