Como utilizar propriedades designadas para relacionar entradas do livro de endereços de contacto para mensagens de correio electrónico, endereços de correio electrónico e anexos de imagem no Outlook 2003

Traduções de Artigos Traduções de Artigos
Artigo: 912237 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

O livro de endereços contacto é uma funcionalidade do Microsoft Office Outlook 2003 Service Pack 2 (SP2), tal como em versões anteriores do Microsoft Outlook. Este artigo descreve como utilizar propriedades designadas para relacionar movimentos do livro de endereços de contacto para mensagens de correio electrónico, endereços de correio electrónico e anexos de imagem no Outlook 2003 SP2.

Mais Informação

Sobre o livro de endereços contacto

O fornecedor do livro de endereços do contrato que está incluído no Outlook 2003 SP2 é contab32.dll. Este fornecedor apresenta informações de uma pasta de contactos no formulário de um livro de endereços contacto. O fornecedor fá-lo para que possa utilizar os contactos no livro de endereços de contactos para endereçar mensagens de correio electrónico. Todos os contactos com um endereço de correio electrónico ou um número de fax são representados no livro de endereços contacto por uma lista separada para cada endereço de correio electrónico ou fax número. Uma vez que um contacto pode ter até três endereços de correio electrónico e três números de fax, cada contacto, por isso, pode ser representado por até seis entradas separadas no livro de endereços contacto.

Como se relacionam com entradas do livro de endereços de contacto para mensagens de correio electrónico

As informações numa entrada de livro de endereços contacto são um subconjunto das informações que está na mensagem de correio electrónico subjacente ao contacto. A seguinte estrutura CONTAB_ENTRYID pode ser utilizada para determinar a entrada do livro de endereços de contacto a partir do qual uma mensagem subjacente é derivada.

definição
#pragma pack(4)
typedef struct _contab_entryid
{
  BYTE misc1[4];
  MAPIUID misc2;
  ULONG misc3;
  ULONG misc4;
  ULONG misc5;
  // EntryID of contact in store.
  ULONG cbeid;
  BYTE abeid[1];
} CONTAB_ENTRYID, *LPCONTAB_ENTRYID;
#pragma pack()
CONTAB_ENTRYID A estrutura define o formato dos objectos de IDs de IMailUser de entrada que são utilizados no livro de endereços de contacto. Pode obter o ID de entrada deste tipo de uma ou ambas das seguintes origens:
  • Coluna da tabela de conteúdo de livro de endereços de contacto PR_ENTRYID
  • A propriedade PR_ENTRYID do objecto IMailUser aberto a partir do livro de endereços contacto
Para abrir a mensagem subjacente, typecast o ID de entrada do livro de endereços de contacto para esta estrutura. Em seguida, utilizar os membros cbeid e abeid como ID de entrada. ?s contacto

exemplo A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.
HRESULT HrOpenContact(
  LPMAPISESSION lpSession,
  ULONG cbEntryID,
  LPENTRYID lpEntryID,  
  ULONG ulFlags,
  LPMESSAGE* lpContactMessage)
{
  ULONG ulObjType = NULL;
  if (sizeof(CONTAB_ENTRYID) > cbEntryID)
      return MAPI_E_INVALID_PARAMETER;
  LPCONTAB_ENTRYID lpContabEID = (LPCONTAB_ENTRYID) lpEntryID;
  HRESULT hRes = lpSession->OpenEntry(
      lpContabEID->cbeid,
      (LPENTRYID) lpContabEID->abeid,
      NULL,
      ulFlags,
      &ulObjType,
      (LPUNKNOWN*) lpContactMessage);
  return hRes;
}

Como se relacionam com entradas do livro de endereços de contacto para endereços de correio electrónico

A única forma de aceder a endereços de correio electrónico numa mensagem do livro de endereços de contacto é através das propriedades com nome na mensagem subjacente. As propriedades que estão documentadas aqui são propriedades só de leitura. O Outlook 2003 não suporta soluções que escrevem estas propriedades.

