Estrutura de fluxo FieldDefinition
Aplica-se a: Outlook 2013 | Outlook 2016
Uma estrutura de fluxo FieldDefinition contém a definição de campo de um campo definido pelo usuário ou um conjunto de configurações de associação de dados para um campo interno.
Você pode manipular programaticamente uma estrutura de fluxo FieldDefinition se a estrutura contiver a definição de campo de um campo definido pelo usuário. Você não deve tentar criar ou modificar programaticamente uma estrutura FieldDefinition se a estrutura contiver configurações para um campo interno. Você deve usar o Microsoft Outlook Forms Designer para manter essas configurações para campos internos.
Observação
O Outlook dá suporte a dois formatos de definições de campo: PropDefV1 e PropDefV2. O formato PropDefV1 de definições de campo contém os seguintes elementos de dados: Flags, VT, DispId, NmidNameLength, NmidName, NameANSI, FormulaANSI, ValidationRuleANSI, ValidationTextANSI e ErrorANSI. O formato PropDefV2 contém os mesmos elementos e os elementos InternalType e SkipBlocks.
O Outlook não mantém uma versão Unicode para os elementos de dados FormulaANSI, ValidationRuleANSI e ValidationTextANSI no formato de definição de campo PropDefV2. Se esses elementos contiverem caracteres não ASCII, esses caracteres poderão ser interpretados de forma inconsistente, dependendo da Página de Código ANSI do computador na qual o Outlook está em execução. Portanto, você deve usar apenas valores de cadeia de caracteres que consistem inteiramente em caracteres ASCII para esses elementos de dados.
Os elementos de dados neste fluxo são armazenados em ordem de bytes de pequeno padrão, seguindo-se imediatamente uns aos outros na ordem especificada abaixo.
Sinalizadores: DWORD (4 bytes), uma combinação de zero ou mais sinalizadores cujos valores e significados estão listados na tabela a seguir.
Nome do sinalizador Valor Descrição PDO_IS_CUSTOM 0x00000001 A estrutura FieldDefinition contém uma definição de um campo definido pelo usuário. PDO_REQUIRED 0x00000002 Para um controle de formulário associado a esse campo, a caixa de marcar para um valor é necessária para esse campo é selecionada na guia Validação da caixa de diálogo Propriedades. PDO_PRINT_SAVEAS 0x00000004 Para um controle de formulário associado a esse campo, a caixa de marcar para Incluir esse campo para impressão e Salvar Como está selecionada na guia Validação da caixa de diálogo Propriedades. PDO_CALC_AUTO 0x00000008 Para um controle de formulário associado a esse campo, a caixa de marcar para Calcular essa fórmula automaticamente é selecionada na guia Valor da caixa de diálogo Propriedades. PDO_FT_CONCAT 0x00000010 Este é um campo do tipo Combinação e tem os campos de junção e todos os fragmentos de texto entre si selecionados na caixa de diálogo Campo de Fórmula de Combinação . PDO_FT_SWITCH 0x00000020 Esse campo é do tipo Combinação e tem o campo Mostrando apenas o primeiro campo não vazio, ignorando a opção subsequente selecionada na caixa de diálogo Campo de Fórmula de Combinação . PDO_PRINT_SAVEAS_DEF 0x00000040 Esse sinalizador não é usado pelo Outlook, mas está incluído em todas as definições de campo definidas pelo usuário. VT: WORD (2 bytes), o tipo de dados do campo, que é uma constante da enumeração VARENUM .
DispId: DWORD (4 bytes), o identificador de expedição do campo. Para um campo definido pelo usuário, o valor é 0.
NmidNameLength: WORD (2 bytes), o número de elementos na matriz NmidName.
NmidName: uma matriz de WCHAR. Para uma definição de campo definida pelo usuário, esta é a representação unicode (UTF-16) do nome do campo. A contagem dessa matriz é igual a NmidNameLength.
NameANSI: uma estrutura de fluxo PackedAnsiString . Essa é a representação ANSI do nome do campo.
FormulaANSI: uma estrutura de fluxo PackedAnsiString. Esta é uma representação ANSI da fórmula de cálculo para o campo. Ele é mostrado na seção Valor Inicial da guia Valor da caixa de diálogo Propriedades de um controle de formulário associado a esse campo.
ValidationRuleANSI: uma estrutura de fluxo PackedAnsiString. Esta é uma representação ANSI da fórmula de validação do campo. Ele é mostrado na caixa de texto da Fórmula de Validação na guia Validação da caixa de diálogo Propriedades de um controle de formulário associado a esse campo.
ValidationTextANSI: uma estrutura de fluxo PackedAnsiString. Esta é uma representação ANSI do texto de falha de validação do campo. Ele será mostrado na caixa de texto para Exibir essa mensagem se a validação falhar na guia Validação da caixa de diálogo Propriedades de um controle de formulário vinculado a esse campo.
ErrorANSI: uma estrutura de fluxo PackedAnsiString. O Outlook não usa esse elemento; você deve definir esse elemento como uma cadeia de caracteres vazia.
InternalType: DWORD (4 bytes), o tipo interno do campo. Esse elemento de dados só estará presente se o formato de definição de campo for PropDefV2. O tipo interno é um dos seguintes valores, cada um dos quais corresponde a um tipo na caixa de diálogo Novo Campo para campos definidos pelo usuário.
Nome do tipo interno Valor Tipo correspondente na caixa de diálogo Novo Campo iTypeString 0 Text iTypeNumber 1 Número iTypePercent 2 Percent Moeda 3 Currency iTypeBool 4 Yes/No iTypeDateTime 5 Data/Hora iTypeDuration 6 Duration iTypeCombination 7 Combinação, com o mostrando apenas o primeiro campo não vazio, ignorando a opção subsequente selecionada na caixa de diálogo Campo de Fórmula de Combinação . iTypeFormula 8 Fórmula iTypeResult 9 Esse tipo não é usado para campos definidos pelo usuário. iTypeVariant 10 Esse tipo não é usado para campos definidos pelo usuário. iTypeFloatResult 11 Esse tipo não é usado para campos definidos pelo usuário. iTypeConcat 12 Combinação, com os campos de junção e todos os fragmentos de texto entre si selecionados na caixa de diálogo Campo de Fórmula de Combinação . iTypeKeywords 13 Palavra-chave iTypeInteger 14 Integer SkipBlocks: uma série de uma ou mais estruturas de fluxo SkipBlock . Esse elemento de dados só estará presente se o formato de definição de campo for PropDefV2. Se o formato de definição de campo for PropDefV2, a série deverá conter pelo menos uma estrutura SkipBlock, a estrutura SkipBlock que tem o elemento De tamanho de dados igual a 0 e a série deve começar e terminar com essa estrutura SkipBlock.
A finalidade de uma estrutura SkipBlock depende de sua posição relativa na série SkipBlocks. Se a definição de campo estiver no formato PropDefV2 e a primeira estrutura não for a estrutura de término (o elemento Tamanho de dados for maior que 0), o Outlook pressupõe que a primeira estrutura SkipBlock especifique o nome do campo em Unicode (UTF-16).
Importante
Se o primeiro SkipBlock for a estrutura de término, o elemento de dados NameANSI será usado para determinar o nome do campo. Se essa cadeia de caracteres contiver caracteres que não sejam ASCII, esses caracteres poderão ser interpretados de forma inconsistente, dependendo da página de código ANSI do computador na qual o Outlook está em execução. Para evitar tais inconsistências, certifique-se de sempre especificar o primeiro SkipBlock nas definições de campo que você cria, pelo menos quando o nome do campo incluir caracteres não ASCII.
Se uma versão futura de um formato de definição de campo introduzir partes adicionais de dados no fluxo FieldDefinition, esses dados poderão ser armazenados como estruturas adicionais de fluxo SkipBlock na série SkipBlocks antes da estrutura skipblock terminada que tem o elemento de dados Size igual a 0. Versões anteriores do Outlook podem ignorar com segurança essas estruturas extras do SkipBlock até a estrutura de SkipBlock que termina e ainda processar corretamente todos os blocos que eles dão suporte.