Outlook のメール作成フォームの tabNewMailMessage に表示されるリボン ボタンがあります。このボタンは、フォームの横に貼り付けられた CustomTaskPane の表示を切り替えます。
通常の練習では、すべてが完全に機能します。しかし、MS Word や Adobe Reader などの他のアプリケーションから [電子メールに添付] または [保存して送信] を介して [電子メールの作成] フォームを呼び出すと、ボタンは表示されますが、何も実行されません。
外部呼び出しの場合、明らかに NewInspector イベントが発生しないことを MSDN から知りました。
この場合の回避策を見つけることができませんでした。誰か知っていますか? :(
編集:さらに、プログラム全体で使用するいくつかの変数を含む Global クラス (Visual Studio が作成する非表示の GlobalS クラスではない) があります。アドインは、そこに含まれているものもまったくロードしません。実際に何が読み込まれるかはわかりません。詳しい情報をお持ちの方は、大声でお返事ください!
もう一度編集: ThisAddIn に文字列を入れて、toggleButton の messageBox を介して出力することをテストしましたが、機能しませんでした。誰かが混乱している場合、クリック イベントを実行できない場合、リボン ボタンは読み込まれません。そのため、外部から呼び出された Compose フォームは、ThisAddIn のすべてのコードと、リボン自体ではないクラスをスキップするようです。
これを理解するのに本当に助けが必要です!:(
もう一度編集: これが私がこれまでに得たものです。ThisAddIn スタートアップ イベントは発生せず、外部クラスのプロパティは読み取られませんが、ThisAddIn.SayHelloWorld() などの外部メソッドは機能します。
もう一度編集してください!:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
//MessageBox.Show(,"TEST");
try
{
inspectors = Globals.ThisAddIn.Application.Inspectors;
inspectors.NewInspector += new InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
foreach (Inspector insp in inspectors)
{
//insp.
Inspectors_NewInspector(insp);
}
}
catch (System.Exception ex)
{
List<string> lalala = new List<string>();
lalala.Add(ex.GetType().ToString());
lalala.Add(ex.Message);
lalala.Add(ex.StackTrace);
File.WriteAllLines(@"C:\outdebug",lalala.ToArray());
}
}
また!:
void Inspectors_NewInspector(Inspector Inspect)
{
try
{
if (Inspect.CurrentItem is MailItem)
{
Global.mail = Inspect.CurrentItem;
Global.inspectorWrappersValue.Add(Inspect, new InspectorWrapper(Inspect, Global.mail));
//inspectorw
}
}
catch (System.Exception ex)
{
List<string> lalala = new List<string>();
lalala.Add(ex.GetType().ToString());
lalala.Add(ex.Message);
lalala.Add(ex.StackTrace);
lalala.Add(Global.SiteConnectionManager.ToString());
File.WriteAllText(@"C:\Users\cat\Desktop\outdebug.txt", string.Join("\n", lalala), Encoding.UTF8);
}
}