Función GenerateCopyFilePaths (winsplp.h)
La función GenerateCopyFilePaths de un archivo DLL de punto e impresión se usa para modificar las rutas de acceso de origen y destino usadas por los colas de impresión cuando copian los archivos asociados a la cola de impresión en un cliente de impresión.
Sintaxis
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
);
Parámetros
[in] pszPrinterName
Puntero proporcionado por el autor de la llamada a una cadena que representa el nombre de la cola de impresión.
[in] pszDirectory
Puntero proporcionado por el autor de la llamada a una cadena que representa el valor proporcionado para la entrada Directory del servidor en el Registro. Para obtener más información, vea Punto auxiliar e impresión durante las instalaciones de impresora.
[in] pSplClientInfo
Puntero proporcionado por el autor de la llamada a una estructura de SPLCLIENT_INFO_1 .
[in] dwLevel
Valor proporcionado por el autor de la llamada que indica el número de nivel de la estructura a la que apunta pSplClientInfo. Debe ser 1.
[in, out] pszSourceDir
Para la entrada, recibe un puntero proporcionado por el autor de la llamada a una cadena que representa la ruta de acceso completa del directorio del servidor (incluido el nombre del servidor) desde la que se van a copiar los archivos.
Para la salida, la función puede modificar esta cadena.
[in, out] pcchSourceDirSize
Dirección proporcionada por el autor de la llamada que contiene la longitud del búfer al que apunta pszSourceDir. (Tenga en cuenta que esta es la longitud del búfer, no la longitud de la cadena).
[in, out] pszTargetDir
Para la entrada, recibe un puntero proporcionado por el autor de la llamada a una cadena que representa la ruta de acceso del directorio de cliente a la que se van a copiar los archivos. Se aplican las reglas siguientes:
- Cuando se llama a la función en el servidor, esta ruta de acceso es relativa a PRINT$.
- Cuando se llama a la función en el cliente, la cadena contiene una ruta de acceso completa.
[in, out] pcchTargetDirSize
Dirección proporcionada por el autor de la llamada que contiene la longitud del búfer al que apunta pszTargetDir. (Tenga en cuenta que esta es la longitud del búfer, no la longitud de la cadena).
[in] dwFlags
Marca proporcionada por el autor de la llamada. Puede ser uno de los siguientes:
COPYFILE_FLAG_CLIENT_SPOOLER
Indica que el administrador de colas del cliente llama a la función.
COPYFILE_FLAG_SERVER_SPOOLER
Indica que la cola del servidor llama a la función.
Valor devuelto
Si la operación se realiza correctamente, la función debe devolver ERROR_SUCCESS. De lo contrario, debe devolver un código de error definido en winerror.h.
Comentarios
Todos los archivos DLL de punto e impresión deben exportar una función GenerateCopyFilePaths , a la que llama el administrador de trabajos de impresión. Su propósito es permitir que un archivo DLL de punto e impresión modifique la ruta de acceso del directorio de origen o de destino, o ambos, antes de que el administrador de trabajos de impresión copie los archivos asociados a la cola de impresión de un servidor a un cliente. (Los archivos se copian cuando un cliente se conecta a un servidor de impresión. Para obtener una descripción completa de los pasos implicados en la creación de una conexión de punto e impresión, consulte Punto auxiliar e Impresión).
Un archivo DLL de punto e impresión se ejecuta tanto en el servidor como en el cliente. La función GenerateCopyFilePaths debe comprobar el argumento dwFlags para determinar dónde se está ejecutando.
Normalmente, esta función se usa para proporcionar compatibilidad cuando se ejecutan diferentes versiones del sistema operativo en el cliente y el servidor. Por ejemplo, si la función, al ejecutarse en el servidor, determina (leyendo la estructura SPLCLIENT_INFO_1 ) que su sistema operativo es más reciente que el del cliente, puede modificar las rutas de acceso de origen y destino para que sean compatibles con el sistema operativo anterior del cliente. Por otro lado, si la función determina que el sistema operativo del cliente es más reciente que el del cliente, probablemente no debe hacer nada en el servidor y realizar modificaciones, si es necesario, al ejecutar en el cliente.
Los argumentos de los parámetros pszSourceDir y pszTargetDir apuntan a búferes que contienen cadenas que representan las rutas de acceso del directorio de origen y de destino actuales. Si es necesario realizar modificaciones en cualquiera de estas cadenas, la función debe realizar modificaciones en los búferes proporcionados. Los argumentos pcchSourceDirSize y pcchTargetDirSize apuntan a las longitudes máximas de cadena permitidas.
Si no se necesitan modificaciones en los directorios de origen o destino, la función solo debe devolver ERROR_SUCCESS.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | winsplp.h (incluya Winsplp.h) |
Library | Mscms.lib |
Archivo DLL | Mscms.dll |