definições
DEFINE_OLEGUID(PSETID_Address, MAKELONG(0x2000+(0x04),0x0006),0,0);
#define dispidEmailAddrType 0x8082
#define dispidEmailEmailAddress 0x8083
#define dispidEmail2AddrType 0x8092
#define dispidEmail2EmailAddress 0x8093
#define dispidEmail3AddrType 0x80A2
#define dispidEmail3EmailAddress 0x80A3
DEFINE_OLEGUID(PSETID_Address, MAKELONG(0x2000+(0x04),0x0006),0,0); #define dispidEmailAddrType 0x8082 #define dispidEmailEmailAddress 0x8083 #define dispidEmail2AddrType 0x8092 #define dispidEmail2EmailAddress 0x8093 #define dispidEmail3AddrType 0x80A2 #define dispidEmail3EmailAddress... utilização

Pode utilizar as constantes seguintes para preencher a estrutura MAPINAMEID. Estas constantes são os vários campos da estrutura.
Reduzir esta tabelaExpandir esta tabela
ConstanteCampo
PSETID_AdresslpGuid
MNID_IDulKind
DISPIDTampa
Depois de preenchido a estrutura MAPINAMEID, utilize o método GetIDsFromNames para obter a propriedade ID actual para estas propriedades. Estas propriedades são todas as propriedades de cadeia.

exemplo A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.
HRESULT HrGetEmail1(LPMESSAGE lpContact)
{
  HRESULT hRes = S_OK;
  LPSPropTagArray lpNamedPropTags = NULL;
  MAPINAMEID NamedID = {0};
  LPMAPINAMEID lpNamedID = &NamedID;
  NamedID.lpguid = (LPGUID)&PSETID_Address;
  NamedID.ulKind = MNID_ID;
  NamedID.Kind.lID = dispidEmailEmailAddress;
  hRes = lpContact->GetIDsFromNames(
      1,
      &lpNamedID,
      NULL,
      &lpNamedPropTags);
  if (SUCCEEDED(hRes) && lpNamedPropTags)
  {
      SPropTagArray sPropTagArray;
      sPropTagArray.cValues = 1;
      sPropTagArray.aulPropTag[0] = CHANGE_PROP_TYPE(lpNamedPropTags->aulPropTag[0],PT_STRING8);
      LPSPropValue lpProps = NULL;
      ULONG cProps = 0;
      hRes = lpContact->GetProps(
        &sPropTagArray,
        NULL,
        &cProps,
        &lpProps);
    if (SUCCEEDED(hRes) &&
      1 == cProps &&
      lpProps &&
      PT_STRING8 == PROP_TYPE(lpProps[0].ulPropTag) &&
      lpProps[0].Value.lpszA)
      {
          printf("Email address 1 = \"%s\"\n",lpProps[0].Value.lpszA);
      }
    MAPIFreeBuffer(lpProps);
    MAPIFreeBuffer(lpNamedPropTags);
  }
  return hRes;
}

Como relacionar entradas do livro de endereços de contacto para imagens

O Outlook suporta uma única imagem para cada contacto. Esta imagem é armazenada como um anexo numa mensagem subjacente. Para determinar qual anexo contém a imagem, utilize a propriedade PR_ATTACHMENT_CONTACTPHOTO . A propriedade que é documentada aqui é uma propriedade só de leitura. O Outlook não suporta soluções que escrever para esta propriedade.

definição

#define PR_ATTACHMENT_CONTACTPHOTO PROP_TAG( PT_BOOLEAN, 0x7FFF)
utilização

A propriedade PR_ATTACHMENT_CONTACTPHOTO pode ser acedida como uma coluna na tabela anexo que é obtida através da IMessage::GetAttachmentTable. A propriedade PR_ATTACHMENT_CONTACTPHOTO é acedida como uma propriedade no objecto IAttach. Se o valor da propriedade PR_ATTACHMENT_CONTACTPHOTO for VERDADEIRO, o anexo contém a imagem contacto. A imagem é armazenada como um ficheiro .JPEG. Utilize os métodos MAPI normais para extrair este anexo para um ficheiro.

Referências

Para obter mais informações, visite os seguintes Web sites da Microsoft:
http://msdn2.microsoft.com/en-us/library/bb905282.aspx
http://msdn2.microsoft.com/en-us/library/bb820925.aspx
http://msdn2.microsoft.com/en-us/library/bb821181.aspx

Propriedades

Artigo: 912237 - Última revisão: 10 de fevereiro de 2014 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Office Outlook 2003 nas seguintes plataformas
    • Microsoft Office 2003 Service Pack 2
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhowto KB912237 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 912237

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com