レプリケーション状態のマシンについて

適用対象: Outlook 2013 | Outlook 2016

このトピックでは、Microsoft Outlook 2013およびMicrosoft Outlook 2010データ レプリケーション用のステート マシンの概要について説明します。

注:

レプリケーション API は、このトピックの手順に従って完全に実装する必要があります。この API は、役に立つかサポートされます。 レプリケーション API は、サーバーとの間で Outlook 2013 または Outlook 2010 の変更をレプリケートするためだけに使用できます。

IOSTX とステート マシン

クライアントは 、IOSTX::SyncBegIOSTX::SyncEndIOSTX::SyncHdrBegおよび IOSTX::SyncHdrEnd をシーケンスで呼び出して、Outlook 2013 または Outlook 2010 のフォルダーとアイテムをローカル ストアとサーバー間で同期します。 呼び出しの実際のシーケンスは、レプリケートする必要があるデータ (たとえば、Outlook 2013 または Outlook 2010 フォルダーの階層、Outlook 2013 または Outlook 2010 フォルダー、メール アイテム、予定表アイテムなど) と同期の方向 (ローカル ストアからサーバーへのアップロード、サーバーからローカル ストアへのダウンロードなど) によって異なります。 一般的な一連の呼び出しを次に示します。

  1. クライアントは IOSTX::SyncBeg を呼び出してレプリケーションを開始し、状態識別子と、対応するデータ構造のアドレスへのポインターを指定します。

  2. Outlook 2013 または Outlook 2010 は、データ構造を割り当て、クライアントに必要な情報を使用してデータ構造を初期化します。

  3. クライアントはレプリケーションを実行し、データ構造を更新して、レプリケーションに関する必要な情報をローカル ストアに伝達します。

  4. レプリケーションを実行した後、クライアントは IOSTX::SetSyncResultIOSTX::SyncEnd を呼び出して、特定のレプリケーションの完了をローカル ストアに通知します。

注:

クライアントは常に IOSTX::SyncEnd を呼び出して、クライアントが特定の状態で開始したレプリケーションを終了します。 クライアントが同期する必要がある全体的なデータに応じて、クライアントは IOSTX::SyncBegIOSTX::SyncEnd の呼び出しのペアを複数回呼び出す場合があります。

状態テーブル

注:

次の表に、レプリケーション状態マシンのすべての有効な状態と、対応する状態識別子とデータ構造を示します。 [ データレプリケート ] 列の "アイテム" という用語には、メール、予定表、連絡先、メモ、仕訳帳、タスクアイテムが含まれます。 ローカル ストアからサーバーに変更をレプリケートする場合は、"UPLOAD" を指定する状態識別子と、"UP" プレフィックスを持つデータ構造 ( LR_SYNC_UPLOAD_HIERARCHYUPHIER など) を使用します。 サーバーからローカル ストアに変更をレプリケートする場合は、"DOWNLOAD" を指定する状態識別子と、"DN" プレフィックスを持つデータ構造 ( LR_SYNC_DOWNLOAD_HIERARCHYDNHIER など) を使用します。

状態
レプリケートされたデータ
状態識別子
データ構造
アイドル状態
なし
LR_SYNC_IDLE
なし
同期状態
フォルダーまたはアイテム
LR_SYNC
同期
階層の状態をアップロードする
フォルダー
LR_SYNC_UPLOAD_HIERARCHY
UPHIER
フォルダーの状態をアップロードする
フォルダー
LR_SYNC_UPLOAD_FOLDER
UPFLD
コンテンツの状態を同期する
アイテム
LR_SYNC_CONTENTS
SYNCCONT
テーブルの状態をアップロードする
アイテム
LR_SYNC_UPLOAD_TABLE
UPTBL
メッセージの状態をアップロードする
アイテム
LR_SYNC_UPLOAD_MESSAGE
UPMSG
読み取り状態のアップロード
アイテム
LR_SYNC_UPLOAD_MESSAGE_READ
UPREAD
アップロードの削除状態
アイテム
LR_SYNC_UPLOAD_MESSAGE_DEL
UPDEL
階層の状態をダウンロードする
フォルダー
LR_SYNC_DOWNLOAD_HIERARCHY
DNHIER
テーブルの状態をダウンロードする
アイテム
LR_SYNC_DOWNLOAD_TABLE
DNTBL
メッセージ ヘッダーの状態をダウンロードする
メッセージ ヘッダー
LR_SYNC_DOWNLOAD_HEADER
HDRSYNC

