共用方式為


coCreateInstanceFromApp 函式 (combaseapi.h)

從應用程式容器內,在特定計算機上建立特定類別的實例。

語法

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,表示實例正在建立為匯總的一部分, 而 punkOuter 則用來作為新實例的 IUnknown 控制。 目前不支援跨進程或跨計算機匯總。 當具現化進程外的物件時,如果 punkOuterNULL,則會傳回CLASS_E_NOAGGREGATION。

[in] dwClsCtx

CLSCTX 列舉中的值。

[in, optional] reserved

保留供未來使用。

[in] dwCount

pResults 中的結構數目。 此值必須大於 0。

[in, out] pResults

MULTI_QI 結構的陣列。 每個結構都有三個成員:要求介面的標識子 (pIID) 、傳回介面指標的位置 (pItf) ,以及 呼叫 QueryInterface (hr) 的傳回值。

傳回值

此函式可以傳回標準傳回值E_INVALIDARG,以及下列值。

傳回碼 描述
S_OK
表示成功。
REGDB_E_CLASSNOTREG
指定的類別未在註冊資料庫中註冊,或應用程式容器中不支援 類別。 也可以指出您在 CLSCTX 列舉中所要求的伺服器類型未註冊,或登錄中伺服器類型的值已損毀。
CLASS_E_NOAGGREGATION
此類別無法建立為匯總的一部分。
CO_S_NOTALLINTERFACES
已成功擷取 pResults 陣列中要求的所有介面,但至少有一個介面。 pResults 中每個MULTI_QI結構的 hr 成員會指出是否傳回特定介面S_OK或E_NOINTERFACE。
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

另請參閱

CoCreateInstanceEx

融合 (非受控 API 參考)