다음을 통해 공유


IReconcilableObject::Reconcile 메서드(reconcil.h)

개체의 상태를 하나 이상의 다른 개체와 조정합니다. 조정은 모든 개체의 상태를 병합하여 결합된 상태를 형성하여 개체의 내부 상태를 업데이트합니다.

구문

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

서류 가방 조정자는 필요한 경우 사용자 상호 작용을 요청하는 메시지를 표시할 수 있습니다. 이 값이 없으면 사용자 상호 작용이 허용되지 않습니다. hwndOwner 매개 변수가 유효합니다.

RECONCILEF_NORESIDUESOK

서류 가방 조정자는 잔류물에 대한 요청을 무시하고 조정을 수행할 수 있습니다. 잔류물을 지원하지 않는 조정자는 초기자가 잔류물을 요청할 때마다 이 값에 대해 검사 합니다. 이 값이 없으면 잔류물을 지원하지 않는 조정자는 즉시 REC_E_NORESIDUES 반환해야 합니다.

RECONCILEF_OMITSELFRESIDUE

서류 가방 조정자는 이 개체와 연결된 모든 잔류물을 삭제할 수 있습니다. 초기자는 일반적으로 세대 간 반복 조정에 이 값을 사용합니다.

RECONCILEF_ONLYYOUWERECHANGED

변경된 개체의 변경 내용을 다른 변경되지 않은 개체로 전파하기 위해 Reconcile 메서드가 호출됩니다. 이 값은 레지스트리에 다음 키가 있는 경우에만 설정됩니다.

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

이 키가 레지스트리에 없는 경우 초기자는 변경된 개체의 다른 변경되지 않은 개체를 이진 동일한 복사본으로 만들어 조정을 수행합니다. rgpmkOtherInput 모니커가 다른 개체를 식별합니다. 이 값은 RECONCILEF_YOUMAYDOTHEUPDATES 설정된 경우에만 dwFlags 로 설정됩니다. 서류 가방 조정자가 업데이트 자체를 성공적으로 완료하면 REC_S_IDIDTHEUPDATES 반환되고 plOutIndex 매개 변수가 가리키는 변수를 -1L로 설정해야 합니다. 이 값이 dwFlags에 설정된 경우 성공 시 S_OK 반환되지 않아야 합니다. Reconcile가 REC_S_IDIDTHEUPDATES 반환하는 경우 초기자는 원본 개체의 스토리지를 저장하지 않습니다. 조정자가 초기자의 비트 복사 구현으로 대체하려는 경우 S_FALSE 반환할 수 있습니다.

RECONCILEF_RESUMEDRECONCILIATION

서류 가방 조정자는 제공된 부분 잔류물을 사용하여 조정을 다시 시작해야 합니다. 이 값이 없으면 조정자는 입력 버전에서 "고려되었지만 거부됨" 정보를 무시해야 합니다.

RECONCILEF_YOUMAYDOTHEUPDATES

서류 가방 조정자는 업데이트를 수행할 수 있습니다. 이 값이 없으면 조정자가 업데이트를 수행할 수 없습니다. 조정이 성공적으로 완료되면 조정자는 업데이트를 수행한 경우 REC_S_IDIDTHEUPDATES 반환하거나 업데이트를 수행하지 않은 경우 S_OK 반환해야 합니다.

hwndOwner

형식: HWND

서류 가방 조정자가 만드는 자식 창의 부모로 사용할 창에 대한 핸들입니다. 이 매개 변수는 RECONCILEF_MAYBOTHERUSER dwFlags에 지정된 경우에만 유효합니다.

hwndProgressFeedback

형식: HWND

초기자가 표시할 진행률 피드백 창에 대한 핸들입니다. 이 매개 변수는 RECONCILEF_FEEDBACKWINDOWVALID dwFlags에 지정된 경우에만 유효합니다. 서류 가방 조정자는 이 창 핸들을 사용하여 SetWindowText 함수를 호출하여 사용자에게 추가 조정 상태 정보를 표시할 수 있습니다.

ulcInput

형식: ULONG

