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 控制。 目前不支援跨進程或跨計算機匯總。 當具現化進程外的物件時,如果 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,以及下列值。
傳回碼 | 描述 |
---|---|
|
表示成功。 |
|
指定的類別未在註冊資料庫中註冊,或應用程式容器中不支援 類別。 也可以指出您在 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 |