Funzione GenerateCopyFilePaths (winsplp.h)

La funzione GenerateCopyFilePaths di una DLL point e print viene usata per modificare i percorsi di origine e di destinazione usati dagli spooler di stampa quando copiano i file associati alla coda di stampa in un client di stampa.

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 della stampante.

[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. Sono applicabili 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 valori 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.

Commenti

Tutte le DLL Point e Print devono esportare una funzione GenerateCopyFilePaths , chiamata dallo spooler di stampa. Lo scopo è consentire a una DLL point e print 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 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 and Print viene eseguita sia nel server che nel 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 vengono eseguite versioni diverse del sistema operativo nel client e nel server. Ad esempio, se la funzione, durante l'esecuzione 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 nel server ed eseguire modifiche, se necessario, durante l'esecuzione nel 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 indicate dagli argomenti pcchSourceDirSize e pcchTargetDirSize .

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione winsplp.h (include Winsplp.h)
Libreria Mscms.lib
DLL Mscms.dll

Vedi anche

SpoolerCopyFileEvent