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