Het gebruik van benoemde eigenschappen voor adresboek vermeldingen met betrekking tot e-mailberichten, e-mailadressen en foto bijlagen in Outlook 2003

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 912237 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

INLEIDING

Het adresboek is een functie in Microsoft Office Outlook 2003 Service Pack 2 (SP2) als in eerdere versies van Microsoft Outlook. Dit artikel wordt beschreven hoe u met benoemde eigenschappen adresboekvermeldingen Contact met betrekking tot e-mailberichten, e-mailadressen en foto bijlagen in Outlook 2003 SP2.

Meer informatie

Over het adresboek

Het Contract Adresboek-provider die is opgenomen in Outlook 2003 SP2 is contab32.dll. Deze provider wordt informatie uit een contactpersonenmap weergegeven in de vorm van een adresboek. De provider wordt zodat u de contactpersonen in het adresboek Contact adres e-mailberichten kunt. Alle contactpersonen een e-mailadres of faxnummer hebben worden in het adresboek vertegenwoordigd door een afzonderlijke vermelding voor elk e-mailadres of faxnummer. Omdat een contactpersoon maximaal drie e-mailadressen hebben kan en drie faxnummers, wordt elke contactpersoon daarom vertegenwoordigd door maximaal zes afzonderlijke posten in het adresboek contactpersoon.

Hoe Contact adresboekvermeldingen e-mailberichten koppelen

De informatie in een adresboek contactpersoon vermelding is een subset van de gegevens in het onderliggende e-mailbericht naar de contactpersoon. De volgende CONTAB_ENTRYID-structuur kan gebruikt bepalen de adresboek-vermelding die een onderliggende bericht is afgeleid.

Definitie
#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()
De structuur CONTAB_ENTRYID definieert de indeling van de post-id IMailUser objecten die worden gebruikt in het adresboek. Item-id's van dit type kunt u verkrijgen van een of beide van de volgende bronnen:
  • DePR_ENTRYIDkolom van de tabel Contactpersoon adresboek inhoud
  • DePR_ENTRYIDeigenschap van een IMailUser-object dat wordt geopend vanuit het adresboek
De onderliggende bericht openen typecast adresboek Contact item-ID voor deze structuur. Gebruik vervolgens de cbeid en abeid leden als de contactpersoon invoeren.

VoorbeeldMicrosoft biedt programming voorbeelden ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal wordt aangetoond en de hulpmiddelen maken en procedures voor foutopsporing worden gebruikt. Ondersteuningstechnici van Microsoft kunnen de functionaliteit van een bepaalde procedure uitgelegd, maar niet passen deze voorbeelden om functionaliteit toegevoegd of procedures uw specifieke behoeften te maken.
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;
}

Hoe Contact adresboekvermeldingen naar e-mailadressen koppelen

De enige manier om toegang tot de e-mailadressen in een adresboek bericht is via de benoemde eigenschappen van de onderliggende bericht. De eigenschappen die hier worden beschreven zijn alleen-lezen eigenschappen. Outlook 2003 biedt geen ondersteuning voor oplossingen die deze eigenschappen schrijven.

Definities
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
Gebruik

De volgende constanten kunt u de structuur MAPINAMEID invullen. Deze constanten zijn de verschillende velden van de structuur.
Deze tabel samenvouwenDeze tabel uitklappen
ConstanteVeld
PSETID_AdresslpGuid
MNID_IDulKind
DISPIDDeksel
Nadat u de structuur MAPINAMEID hebt ingevuld, gebruikt u de methode GetIDsFromNames huidige eigenschap id voor deze eigenschappen verkrijgen. Deze eigenschappen zijn alle tekenreekseigenschappen van de.

VoorbeeldMicrosoft biedt programming voorbeelden ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal wordt aangetoond en de hulpmiddelen maken en procedures voor foutopsporing worden gebruikt. Ondersteuningstechnici van Microsoft kunnen de functionaliteit van een bepaalde procedure uitgelegd, maar niet passen deze voorbeelden om functionaliteit toegevoegd of procedures uw specifieke behoeften te maken.
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;
}

Hoe Contact adresboekvermeldingen betrekking hebben op afbeeldingen

Outlook ondersteunt één afbeelding voor elke contactpersoon. Deze afbeelding wordt opgeslagen als een bijlage in de onderliggende bericht. Bepalen welke bijlagen de afbeelding bevat, gebruikt u dePR_ATTACHMENT_CONTACTPHOTOeigenschap. De eigenschap die hier wordt beschreven, is alleen-lezen eigenschap. Outlook biedt geen ondersteuning voor oplossingen om deze eigenschap schrijven.

Definitie

#define PR_ATTACHMENT_CONTACTPHOTO PROP_TAG( PT_BOOLEAN, 0x7FFF)
Gebruik

DePR_ATTACHMENT_CONTACTPHOTOeigenschap kan worden benaderd als een kolom in de tabel bijlage, die wordt verkregen via IMessage::GetAttachmentTable. DePR_ATTACHMENT_CONTACTPHOTOeigenschap wordt als een eigenschap van het object IAttach benaderd. Als de waarde van dePR_ATTACHMENT_CONTACTPHOTOeigenschap true is, de bijlage bevat een afbeelding van de contactpersoon. De afbeelding wordt opgeslagen als een JPEG-bestand. De typische MAPI-methoden gebruiken om de bijlage een bestand uitpakken.

Referenties

Bezoek de volgende Microsoft-websites voor meer informatie:
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

Eigenschappen

Artikel ID: 912237 - Laatste beoordeling: donderdag 17 maart 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Office Outlook 2003 op de volgende platformen
    • Microsoft Office 2003 Service Pack 2
Trefwoorden: 
kbhowto kbmt KB912237 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:912237

Geef ons feedback

 

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