다음을 통해 공유


IMsmMerge2::MergeEx 메서드(mergemod.h)

MergeEx 메서드는 현재 데이터베이스와 현재 모듈의 병합을 실행합니다. 통합은 모듈의 구성 요소를 Feature로 식별된 기능에 연결합니다. 모듈 디렉터리 트리의 루트는 RedirectDir에서 지정한 위치로 리디렉션됩니다. 자세한 내용은 Merge 개체의 MergeEx 메서드를 참조하세요.

구문

HRESULT MergeEx(
  [in] const BSTR Feature,
  [in] const BSTR RedirectDir,
  [in] IUnknown   *pConfiguration
);

매개 변수

[in] Feature

데이터베이스에 있는 기능의 이름입니다. LPCWSTRBSTR 대신 사용할 수 있습니다.

[in] RedirectDir

데이터베이스의 Directory 테이블에 있는 항목의 키입니다. LPCWSTRBSTR 대신 사용할 수 있습니다. 이 매개 변수는 NULL 또는 빈 문자열일 수 있습니다.

[in] pConfiguration

pConfiguration 인수는 클라이언트에서 구현하는 인터페이스입니다. 인수는 NULL일 수 있습니다. 이 인수의 존재는 클라이언트 도구가 구성 가능한 병합 모듈을 수정할 수 있음을 나타냅니다. 이 인수가 있으면 클라이언트가 구성 가능한 특정 항목에 대한 구성 데이터를 제공할 필요가 없습니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

의미
E_OUTOFMEMORY
시스템에 메모리가 부족하여 작업을 완료할 수 없습니다.
E_INVALIDARG
인수 중 하나가 잘못되었습니다.
E_FAIL
오류로 인해 병합이 중지되었습니다. 일부 테이블이 병합되지 않았을 수 있습니다. 자세한 내용은 설명 부분을 참조하세요.
S_FALSE
함수가 성공했지만 오류가 발생하여 병합 자체가 유효하지 않을 수 있습니다.
S_OK
함수가 성공했습니다.

설명

이 함수는 현재 데이터베이스와 현재 모듈의 병합을 실행합니다. 모듈 디렉터리 트리의 루트는 RedirectDir에서 지정한 위치로 리디렉션됩니다. 제외를 포함하여 통합 충돌이 발생하면 나중에 검색할 수 있도록 오류 열거자에 배치되지만 통합이 실패하지는 않습니다. get_Errors 함수를 사용하여 오류를 검색할 수 있습니다. 오류 및 정보 메시지는 현재 로그 파일에 게시됩니다.

통합이 완료되면 모듈의 구성 요소가 Feature로 식별된 기능에 연결됩니다. 이 기능은 이미 존재해야 하며 생성되지 않았습니다. Connect 함수를 사용하여 모듈을 추가 기능에 연결할 수 있습니다.

bCommitTRUE로 설정된 CloseDatabase 함수가 호출되지 않는 한 데이터베이스에 대한 변경 내용은 디스크에 저장되지 않습니다.

잘못된 모듈 구성으로 인해 병합이 실패하면 함수는 E_FAIL 반환합니다. 여기에는 msmErrorType 오류(msmErrorBadNullSubstitution, msmErrorBadSubstitutionType, msmErrorBadNullResponse, msmErrorMissingConfigItem 및 msmErrorDataRequestFailed)가 포함됩니다. 이러한 오류로 인해 오류가 발생하면 통합이 즉시 중지됩니다. MergeEx가 E_FAIL을 반환할 때 오류 개체가 여전히 열거자에 추가됩니다. msmErrorType 오류에 대한 자세한 내용은 get_Type 함수(오류 개체)를 참조하세요. 다른 모든 오류로 인해 MergeEx가 S_FALSE를 반환하고 통합이 계속되도록 합니다.

요구 사항

   
지원되는 최소 클라이언트 Mergemod.dll 2.0 이상
대상 플랫폼 Windows
헤더 mergemod.h
DLL Mergemod.dll

참고 항목

통합 모듈 자동화