データベースからデータをフェッチし、データベースにデータを格納するためにWebサービスで認証するOutlookアドインを開発しています。アドインが起動すると、Webサービスにクエリを実行して、インストールされているアドインのバージョンが現在のバージョンであるかどうかを確認します。そうでない場合は、Outlookからアドインをアンロードします。
Application.COMAddIns.Item("foo").Connect = false;
Webサービスにクエリを実行するには、Webサービスで認証する必要があります。クレデンシャルは、Windowsレジストリ内の暗号化された文字列から取得されます。これらのクレデンシャルは、アドインが起動するたび、またはWebサービスに対してクエリが実行され、ユーザー名やパスワードをレジストリから取得できない場合に実行されるFormオブジェクトから取得されます。これは通常、誰かが上記の値を削除したためです。
クレデンシャルが保存されるたびに、それらのクレデンシャルを使用してWebサービスにクエリを実行し、アドインが正しいバージョンであるかどうかを確認します。そうでない場合は、COMアドインをOutlookから切断します。
Webサービスが他の目的で照会されるときはいつでも、アドインが正しいバージョンであるかどうかを確認するために最初に照会が行われます。そうでない場合は、COMアドインをOutlookから切断します。
私の知る限り、アドインの切断はOutlook.Applicationオブジェクトからのみ実行できますが、これまではアドインオブジェクトからしかアクセスできませんでした。
私が理解する必要があるのは、Outlookアドインを切断する方法、またはアドインオブジェクトにいないときにOutlookアドインを無効にする方法です。