例: フォルダー階層のアップロード

フォルダーの階層をアップロードするときに、次の一連の手順が実行されます。

手順
操作
状態
関連データ構造
1. クライアントは 、IOSTX::SyncBeg を使用して階層のアップロードを開始します。 LR_SYNC_UPLOAD_HIERARCHY
UPHIER
2. Outlook 2013 または Outlook 2010 では、 UPHIER にクライアントの情報が設定されます。 これには、[out] パラメーターの初期化が含まれます。 iEnt は 0 に設定され、 cEnt はアップロードが必要な階層内のフォルダーの数に設定されます。 LR_SYNC_UPLOAD_HIERARCHY
UPHIER
3。 クライアントは、実際の階層のアップロードを行います。 たとえば、 cEnt が 10 の場合、10 個のフォルダーごとに、クライアントは IOSTX::SyncBeg を呼び出し、フォルダーをアップロードするための適切な状態識別子とデータ構造を指定します。 LR_SYNC_UPLOAD_FOLDER
UPFLD
4. Outlook 2013 または Outlook 2010 は、フォルダーのアップロードの理由、フォルダー オブジェクトへのポインター、フォルダーのエントリ ID など、その [out] パラメーターを初期化することで UPFLD を設定します。 LR_SYNC_UPLOAD_FOLDER
UPFLD
5. クライアントは、指定したフォルダーをアップロードします。 LR_SYNC_UPLOAD_FOLDER
UPFLD
6. クライアントは、フォルダーアップロードの完了をローカル ストアに通知します。成功すると、クライアントは UPFLD の [in] パラメーター ulFlagsUPF_OKに設定し、IOSTX::SetSyncResult (S_OK)IOSTX::SyncEnd を呼び出します。 失敗した場合、クライアントはUPF_OK フラグを使用して ulFlags を設定しません。 これは、IOSTX::SetSyncResult を呼び出し、HRESULT 値と IOSTX::SyncEnd を渡します LR_SYNC_UPLOAD_FOLDER
UPFLD
7. UPF_OKが設定されている場合、Outlook 2013 または Outlook 2010 はフォルダーをアップロードするための内部要求をクリアします。 その後、ulFlags の状態に関係なく、内部簿記情報がクリーンされます。 階層内には引き続きアップロードするフォルダーがありますが (iEnt はまだ cEnt 未満です)、クライアントと Outlook 2013 または Outlook 2010 は手順 3 から 7 を繰り返します。 LR_SYNC_UPLOAD_FOLDER
UPFLD
8. クライアントは、階層のアップロードの完了をローカル ストアに通知します。成功すると、クライアントは UPHIER で [in] フラグを UPH_OKに設定し、 IOSTX::SetSyncResult (S_OK)IOSTX::SyncEnd を呼び出します。 失敗した場合、クライアントは UPH_OK フラグを設定しません。 これは、IOSTX::SetSyncResult を呼び出し、HRESULT 値と IOSTX::SyncEnd を渡します LR_SYNC_UPLOAD_HIERARCHY
UPHIER
9. UPH_OKが設定されている場合、Outlook 2013 または Outlook 2010 は階層をアップロードするための内部要求をクリアします。 その後、ulFlags の状態に関係なく、内部簿記情報がクリーンされます。 LR_SYNC_UPLOAD_HIERARCHY
UPHIER

関連項目

レプリケーション API について
MAPI �萔
SYNCSTATE