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