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
pmkFirst 및 pmkRest를 구성한 결과인 복합 모니커 개체에 대한 인터페이스 포인터를 수신하는 IMoniker* 포인터 변수의 주소입니다. 이 개체는 IMoniker의 OLE 복합 모니커 구현을 지원합니다. 성공하면 함수가 모니커에서 AddRef 를 호출하고 호출자는 Release를 호출합니다. pmkFirst 또는 pmkRest가 NULL인 경우 제공된 포인터는 NULL이 아닌 포인터입니다. pmkFirst와 pmkRest가 모두 NULL이거나 오류가 발생하면 반환된 포인터는 NULL입니다.
반환 값
이 함수는 E_OUTOFMEMORY 표준 반환 값과 다음 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
입력 모니커가 성공적으로 구성되었습니다. |
|
경로 구문의 오류로 인해 두 모니커를 구성할 수 없습니다(예: 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에 도입됨) |