Share via


IReconcilableObject::Reconcile メソッド (reconcil.h)

オブジェクトの状態を 1 つ以上の他のオブジェクトと調整します。 調整では、すべてのオブジェクトの状態をマージして結合された状態を形成することで、オブジェクトの内部状態が更新されます。

構文

HRESULT Reconcile(
  IReconcileInitiator *pInitiator,
  DWORD               dwFlags,
  HWND                hwndOwner,
  HWND                hwndProgressFeedback,
  ULONG               ulcInput,
  IMoniker            **rgpmkOtherInput,
  PLONG               plOutIndex,
  IStorage            *pstgNewResidues,
  PVOID               pvReserved
);

パラメーター

pInitiator

型: IReconcileInitiator*

調整プロセスのイニシエーターの IReconcileInitiator インターフェイスのアドレス。 このパラメーターは NULL にすることはできません。

dwFlags

型: DWORD

調整のコントロール フラグ。 このパラメーターには、0 またはこれらの値の組み合わせを指定できます。

RECONCILEF_FEEDBACKWINDOWVALID

hwndProgressFeedback パラメーターは有効です。

RECONCILEF_MAYBOTHERUSER

必要に応じて、briefcase リコンサイル機能を使用してユーザー操作を求めることができます。 この値がないと、ユーザーの操作は許可されません。 hwndOwner パラメーターは有効です。

RECONCILEF_NORESIDUESOK

ブリーフケースリコンサイルは、残留物の要求を無視して調整を実行できます。 残基をサポートしていないリコンサイルは、イニシエーターが残基を要求するたびに、この値に対してチェックする必要があります。 この値がないと、残基をサポートしないリコンサイルは、すぐにREC_E_NORESIDUESを返す必要があります。

RECONCILEF_OMITSELFRESIDUE

briefcase リコンサイルは、このオブジェクトに関連付けられている残留物を破棄できます。 通常、イニシエーターは、生成から生成までループする調整にこの値を使用します。

RECONCILEF_ONLYYOUWERECHANGED

変更されたオブジェクトの変更を他の変更されていないオブジェクトに反映するために 、Reconcile メソッドが呼び出されています。 この値は、レジストリに次のキーが存在する場合にのみ設定されます。

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

このキーがレジストリに存在しない場合、イニシエーターは、変更されたオブジェクトの他の変更されていないオブジェクトのバイナリコピーを同じコピーにすることで調整を行います。 rgpmkOtherInput モニカーは、他のオブジェクトを識別します。 この値は、RECONCILEF_YOUMAYDOTHEUPDATESも設定されている場合にのみ dwFlags で設定されます。 briefcase リコンサイルが更新自体を正常に完了した場合は、REC_S_IDIDTHEUPDATESが返され、 plOutIndex パラメーターが指す変数を -1L に設定する必要があります。 この値が dwFlags で設定されている場合は、成功時にS_OKを返さないでください。 リコンサイルがREC_S_IDIDTHEUPDATESを返した場合、イニシエーターはソース オブジェクトのストレージを保存しません。 リコンサイルがイニシエーターのビット コピー実装にフォールバックする場合は、S_FALSEを返す場合があります。

RECONCILEF_RESUMEDRECONCILIATION

提供された部分残基を使用して、briefcase リコンサイルを再開する必要があります。 この値がない場合、リコンサイザーは、入力バージョンのいずれかで "考慮されるが拒否されました" 情報を無視する必要があります。

RECONCILEF_YOUMAYDOTHEUPDATES

briefcase リコンサイルは更新を実行できます。 この値がないと、リコンサイルは更新を実行できません。 調整が正常に完了した場合、リコンサイルは更新を実行した場合はREC_S_IDIDTHEUPDATESを返し、更新を実行しなかった場合はS_OKする必要があります。

hwndOwner

型: HWND

briefcase リコンサイルが作成する子ウィンドウの親として使用されるウィンドウのハンドル。 このパラメーターは、 dwFlags でRECONCILEF_MAYBOTHERUSERが指定されている場合にのみ有効です。

hwndProgressFeedback

型: HWND

