6

ユーザー ユーザーがアクセスできる受信トレイの内容を表示できるようにするアプリを開発しています。それ以外の方法でグローバル アドレス一覧を検索する方法を見つけるのに苦労しています。

AddressEntries entries = global.AddressEntries;
AddressEntry entry = entries["search value"];

これは機能しますが、返されるインスタンスは 1 つだけで、最初に見つかったものです。複数の結果がある場合、基本的にはユーザーにリストを提供したいと考えています。

次に、連絡先の詳細を表示できるようにしたいのですが、

ContactItem contact = entry.GetContact();

常に null を返します。これは、現在のユーザーの連絡先の個人リストを見ているためだと思います

意味があれば、Outlook でグローバル アドレス帳ウィンドウの単純なバージョンを作成しようとしていると思います。

とにかく、誰かがアイデアや参考文献を持っていれば、私は感謝しています!

ありがとうパトリック

4

3 に答える 3

5

以下に示すように、現在のプロファイルからグローバルアドレスリストを取得できるはずです。

Outlook.AddressLists addrLists = Application.Session.AddressLists;
Outlook.AddressList gal = addrLists["Global Address List"];

次に、そのメンバーを列挙して表示できますAddressList

こちらのMSDNで説明されているこれを行う別の方法があります。

方法:グローバルアドレスリストのエントリを列挙する

于 2010-11-18T01:19:52.020 に答える
5
string[] names;
Outlook.AddressLists addrLists = Application.Session.AddressLists; 
Outlook.AddressList gal = addrLists["Global Address List"];

//for a distrubution list do this...
Outlook.AddressEntry entry = gal.AddressEntries["distribution list"];
Outlook.ExchangeDistributionList exchDL = entry.GetExchangeDistributionList();
Outlook.AddressEntries addrEntries = exchDL.GetExchangeDistributionListMembers();

names = new string[addrEntries.Count];

for (int i = 0; i < addrEntries.Count; i++)
{
    Outlook.AddressEntry exchDLMember = addrEntries[i];
    names[i] = exchDLMember.Name;
}

return names;

//for an individual you could do something like this...
Outlook.AddressEntry entry = gal.AddressEntries["contact nickname"];

Outlook.ContactItem contact = entry.GetContact();
string name = contact.NickName;
string email = contact.Email1Address;
于 2012-02-08T16:04:01.223 に答える