2016-11-30 5 views

答えて

2

範囲

は、次の資料がCOM間のブリッジを作るために、開発者のためのアプローチをカバー/ VSTO OutlookのアドインとOffice JSアドインをユーザーのローミング設定や環境設定を共有します。

はじめ

COM/VSTO見通しを通じて顧客にリーチ体験を提供する企業がたくさんあり、最新バージョンのサポートに年齢およびOutlook 2000用アドインを彼らのために正常です。 Office JS Add-insの背後にあるMicrosoft Office Storeとテクノロジの成熟により、Office JS APIを使用して既存のソリューションを実装しようとする企業がますます増えています。 Officeが動作する環境向けに一度書いて簡単にアプリケーションを配布する能力は非常に魅力的です。しかし、古い信頼性の高いOffice 2010を使用しているかそれ以上のユーザーを使用している顧客はどうでしょうか。あなたは言うかもしれません: "彼らは私たちの古いCOMアドインを使用させて、振り返ってはいけません"。これは、この顧客がOutlook for Webを使用し始め、この環境用のアドインを作成したことを認識するまで、有効なポイントになる可能性があります。すばらしいです!それを使用し始める...しかし、私の設定と環境設定はどこですか?私の好みを変えたいのですが?今私はそれを2回しなければならないのですか?開発者は、「新しいソリューションに移行し、古いCOMを忘れる」と言うでしょう。しかし、ユーザーはおそらく、仕事中にCOMアドインで古いOutlookバージョンを使用し、新しいOffice JSアドインでリモートからOWAを使用する理由があるかもしれません(出張中、在宅勤務中など)。読者はおそらく私の意見を持っていたでしょう。開発者は、新しくてきれいなOffice JSアドインだけでなく、あなたの古いものだが強固で充実したCOM/VSTOソリューションの間で環境設定を共有することで、それらの顧客の生活をよりシンプルにしたいと思うかもしれません。だから、それをどうやって行うのかを見てみましょう。

オフィスJSアドインローミング設定

右要件から1.0 OfficeのJS APIを設定RoamingSettingsオブジェクトは、ユーザー設定で操作するための4つの方法で導入されました。 {String | Number | Boolean | Object | Array}のユーザー設定/プロパティタイプのカスタム値を設定、取得、削除することができます。このオブジェクトは、ユーザーのメールボックスごとにこれらの設定を保持し、任意の場所、デバイスなどからOffice JSアドインで使用できます。ユーザーの環境設定や設定を維持するための真のローミングです。注:この資格情報を使用して、ユーザー資格情報やセキュリティトークンなどの機密情報を保持しないでください。

COM/VSTOアドインデスクトップの見通し

のために私たちのCOM/VSTOソリューションに戻りましょう

// Get the current value of the 'myKey' setting 
var value = Office.context.roamingSettings.get('myKey'); 
// Update the value of the 'myKey' setting 
Office.context.roamingSettings.set('myKey', 'Hello World!'); 
// Persist the change 
Office.context.roamingSettings.saveAsync(); 
次の例では、オブジェクトの使用法を示します。単一の事前要求があります。ユーザーのメールボックスに格納されている設定を処理するには、アドインおよびユーザーごとに RoamingSettingsが格納されているOffice JSアドインIDを知る必要があります。さて、これはあなた/あなたの会社のアドインなので、あなたはそれを本当に知っているでしょう。私たちが探している設定は message propertyに保存されています。これは IMAPIFolderインターフェイスを使用してアクセスできるInboxフォルダの Associated contents tableに保存されています。うわー、これはポスト全体からの重要な文章だったので、詳細に説明する必要があります。
まず、関連するコンテンツテーブル内のすべてのメッセージを列挙し、 "IPM.Configuration.ClientExtension.00000000000000000000000000000000"というクラスでメッセージを検索する必要があります。ここで、0はOffice JSアドインのIDである必要があります。メッセージを選択すると



は、プロパティを「PR_ROAMING_DICTIONARY」を取得する必要があります。


このプロパティは、我々はオフィスJSアドイン上記の例で使用した場合の設定をローミングとして格納されたシリアル化されたデータが含まれます:

<?xml version="1.0" encoding="utf-8"?> 
<UserConfiguration> 
    <Info version="Exchange.12" /> 
    <Data> 
     <e k="18-ExtensionSettings" v="18-{"myKey":"\"Hello World!\""}" /> 
    </Data> 
</UserConfiguration> 

あなたのCOM/VSTOアドインを読むことができるようになります簡単な解析でこれらの設定を変更できます。 COMアドインのユーザー設定も公開することができます。通常、これらの設定の開発者は、HKCU Windowsレジストリ内で、ユーザーのメールボックスごとにローミングワールドを維持します。この利点は、Office JSアドイン間の機能だけでなく、ユーザーごとのアドインのメールボックスの設定の分離されたセットです。デスクトップOutlookから作成されたこれらの設定は、例えば、異なる情報のバージョンを使用する場合:私はからのアプリケーションの共有設定の簡単な例を説明したいトピックに関する最後の注意点として

<Info version="Outlook.16"/> 

結論

をCOMとOffice JSアドインがユーザー設定を共有するのと同じプロバイダ。


参照

  1. https://dev.outlook.com/reference/add-ins/RoamingSettings.html
  2. https://msdn.microsoft.com/en-us/library/office/cc842083.aspx
  3. https://msdn.microsoft.com/en-us/library/office/cc842374.aspx?f=255&MSPPError=-2147217396
  4. https://msdn.microsoft.com/en-us/library/office/cc842386.aspx
+0

おかげスラバ!私はこれに遭遇してうれしいです - 私はこれらがどこに保存されているのだろうと思っていたと私はOutlookSpyどこでも見た。どのようにこれを学びましたか? –

+0

Eric、私の話は、 "CustomProperties" Office.js APIオブジェクトについて不思議に思ったときに始まりました。私はそれらのプロパティがどのように保存されているか、それらをトランスポートxヘッダーに変換できるかどうかを理解したかったのです。 OutlookSpyはIMessageオブジェクト内にこれらのカスタムプロパティを表示しますが、これはロケット科学ではありませんでした。それらはアドインのIDでサンドボックス化されています。長い話をすると、Xヘッダーに変換する方法がないため、使用しないでください。しかし、これは、 "RoamingSetting"オブジェクトがどこに保存されているのか、OutlookSpyの思考と時間の後に私が共有したい方法を見つけたのかという疑問につながります) –

+0

これは基本的に私がMSDNで尋ねた元の質問でした: (https://social.msdn.microsoft.com/Forums/office/en-US/22a0ab3e-ea64-4741-aadf-9e51adbb54d2/how-to-get-roamingsettings-stored-with-officejs-api-from-vstocom -addin?forum = outlookdev#22a0ab3e-ea64-4741-aadf-9e51adbb54d2) –

関連する問題