イニシエーターによって表示される進行状況フィードバック ウィンドウへのハンドル。 このパラメーターは、 dwFlags でRECONCILEF_FEEDBACKWINDOWVALIDが指定されている場合にのみ有効です。 briefcase リコンサイルでは、このウィンドウ ハンドルを使用して SetWindowText 関数を呼び出して、追加の調整状態情報をユーザーに表示できます。

ulcInput

種類: ULONG

dwFlags で指定されたバージョンまたは部分残基の数。 このパラメーターは 0 にすることはできません。

rgpmkOtherInput

種類: IMoniker**

調整するバージョンまたは部分残基にアクセスするために使用するモニカーのアドレスを含む配列のアドレス。

plOutIndex

型: LONG*

調整の結果が初期バージョンのいずれかと同じかどうかを示すインデックス値を受け取る変数のアドレス。 調整結果が 2 つ以上のバージョンの組み合わせである場合、変数は -1L に設定されます。 それ以外の場合は、0 から始まるインデックスで、このオブジェクトを示す 0、最初のバージョンを示す 1、2 番目のバージョンを示す 2 などです。

pstgNewResidues

種類: IStorage*

新しい残基を格納するために使用される IStorage インターフェイスのアドレス。 このパラメーターは NULL にして、残渣を保存しないことを示すことができます。

pvReserved

型: void*

予約; は NULL である必要があります。

戻り値

型: HRESULT

次のいずれかの値を返します。

リターン コード 説明
S_OK
調整は正常に完了し、変更を他のオブジェクトに反映する必要があります。
S_FALSE
調整アクションは実行されませんでした。 briefcase リコンサイルは、イニシエーターのビット コピーの実装にフォールバックすることを希望しています。 この値は、 dwFlags でRECONCILEF_ONLYYOUWERECHANGEDが設定されている場合にのみ返されます。
REC_S_IDIDTHEUPDATES
調整が正常に完了し、関連するすべてのオブジェクト ( Reconcile メソッドを実装するオブジェクトと rgpmkOtherInput によって記述された他のすべてのオブジェクト) が適切に更新されました。 したがって、イニシエーターは、変更を伝達するためにさらに何かを行う必要はありません。 Reconcile がこの値を返す場合、plOutIndex によって指される変数は -1L に設定する必要があります。 リコンサイルがこの値を返す場合、イニシエーターはソース オブジェクトのストレージを保存しません。 この値は、 dwFlags でRECONCILEF_YOUMAYDOTHEUPDATESが設定されている場合にのみ返されます。
REC_S_NOTCOMPLETE
ブリーフケースリコンサイルは、調整の一部を完了しましたが、すべてではありません。 ユーザーの操作が必要な場合があります。 変更は他のオブジェクトには反映されません。
REC_S_NOTCOMPLETEBUTPROPAGATE
ブリーフケースリコンサイルは、調整の一部を完了しましたが、すべてではありません。 ユーザーの操作が必要な場合があります。 変更は他のオブジェクトに反映されます。
REC_E_NORESIDUES
ブリーフケースリコンサイルは残基の生成をサポートしていないため、残渣の要求は拒否されます。 オブジェクトの状態は変更されません。
REC_E_ABORTED
briefcase リコンサイルは、イニシエーターからの終了要求に応答して調整を停止しました (詳細については 、「SetAbortCallback 」を参照してください)。 オブジェクトの状態が指定されていません。
REC_E_TOODIFFERENT
指定されたドキュメント バージョンが異なるため、調整を実行できません。
REC_E_INEEDTODOTHEUPDATES
オブジェクトの リコンサイル 実装が呼び出されたときに、RECONCILEF_YOUMAYDOTHEUPDATES フラグが設定されませんでした。この実装では、 dwFlags パラメーターでこの値を設定する必要があります。
OLE_E_NOTRUNNING
オブジェクトは、この操作を実行する前に実行する必要がある OLE 埋め込みオブジェクトです。オブジェクトの状態は変更されません。
E_UNEXPECTED
未定義のエラーが発生しました。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー reconcil.h
[DLL] Shell32.dll (バージョン 4.0 以降)

関連項目

IReconcilableObject