CoCreateInstanceFromApp 함수(combaseapi.h)
앱 컨테이너 내에서 특정 컴퓨터에 특정 클래스의 instance 만듭니다.
구문
HRESULT CoCreateInstanceFromApp(
[in] REFCLSID Clsid,
[in, optional] IUnknown *punkOuter,
[in] DWORD dwClsCtx,
[in, optional] PVOID reserved,
[in] DWORD dwCount,
[in, out] MULTI_QI *pResults
);
매개 변수
[in] Clsid
만들 개체의 CLSID입니다.
[in, optional] punkOuter
이 매개 변수가 NULL이 아닌 경우 는 instance 집계의 일부로 생성되고 있음을 나타내고, punkOuter는 새 instance 제어하는 IUnknown으로 사용됩니다. 집계는 현재 크로스 프로세스 또는 컴퓨터 간 지원되지 않습니다. 프로세스에서 개체를 인스턴스화할 때 punkOuter 가 NULL이 아닌 경우 CLASS_E_NOAGGREGATION 반환됩니다.
[in] dwClsCtx
CLSCTX 열거형의 값입니다.
[in, optional] reserved
다음에 사용하도록 예약됩니다.
[in] dwCount
pResults의 구조체 수입니다. 이 값은 0보다 커야 합니다.
[in, out] pResults
MULTI_QI 구조체의 배열입니다. 각 구조체에는 요청된 인터페이스(pIID)의 식별자, 인터페이스 포인터(pItf)를 반환할 위치 및 QueryInterface 호출의 반환 값(hr)의 세 멤버가 있습니다.
반환 값
이 함수는 E_INVALIDARG 표준 반환 값과 다음 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
성공을 나타냅니다. |
|
지정된 클래스가 등록 데이터베이스에 등록되지 않았거나 앱 컨테이너에서 클래스가 지원되지 않습니다. CLSCTX 열거형에서 요청한 서버 유형이 등록되지 않았거나 레지스트리의 서버 형식 값이 손상되었음을 나타낼 수도 있습니다. |
|
이 클래스는 집계의 일부로 만들 수 없습니다. |
|
하나 이상이지만 pResults 배열에서 요청된 모든 인터페이스가 성공적으로 검색되지는 않았습니다. pResults의 각 MULTI_QI 구조체의 hr 멤버는 특정 인터페이스가 반환되었는지 여부를 S_OK 또는 E_NOINTERFACE 나타냅니다. |
|
pResults 배열에서 요청된 인터페이스가 검색되지 않았습니다. |
설명
CoCreateInstanceFromApp 함수는 CoCreateInstanceEx 함수와 동일하며 다음과 같은 차이점이 있습니다.
- CoCreateInstanceFromApp 함수는 애플리케이션 컨텍스트 및 HKLM\SOFTWARE\Classes\CLSID 레지스트리 하이브에서만 클래스 등록을 읽습니다.
- 앱 컨테이너에서 지원되는 기본 제공 클래스만 제공됩니다. 타사 코드에 의해 설치된 모든 클래스와 많은 Windows 클래스를 포함하여 지원되지 않는 클래스를 활성화하려고 하면 오류 코드 REGDB_E_CLASSNOTREG 발생합니다.
- CoCreateInstanceFromApp 함수는 Windows 스토어 앱에서 사용할 수 있습니다. 데스크톱 애플리케이션은 이 함수를 호출할 수 있지만 Windows 스토어 앱과 동일한 제한 사항이 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | combaseapi.h |
라이브러리 | Combase.lib |
DLL | Combase.dll |