다음을 통해 공유


CreateGenericComposite 함수(objbase.h)

두 모니커의 제네릭 컴퍼지션을 수행하고 결과 복합 모니커에 대한 포인터를 제공합니다.

구문

HRESULT CreateGenericComposite(
  [in, optional] LPMONIKER pmkFirst,
  [in, optional] LPMONIKER pmkRest,
  [out]          LPMONIKER *ppmkComposite
);

매개 변수

[in, optional] pmkFirst

pmkRest가 가리키는 모니커의 왼쪽에 구성할 모니커에 대한 포인터입니다. 제네릭 복합을 포함하여 모든 종류의 모니커를 가리킬 수 있습니다.

[in, optional] pmkRest

pmkFirst가 가리키는 모니커 오른쪽에 구성될 모니커에 대한 포인터입니다. 제네릭 복합을 포함하여 pmkRest 모니커 형식과 호환되는 모든 종류의 모니커를 가리킬 수 있습니다.

[out] ppmkComposite

pmkFirstpmkRest를 구성한 결과인 복합 모니커 개체에 대한 인터페이스 포인터를 수신하는 IMoniker* 포인터 변수의 주소입니다. 이 개체는 IMoniker의 OLE 복합 모니커 구현을 지원합니다. 성공하면 함수가 모니커에서 AddRef 를 호출하고 호출자는 Release를 호출합니다. pmkFirst 또는 pmkRestNULL인 경우 제공된 포인터는 NULL이 아닌 포인터입니다. pmkFirstpmkRest가 모두 NULL이거나 오류가 발생하면 반환된 포인터는 NULL입니다.

반환 값

이 함수는 E_OUTOFMEMORY 표준 반환 값과 다음 값을 반환할 수 있습니다.

반환 코드 Description
S_OK
입력 모니커가 성공적으로 구성되었습니다.
MK_E_SYNTAX
경로 구문의 오류로 인해 두 모니커를 구성할 수 없습니다(예: pmkFirst와 pmkRest가 모두 절대 경로를 기반으로 하는 파일 모니커인 경우).

설명

CreateGenericComposite 는 두 모니커를 하나로 조인합니다. 조인되는 모니커 클래스는 컴퍼지션 규칙에 따라 다를 수 있습니다. 제네릭 컴퍼지션 기능을 포함하는 IMoniker::ComposeWith 구현 내에서 IMoniker 인터페이스를 구현하여 새 모니커 클래스를 작성하는 경우에만 이 함수를 호출합니다.

모니커 공급자는 ComposeWith 를 호출하여 두 모니커를 함께 구성해야 합니다. ComposeWith의 구현은 클래스에 적합한 경우(OLE 구현과 마찬가지로) 동일한 클래스의 두 모니커가 결합된 제네릭이 아닌 컴퍼지션을 먼저 수행하려고 시도해야 합니다. 이것이 불가능한 경우 구현은 CreateGenericComposite 를 호출하여 컴퍼지션 규칙 내에서 서로 다른 클래스의 두 모니커를 결합하는 제네릭 컴퍼지션을 수행할 수 있습니다. 새 모니커 클래스를 작성하는 경우 제네릭이 아닌 컴퍼지션의 새 형식을 정의할 수 있습니다.

두 모니커를 구성하는 과정에서 CreateGenericComposite 는 가능한 모든 단순화를 만듭니다. pmkFirst는 제네릭 복합 모니커, A + B + C, pmkRest는 제네릭 복합 모니커, C -1 + B -1 + Z(여기서 C -1은 C의 역)인 예제를 고려합니다. 함수는 먼저 C에서 C -1로 구성하며 아무 것도 구성하지 않습니다. 그런 다음 B와 B -1을 아무 것도 구성하지 않습니다. 마지막으로 A에서 Z로 구성하고 제네릭 복합 모니커 A + Z에 대한 포인터를 제공합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 objbase.h
라이브러리 Ole32.lib
DLL Ole32.dll
API 세트 ext-ms-win-com-ole32-l1-1-5(Windows 10 버전 10.0.15063에 도입됨)

추가 정보

Imoniker

IMoniker::ComposeWith