Jak lze pomocí pojmenované vlastnosti se týkají položky kontaktů adresáře e-mailové zprávy, e-mailové adresy a obrázek příloh v aplikaci Outlook 2003

Překlady článku Překlady článku
ID článku: 912237 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

ÚVOD

Adresář kontaktů je funkce v aplikace Microsoft Office Outlook 2003 Service Pack 2 (SP2), stejně jako v předchozích verzích aplikace Microsoft Outlook. Tento článek popisuje způsob použití pojmenované vlastnosti k úpravě položky kontaktů adresáře e-mailové zprávy, e-mailové adresy a obrázek příloh v aplikaci Outlook 2003 Service Pack 2.

Další informace

O adresáři kontaktů

Zprostředkovatel adresáře smlouvy, obsažené v aplikaci Outlook 2003 Service Pack 2 je contab32.dll. Tento zprostředkovatel zobrazí informace ze složky Kontakty v formuláři do adresáře kontaktů. Zprostředkovatel to provede, což umožňuje využívat kontakty v adresáři kontaktů na adresu e-mailové zprávy. Všechny kontakty, které mají e-mailová adresa nebo faxové číslo představují v adresáři kontaktů zvláštní seznam pro každé e-mailová adresa nebo faxové číslo. Vzhledem k tomu, že kontakt může mít až tři e-mailové adresy a tři čísla faxu, každý kontakt může být tedy znázorněn až šest samostatných položek v adresáři kontaktů.

Jak se týkají položky kontaktů adresáře e-mailových zpráv

Informace, které jsou v položce kontaktu adresáře je podmnožinou informace, které jsou v podkladové e-mailové zprávě s tímto kontaktem. Následující strukturu CONTAB_ENTRYID lze zjistit, ze kterého je odvozen zpráva podkladové položka adresáře kontaktů.

Definice# pragma
#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 struktury definuje formát položky ID IMailUser objektů, které se používají v adresáři kontaktů. ID položky tohoto druhu lze získat od jeden nebo oba z následujících zdrojů:
  • Sloupec v PR_ENTRYID tabulce obsah adresáře kontaktů
  • Vlastnost PR_ENTRYID IMailUser objekt, který je otevřen z adresáře kontaktů
Otevřete podkladové zprávu, typecast ID položky adresáře kontaktů do této struktury. Potom pomocí cbeid a abeid členy jako ID kontaktu položku.

PříkladSpolečnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo mlčky. To zahrnuje, ale není omezen pouze na předpokládaných záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste je obeznámen s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu však nemohou tyto příklady přidány funkce nebo vytvářet postupy podle svých specifických požadavků.
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;
}

Jak se týkají položky kontaktů adresáře e-mailových adres

Jediným způsobem přístup k e-mailové adresy v adresáři kontaktů zprávě je prostřednictvím pojmenovaných vlastností na podkladové zprávě. Vlastnosti, které jsou zde popsány, jsou vlastnosti určené jen pro čtení. Aplikace Outlook 2003 nepodporuje řešení, která zapisovat do těchto vlastností.

Definice
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...Použití

Následující konstanty můžete použít k vyplnění MAPINAMEID struktury. Tyto konstanty jsou různá pole strukturu.
Zmenšit tuto tabulkuRozšířit tuto tabulku
KonstantníPole
PSETID_AdresslpGuid
MNID_IDulKind
DISPIDKryt
Po vyplnili strukturu MAPINAMEID, použijte metodu GetIDsFromNames získat aktuální vlastnost ID těchto vlastností. Tyto vlastnosti jsou všechny vlastnosti řetězce.

PříkladSpolečnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo mlčky. To zahrnuje, ale není omezen pouze na předpokládaných záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste je obeznámen s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu však nemohou tyto příklady přidány funkce nebo vytvářet postupy podle svých specifických požadavků.
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;
}

Jak obrázky se týkají položky adresáře kontaktů

Aplikace Outlook podporuje pouze jeden snímek pro každý kontakt. Tento obrázek je uložen jako přílohu ve zprávě podkladové. Chcete-li zjistit, která přílohu obsahuje obrázek, použijte vlastnost PR_ATTACHMENT_CONTACTPHOTO. Vlastnost, která je popsána v tomto poli je vlastnost jen pro čtení. Aplikace Outlook nepodporuje řešení, která zapsat tuto vlastnost.

Definice

#define PR_ATTACHMENT_CONTACTPHOTO PROP_TAG( PT_BOOLEAN, 0x7FFF)
Použití

Vlastnost PR_ATTACHMENT_CONTACTPHOTO lze získat přístup, jako sloupec v tabulce Příloha, která je získán prostřednictvím IMessage::GetAttachmentTable. Vlastnost PR_ATTACHMENT_CONTACTPHOTO je dostupný jako vlastnost objektu IAttach. Je-li hodnota vlastnosti PR_ATTACHMENT_CONTACTPHOTO pravdivé, přílohu s obrázkem kontaktu. Obrázek je uložen jako soubor JPEG. Typické MAPI metody slouží k extrakci tuto přílohu do souboru.

Odkazy

Na Další informace naleznete následujících webech společnosti 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

Vlastnosti

ID článku: 912237 - Poslední aktualizace: 1. února 2014 - Revize: 2.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Office Outlook 2003 na těchto platformách
    • Microsoft Office 2003 Service Pack 2
Klíčová slova: 
kbnosurvey kbarchive kbmt kbhowto KB912237 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:912237

Dejte nám zpětnou vazbu

 

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