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.
[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 |