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
다음 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
조정이 성공적으로 완료되었으며 변경 내용을 다른 개체로 전파해야 합니다. |
|
조정 작업이 수행되지 않았습니다. 서류 가방 조정자는 초기자의 비트 복사 구현으로 대체하려고 합니다. 이 값은 dwFlags에서 RECONCILEF_ONLYYOUWERECHANGED 설정된 경우에만 반환될 수 있습니다. |
|
조정이 성공적으로 완료되었으며 관련된 모든 개체( Reconcile 메서드를 구현하는 개체 및 rgpmkOtherInput에서 설명하는 다른 모든 개체)가 적절하게 업데이트되었습니다. 따라서 초기자는 변경 내용을 전파하기 위해 추가 작업을 수행할 필요가 없습니다. Reconcile가 이 값을 반환하는 경우 plOutIndex에서 가리키는 변수를 -1L로 설정해야 합니다. Reconcile가 이 값을 반환하는 경우 초기자는 원본 개체의 스토리지를 저장하지 않습니다. 이 값은 dwFlags에서 RECONCILEF_YOUMAYDOTHEUPDATES 설정된 경우에만 반환될 수 있습니다. |
|
서류 가방 조정자는 화해의 일부를 완료, 하지만 전부는 아니다. 사용자 상호 작용이 필요할 수 있습니다. 변경 내용은 다른 개체로 전파되지 않습니다. |
|
서류 가방 조정자는 화해의 일부를 완료, 하지만 전부는 아니다. 사용자 상호 작용이 필요할 수 있습니다. 변경 내용이 다른 개체로 전파됩니다. |
|
서류 가방 조정자는 잔류물 생성을 지원하지 않으므로 잔류물 요청이 거부됩니다. 개체의 상태는 변경되지 않습니다. |
|
서류 가방 조정자가 초기자의 종료 요청에 대한 응답으로 조정을 중지했습니다(자세한 내용은 SetAbortCallback 참조). 개체의 상태가 지정되지 않았습니다. |
|
제공된 문서 버전이 너무 유사하므로 조정을 수행할 수 없습니다. |
|
개체의 Reconcile 구현이 호출되었을 때 RECONCILEF_YOUMAYDOTHEUPDATES 플래그가 설정되지 않았습니다. 이 구현을 수행하려면 dwFlags 매개 변수에서 이 값을 설정해야 합니다. |
|
개체는 이 작업을 수행하기 전에 실행해야 하는 OLE 포함 개체입니다. 개체의 상태는 변경되지 않습니다. |
|
알 수 없는 오류입니다. |
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | reconcil.h |
DLL | Shell32.dll(버전 4.0 이상) |