Compartilhar via


Função GenerateCopyFilePaths (winsplp.h)

A função GenerateCopyFilePaths de uma DLL de Ponto e Impressão é usada para modificar os caminhos de origem e destino usados pelos spoolers de impressão ao copiar arquivos associados à fila de impressão para um cliente de impressão.

Sintaxe

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

Ponteiro fornecido pelo chamador para uma cadeia de caracteres que representa o nome da fila de impressão.

[in] pszDirectory

Ponteiro fornecido pelo chamador para uma cadeia de caracteres que representa o valor fornecido para a entrada de Diretório do servidor no Registro. Para obter mais informações, consulte Supporting Point and Print During Printer Installations.

[in] pSplClientInfo

Ponteiro fornecido pelo chamador para uma estrutura SPLCLIENT_INFO_1 .

[in] dwLevel

Valor fornecido pelo chamador que indica o número de nível da estrutura apontada por pSplClientInfo. Deve ser 1.

[in, out] pszSourceDir

Para entrada, recebe um ponteiro fornecido pelo chamador para uma cadeia de caracteres que representa o caminho completo do diretório do servidor (incluindo o nome do servidor) do qual os arquivos devem ser copiados.

Para saída, a função pode modificar essa cadeia de caracteres.

[in, out] pcchSourceDirSize

Endereço fornecido pelo chamador que contém o comprimento do buffer apontado por pszSourceDir. (Observe que esse é o comprimento do buffer, não o comprimento da cadeia de caracteres.)

[in, out] pszTargetDir

Para entrada, recebe um ponteiro fornecido pelo chamador para uma cadeia de caracteres que representa o caminho do diretório do cliente para o qual os arquivos devem ser copiados. As seguintes regras se aplicam:

  • Quando a função é chamada no servidor, esse caminho é relativo a PRINT$.
  • Quando a função é chamada no cliente, a cadeia de caracteres contém um caminho completo.
Para saída, a função pode modificar essa cadeia de caracteres.

[in, out] pcchTargetDirSize

Endereço fornecido pelo chamador que contém o comprimento do buffer apontado por pszTargetDir. (Observe que esse é o comprimento do buffer, não o comprimento da cadeia de caracteres.)

[in] dwFlags

Sinalizador fornecido pelo chamador. Um dos seguintes pode ser feito:

COPYFILE_FLAG_CLIENT_SPOOLER

Indica que a função está sendo chamada pelo spooler do cliente.

COPYFILE_FLAG_SERVER_SPOOLER

Indica que a função está sendo chamada pelo spooler do servidor.

Retornar valor

Se a operação for bem-sucedida, a função deverá retornar ERROR_SUCCESS. Caso contrário, ele deverá retornar um código de erro definido em winerror.h.

Comentários

Todas as DLLs de Ponto e Impressão devem exportar uma função GenerateCopyFilePaths , que é chamada pelo spooler de impressão. Sua finalidade é permitir que uma DLL de Ponto e Impressão modifique o caminho do diretório de origem ou destino, ou ambos, antes que o spooler de impressão copie arquivos associados à fila de impressão de um servidor para um cliente. (Os arquivos são copiados quando um cliente se conecta a um servidor de impressão. Para obter uma descrição completa das etapas envolvidas na criação de uma conexão ponto e impressão, consulte Supporting Point and Print.)

Uma DLL de Ponto e Impressão é executada no servidor e no cliente. A função GenerateCopyFilePaths deve marcar o argumento dwFlags para determinar onde está sendo executada.

Normalmente, essa função é usada para fornecer compatibilidade quando diferentes versões do sistema operacional estão sendo executadas no cliente e no servidor. Por exemplo, se a função, ao executar no servidor, determinar (lendo a estrutura SPLCLIENT_INFO_1 ) que seu sistema operacional é mais recente que o do cliente, ela pode modificar os caminhos de origem e destino para serem compatíveis com o sistema operacional mais antigo do cliente. Por outro lado, se a função determinar que o sistema operacional do cliente é mais recente que o do cliente, ele provavelmente não deve fazer nada no servidor e executar modificações, se necessário, ao executar no cliente.

Os argumentos para os parâmetros pszSourceDir e pszTargetDir apontam para buffers que contêm cadeias de caracteres que representam os caminhos atuais do diretório de origem e destino. Se forem necessárias modificações em qualquer uma dessas cadeias de caracteres, a função deverá fazer modificações nos buffers fornecidos. Os comprimentos máximos de cadeia de caracteres permitidos são apontados pelos argumentos pcchSourceDirSize e pcchTargetDirSize .

Se nenhuma modificação nos diretórios de origem ou destino for necessária, a função deverá retornar apenas ERROR_SUCCESS.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho winsplp.h (inclua Winsplp.h)
Biblioteca Mscms.lib
DLL Mscms.dll

Confira também

SpoolerCopyFileEvent