Compartir a través de


Función GenerateCopyFilePaths (winsplp.h)

La función GenerateCopyFilePath s 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 al copiar 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 del directorio 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 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.
Para la salida, la función puede modificar esta cadena.

[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 la cola del cliente llama a la función .

COPYFILE_FLAG_SERVER_SPOOLER

Indica que el administrador 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.

Observaciones

Todos los archivos DLL de punto e impresión de 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 desde 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 imprimir).

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

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 debería hacer nada en el servidor y realizar modificaciones, si es necesario, al ejecutar en el cliente.

Los argumentos de la pszSourceDir y parámetros 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 de 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 Valor
de la plataforma de destino de Universal
encabezado de winsplp.h (incluya Winsplp.h)
biblioteca de Mscms.lib
DLL de Mscms.dll

Consulte también

SpoolerCopyFileEvent