C#でOutlook AddInを作成し、カレンダーリボンにボタンがあり、ユーザーがクリックして従業員の1人と新しい会議を作成したいとします。ユーザー(マネージャー)は、従業員のみのフィルタリングされたリストから従業員を選択し、ディレクトリ全体を検索する必要がないようにします。 これを行う最善の方法は何ですか?受信者をフィルタリングするためのOutlook AddIn
補遺: 私はいくつかの検索を行なったし、私は、フィルタのための潜在的な方法に出くわしました。
私は「SelectNamesDialog」機能は私にアドレス帳]ダイアログボックスを取得することを知っている:
Outlook.SelectNamesDialog snd = Application.Session.GetSelectNamesDialog();
私は私が見つけたコードの一部とそれを組み合わせたいです。私はそれを変更して、マネージャのすべてのダイレクトレポート(マネージャの従業員)の名前を返すようにしました。
私は正しい軌道に乗っていると思いますが、次に何をすべきかは不明です。 GetSelectNamesDialogを使用してこれらの名前の1つをユーザーが選択できるようにするにはどうすればよいですか?あなたの答えが擬似コードであればOKです。
// source: "How to: Get Information About Direct Reports of the Current User's Manager"
// https://msdn.microsoft.com/en-us/library/ff184617.aspx
private List<string> GetManagerDirectReports()
{
List<string> AddressNames = new List<string>();
Outlook.AddressEntry currentUser = Globals.ThisAddIn.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)
{
//System.Windows.Forms.MessageBox.Show(addrEntry.Name);
AddressNames.Add(addrEntry.Name);
}
}
}
}
return AddressNames;
}
最善の方法はGoogleです。これは「方法」のサイトではありません。これをチェックしてください:https://stackoverflow.com/help/mcveがんばろう。 – JuanR
もちろん私はすでにGoogleを使っています。私はここで私を助けました。私はヘルプページを読んでいます。以前の質問を探しました。私の質問は「トピック上の」標準(「特定のプログラミング問題」と「ソフトウェア開発に固有の実用的で解決不可能な問題」)を満たしています。私は、「方法」や「方法」から始まる多くの他の質問を見つけました。それらはすべてコードエラーメッセージではありません。私の質問は、「理由」と「方法」を説明する回答を促す建設的な質問でした。「 –
少なくともいくつかの仕事を示す必要があります。これはすでにあなたが何かに取り組んでいて、壁に当たったときに来る種類のサイトです。 – JuanR