3

私は現在、Outlookプラグインを開発しようとしています。非機能要件を実装するには、.nk2ファイルに保存されているOutlookのキャッシュされた連絡先にアクセスする必要があります。この投稿を参照しましたが、その方法がわかりませんでした。

編集済み(回答):

Microsoft.Office.Interop.Outlook.Application oApp = Globals.ThisAddIn.Application;
        Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);

        StorageItem storage = inboxFolder.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass);

        //IPM.Configuration.Autocomplete

        PropertyAccessor propertyAcc = storage.PropertyAccessor;

        byte[] got = propertyAcc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102");

現在、バイト配列へのアクセスに行き詰まっています。配列にアクセスすると、値がこの投稿で説明されている方法とは異なります。

4

3 に答える 3

2
Microsoft.Office.Interop.Outlook.Application oApp = Globals.ThisAddIn.Application;
Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);

StorageItem storage = inboxFolder.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass);

PropertyAccessor propertyAcc = storage.PropertyAccessor;

byte[] got = propertyAcc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102");

ここの説明を使用して、のフィールドにアクセスしますbyte[]。正しく機能しているコードを完成させました。にアクセスするときは、各バイトをループしてデータ型を確認するだけです。

于 2012-08-02T12:53:02.630 に答える
0

編集:

バイト配列の代わりにオブジェクトを使用できますか(それが機能しない場合は、デバッグ中にマウスをその上GetPropertyに置いて、期待されるリターンタイプを確認してください)。例えば:

Dim objPropAcc As Outlook.PropertyAccessor    
Dim result As Object
objPropAcc = BindingStorageItem.PropertyAccessor
result = objPropAcc.GetProperty("http://schemas.microsoft.com/mapi/id/{00062040-0000-0000-C000-000000000046}/8A48001E").ToString();

参照:OutlookからSharePointカレンダーのURLを取得する方法は?

年:

これは、MicrosoftKBの記事です。.nk2ファイルをOutlook2010にインポートする方法

Outlook 2007および2010は、「オートコンプリートストリーム」とも呼ばれるニックネームキャッシュと相互作用します。オートコンプリートストリームは、Outlookがオートコンプリートリストを保持する場所です。オートコンプリートリストは、ユーザーが電子メールを作成しているときに[宛先]、[Cc]、および[Bcc]編集ボックスに表示される名前のリストです。このトピックでは、Outlook2007およびOutlook2010がオートコンプリートストリームとどのように相互作用するかについて説明し、ファイルのバイナリ形式とオートコンプリートストリームと相互作用するための推奨される方法についても説明します。

http://ol2010mapisamples.codeplex.com/にあるサンプルのいくつかもご覧ください。このコードプレックスプロジェクトは、 MAPIの専門家であるStephenGriffinによって実行されていると思います

于 2012-08-02T04:38:04.117 に答える
0

生のストリームを解析するだけでなく、RedemptionとそのRDONicknamesオブジェクトを使用することもできます。ファイル(NK2)とストアベースのニックネームの両方にアクセスできます。

于 2015-01-07T17:40:00.993 に答える