dwFlags에 지정된 버전 또는 부분 잔류물의 수입니다. 이 매개 변수는 0이 아니어야 합니다.

rgpmkOtherInput

형식: IMoniker**

조정될 버전 또는 부분 잔류물에 액세스하는 데 사용할 모니커의 주소를 포함하는 배열의 주소입니다.

plOutIndex

형식: LONG*

조정 결과가 초기 버전 중 하나와 동일한지 여부를 나타내는 인덱스 값을 받는 변수의 주소입니다. 조정 결과가 둘 이상의 버전 조합인 경우 변수는 -1L로 설정됩니다. 그렇지 않으면 이 개체를 나타내는 0, 첫 번째 버전을 나타내는 1, 두 번째 버전을 나타내는 2 등이 포함된 인덱스(0부터 시작)입니다.

pstgNewResidues

형식: IStorage*

새 잔류물을 저장하는 데 사용되는 IStorage 인터페이스의 주소입니다. 이 매개 변수는 잔류물을 저장해서는 안 됨을 나타내는 NULL 일 수 있습니다.

pvReserved

형식: void*

예약; 은 NULL이어야 합니다.

반환 값

형식: HRESULT

다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK
조정이 성공적으로 완료되었으며 변경 내용을 다른 개체로 전파해야 합니다.
S_FALSE
조정 작업이 수행되지 않았습니다. 서류 가방 조정자는 초기자의 비트 복사 구현으로 대체하려고 합니다. 이 값은 dwFlags에서 RECONCILEF_ONLYYOUWERECHANGED 설정된 경우에만 반환될 수 있습니다.
REC_S_IDIDTHEUPDATES
조정이 성공적으로 완료되었으며 관련된 모든 개체( Reconcile 메서드를 구현하는 개체 및 rgpmkOtherInput에서 설명하는 다른 모든 개체)가 적절하게 업데이트되었습니다. 따라서 초기자는 변경 내용을 전파하기 위해 추가 작업을 수행할 필요가 없습니다. Reconcile가 이 값을 반환하는 경우 plOutIndex에서 가리키는 변수를 -1L로 설정해야 합니다. Reconcile가 이 값을 반환하는 경우 초기자는 원본 개체의 스토리지를 저장하지 않습니다. 이 값은 dwFlags에서 RECONCILEF_YOUMAYDOTHEUPDATES 설정된 경우에만 반환될 수 있습니다.
REC_S_NOTCOMPLETE
서류 가방 조정자는 화해의 일부를 완료, 하지만 전부는 아니다. 사용자 상호 작용이 필요할 수 있습니다. 변경 내용은 다른 개체로 전파되지 않습니다.
REC_S_NOTCOMPLETEBUTPROPAGATE
서류 가방 조정자는 화해의 일부를 완료, 하지만 전부는 아니다. 사용자 상호 작용이 필요할 수 있습니다. 변경 내용이 다른 개체로 전파됩니다.
REC_E_NORESIDUES
서류 가방 조정자는 잔류물 생성을 지원하지 않으므로 잔류물 요청이 거부됩니다. 개체의 상태는 변경되지 않습니다.
REC_E_ABORTED
서류 가방 조정자가 초기자의 종료 요청에 대한 응답으로 조정을 중지했습니다(자세한 내용은 SetAbortCallback 참조). 개체의 상태가 지정되지 않았습니다.
REC_E_TOODIFFERENT
제공된 문서 버전이 너무 유사하므로 조정을 수행할 수 없습니다.
REC_E_INEEDTODOTHEUPDATES
개체의 Reconcile 구현이 호출되었을 때 RECONCILEF_YOUMAYDOTHEUPDATES 플래그가 설정되지 않았습니다. 이 구현을 수행하려면 dwFlags 매개 변수에서 이 값을 설정해야 합니다.
OLE_E_NOTRUNNING
개체는 이 작업을 수행하기 전에 실행해야 하는 OLE 포함 개체입니다. 개체의 상태는 변경되지 않습니다.
E_UNEXPECTED
알 수 없는 오류입니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 reconcil.h
DLL Shell32.dll(버전 4.0 이상)

추가 정보

IReconcilableObject