GenerateCopyFilePaths-Funktion (winsplp.h)

Die GenerateCopyFilePaths-Funktion einer Point- und Print-DLL wird verwendet, um die Quell- und Zielpfade zu ändern, die von Druckspoolern verwendet werden, wenn sie mit der Druckwarteschlange verknüpfte Dateien auf einen Druckclient kopieren.

Syntax

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

Parameter

[in] pszPrinterName

Vom Aufrufer bereitgestellter Zeiger auf eine Zeichenfolge, die den Namen der Druckwarteschlange darstellt.

[in] pszDirectory

Vom Aufrufer bereitgestellter Zeiger auf eine Zeichenfolge, die den für den Verzeichniseintrag des Servers in der Registrierung angegebenen Wert darstellt. Weitere Informationen finden Sie unter Unterstützen von Punkt und Druck während der Druckerinstallation.

[in] pSplClientInfo

Vom Aufrufer bereitgestellter Zeiger auf eine SPLCLIENT_INFO_1-Struktur .

[in] dwLevel

Vom Aufrufer bereitgestellter Wert, der die Ebenennummer der Struktur angibt, auf die pSplClientInfo verweist. Muss 1 sein.

[in, out] pszSourceDir

Empfängt für die Eingabe einen vom Aufrufer bereitgestellten Zeiger auf eine Zeichenfolge, die den vollständigen Serververzeichnispfad (einschließlich Des Servernamens) darstellt, aus dem Dateien kopiert werden sollen.

Für die Ausgabe kann die Funktion diese Zeichenfolge ändern.

[in, out] pcchSourceDirSize

Vom Aufrufer bereitgestellte Adresse, die die Länge des Puffers enthält, auf den pszSourceDir verweist. (Beachten Sie, dass dies die Pufferlänge und nicht die Zeichenfolgenlänge ist.)

[in, out] pszTargetDir

Empfängt für die Eingabe einen vom Aufrufer bereitgestellten Zeiger auf eine Zeichenfolge, die den Clientverzeichnispfad darstellt, in den Dateien kopiert werden sollen. Es gelten die folgenden Regeln:

  • Wenn die Funktion auf dem Server aufgerufen wird, ist dieser Pfad relativ zu PRINT$.
  • Wenn die Funktion auf dem Client aufgerufen wird, enthält die Zeichenfolge einen vollständigen Pfad.
Für die Ausgabe kann die Funktion diese Zeichenfolge ändern.

[in, out] pcchTargetDirSize

Vom Aufrufer bereitgestellte Adresse, die die Länge des Puffers enthält, auf den pszTargetDir verweist. (Beachten Sie, dass dies die Pufferlänge und nicht die Zeichenfolgenlänge ist.)

[in] dwFlags

Vom Aufrufer bereitgestelltes Flag. Dabei kann es sich um eine der folgenden Methoden handeln:

COPYFILE_FLAG_CLIENT_SPOOLER

Gibt an, dass die Funktion vom Spooler des Clients aufgerufen wird.

COPYFILE_FLAG_SERVER_SPOOLER

Gibt an, dass die Funktion vom Spooler des Servers aufgerufen wird.

Rückgabewert

Wenn der Vorgang erfolgreich ist, sollte die Funktion ERROR_SUCCESS zurückgeben. Andernfalls sollte ein in winerror.h definierter Fehlercode zurückgegeben werden.

Hinweise

Alle Point- und Print-DLLs müssen eine GenerateCopyFilePaths-Funktion exportieren, die vom Druckspooler aufgerufen wird. Ihr Zweck besteht darin, einer Point- und Print-DLL das Ändern des Quell- oder Zielverzeichnispfads oder beides zu ermöglichen, bevor der Druckwarteschlange zugeordnete Dateien von einem Server auf einen Client kopiert wird. (Die Dateien werden kopiert, wenn ein Client eine Verbindung mit einem Druckserver herstellt. Eine vollständige Beschreibung der Schritte zum Erstellen einer Point-and-Print-Verbindung finden Sie unter Unterstützen von Point und Print.)

Eine Point- und Print-DLL wird sowohl auf dem Server als auch auf dem Client ausgeführt. Die GenerateCopyFilePaths-Funktion sollte das argument dwFlags überprüfen, um zu bestimmen, wo es ausgeführt wird.

In der Regel wird diese Funktion verwendet, um Kompatibilität zu gewährleisten, wenn verschiedene Versionen des Betriebssystems auf dem Client und Server ausgeführt werden. Wenn die Funktion beispielsweise bei der Ausführung auf dem Server (durch Lesen der SPLCLIENT_INFO_1-Struktur ) feststellt, dass ihr Betriebssystem neuer als das des Clients ist, kann sie die Quell- und Zielpfade so ändern, dass sie mit dem älteren Betriebssystem des Clients kompatibel sind. Wenn die Funktion hingegen feststellt, dass das Betriebssystem des Clients neuer ist als das des Clients, sollte sie wahrscheinlich nichts auf dem Server tun und bei der Ausführung auf dem Client ggf. Änderungen vornehmen.

Argumente für die Parameter pszSourceDir und pszTargetDir verweisen auf Puffer, die Zeichenfolgen enthalten, die die aktuellen Quell- und Zielverzeichnispfade darstellen. Wenn Änderungen an einer dieser Zeichenfolgen erforderlich sind, sollte die Funktion Änderungen an den angegebenen Puffern vornehmen. Auf die maximal zulässige Zeichenfolgenlänge verweisen die Argumente pcchSourceDirSize und pcchTargetDirSize .

Wenn keine Änderungen an den Quell- oder Zielverzeichnissen erforderlich sind, sollte die Funktion einfach ERROR_SUCCESS zurückgeben.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header winsplp.h (winsplp.h einschließen)
Bibliothek Mscms.lib
DLL Mscms.dll

Weitere Informationen

SpoolerCopyFileEvent