この例では、現在のユーザーに上司がいる場合はその上司の直属の部下を取得し、上司の各直属部下についての情報を表示します。
例
注:
次のコード例は、『Programming Applications for Microsoft Office Outlook 2007』からの抜粋です。
次の例の GetManagerDirectReports プロシージャでは、GetExchangeUserManager() メソッドを呼び出して、ExchangeUser オブジェクトで表されるユーザーの上司を取得します。 現在のユーザーに上司がいる場合は、AddressEntries コレクションを返す GetDirectReports() を呼び出します。このコレクションは、ユーザーの上司のすべての直属の部下のアドレス エントリを表します。 上司に直属の部下がいない場合、GetDirectReports はカウントがゼロの AddressEntries コレクションを返します。 上司の直属の部下を取得した後、GetManagerDirectReports では上司の各直属の部下に関する情報を Listeners コレクションのトレース リスナーに書き込みます。
注:
このメソッドが AddressEntries コレクションを返すには、サインインしているユーザーがオンラインになっている必要があります。それ以外の場合、GetDirectReports は null 参照を返します。 運用コードの場合は、 _NameSpace.ExchangeConnectionMode プロパティ、または複数の Exchange シナリオで _Account.ExchangeConnectionMode プロパティを使用して、ユーザーがオフラインであることをテストする必要があります。
Visual Studio を使用してこのコード例をテストする場合、Microsoft.Office.Interop.Outlook 名前空間をインポートするときに、まず Microsoft Outlook 15.0 オブジェクト ライブラリ コンポーネントへの参照を追加し、Outlook 変数を指定します。 using ステートメントは、コード例の関数の前に直接置くことはできません。パブリッククラス宣言の前に追加する必要があります。 次のコード行は、C# でインポートおよび割り当てを行う方法を示しています。
using Outlook = Microsoft.Office.Interop.Outlook;
private void GetManagerDirectReports()
{
Outlook.AddressEntry currentUser =
Application.Session.CurrentUser.AddressEntry;
if (currentUser.Type == "EX")
{
Outlook.ExchangeUser manager =
currentUser.GetExchangeUser().GetExchangeUserManager();
if (manager != null)
{
Outlook.AddressEntries addrEntries =
manager.GetDirectReports();
if (addrEntries != null)
{
foreach (Outlook.AddressEntry addrEntry
in addrEntries)
{
Outlook.ExchangeUser exchUser =
addrEntry.GetExchangeUser();
StringBuilder sb = new StringBuilder();
sb.AppendLine("Name: "
+ exchUser.Name);
sb.AppendLine("Title: "
+ exchUser.JobTitle);
sb.AppendLine("Department: "
+ exchUser.Department);
sb.AppendLine("Location: "
+ exchUser.OfficeLocation);
Debug.WriteLine(sb.ToString());
}
}
}
}
}