MAPI プロパティの保存

適用対象: Outlook 2013 | Outlook 2016

多くのオブジェクトでは、処理のトランザクション モデルがサポートされているため、後でコミットされるまでプロパティの変更は永続的になりません。 プロパティの変更は IMAPIProp::SetProps メソッドと IMAPIProp::D eleteProps メソッドによって処理されますが、コミット ステップは IMAPIProp::SaveChanges によって処理されます。 SaveChanges の呼び出しが成功してから初めて、オブジェクトのプロパティの最新バージョンにアクセスできます。

SaveChanges がMAPI_E_OBJECT_CHANGEDエラー値を返すと、これは、別のクライアントがオブジェクトへの変更を同時にコミットしていることを示す警告です。 オブジェクトを実装するプロバイダーによっては、複数のクライアントが、MAPI_MODIFY フラグを設定して OpenEntry メソッドを呼び出してオブジェクトを正常に開き、読み取り/書き込みアクセス権を付与することができます。 このような OpenEntry 呼び出しから返されるオブジェクトは、ストレージ データのスナップショットです。 このデータを変更しようとするたびに、前の試行が上書きされる可能性があります。

SaveChanges からMAPI_E_OBJECT_CHANGEDを受け取ると、クライアントには次のオプションがあります。

  • オブジェクトのコピーを作成して、変更を保持します。

  • FORCE_SAVEを指定して、 SaveChanges を別の呼び出しで行います。

FORCE_SAVE フラグで SaveChanges を呼び出すと、以前の保存が上書きされ、クライアントの変更が永続的になります。

関連項目

MAPI のプロパティの概要