Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O spooler de impressão e o driver de impressora Unidrv são aprimorados no Windows Vista para fornecer melhor suporte a formulários de impressora em ambientes multilíngües. O spooler suporta cadeias de caracteres MUI (Multi-language User Interface) para os nomes de exibição do formulário e a nova estrutura de dados FORM_INFO_2 para incluir as informações adicionais necessárias para suportar as cadeias de caracteres MUI.
A estrutura de dados FORM_INFO_1 é definida da seguinte forma.
typedef struct _FORM_INFO_1 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
} FORM_INFO_1, *PFORM_INFO_1;
No FORM_INFO_1, o membro pName é o único campo de cadeia de caracteres, portanto, você pode usá-lo para criar o nome da chave que as rotinas de pesquisa internas usam para localizar formulários no banco de dados interno e também como o nome para exibição que é mostrado aos usuários finais.
A estrutura FORM_INFO_2, que é definida no exemplo de código a seguir, adiciona campos adicionais para fornecer suporte a MUI.
typedef struct _FORM_INFO_2 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
LPCSTR pKeyword;
DWORD StringType;
LPCTSTR pMuiDll;
DWORD dwResourceId;
LPCTSTR pDisplayName;
LANGID wLangId;
} FORM_INFO_2, *PFORM_INFO_2;
FORM_INFO_2 adiciona o membro pKeyword para permitir a adição de uma palavra-chave distinta, que pode ser diferente do nome para exibição.
Essa estrutura também permite que você adicione a DLL do recurso e a ID do recurso ao banco de dados de formulários usando o membro pMuiDll e dwResourceId. Quando o membro StringType tem o valor de STRING_MUIDLL e os membros pMuiDll e dwResourceId contêm a DLL do recurso e o identificador do nome para exibição, a função AddForm no spooler procura o nome para exibição na DLL e o registra internamente. Quando a função GetForm ou EnumForms é chamada com um valor Level de 2, as informações retornadas na estrutura FORM_INFO_2 conterão o nome de exibição ao qual pDisplayName faz referência e o ID de idioma correspondente em wLangID.
Os drivers de impressora que continuam a usar a estrutura FORM_INFO_1 quando chamam AddForm armazenarão apenas as informações encontradas nessa estrutura no banco de dados de formulários. Os membros na estrutura FORM_INFO_2 que não são encontrados na estrutura FORM_INFO_1 serão NULL ou 0 quando consultados por uma chamada para GetForm ou EnumForms que retorna uma estrutura FORM_INFO_2.
Para obter mais informações sobre como adicionar formulários de impressora e sobre como usar as estruturas de dados FORM_INFO_1 e FORM_INFO_2, consulte a documentação do SDK do Microsoft Windows.