CoCreateInstanceFromApp-Funktion (combaseapi.h)

Erstellt eine instance einer bestimmten Klasse auf einem bestimmten Computer aus einem App-Container.

Syntax

HRESULT CoCreateInstanceFromApp(
  [in]           REFCLSID Clsid,
  [in, optional] IUnknown *punkOuter,
  [in]           DWORD    dwClsCtx,
  [in, optional] PVOID    reserved,
  [in]           DWORD    dwCount,
  [in, out]      MULTI_QI *pResults
);

Parameter

[in] Clsid

Die CLSID des zu erstellenden Objekts.

[in, optional] punkOuter

Wenn dieser Parameter nicht NULL ist, gibt an, dass die instance als Teil eines Aggregats erstellt wird, und PunkOuter als die neue instance verwendet werden soll, die IUnknown steuert. Die Aggregation wird derzeit nicht prozess- oder computerübergreifend unterstützt. Beim Instanziieren eines Objekts aus dem Prozess wird CLASS_E_NOAGGREGATION zurückgegeben, wenn punkOuter nicht NULL ist.

[in] dwClsCtx

Ein Wert aus der CLSCTX-Enumeration .

[in, optional] reserved

Für die zukünftige Verwendung reserviert.

[in] dwCount

Die Anzahl der Strukturen in pResults. Dieser Wert muss größer als 0 sein.

[in, out] pResults

Ein Array von MULTI_QI Strukturen. Jede Struktur verfügt über drei Member: den Bezeichner für eine angeforderte Schnittstelle (pIID), den Speicherort zum Zurückgeben des Schnittstellenzeigers (pItf) und den Rückgabewert des Aufrufs von QueryInterface (hr).

Rückgabewert

Diese Funktion kann den Standardrückgabewert E_INVALIDARG sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Gibt die erfolgreiche Ausführung an.
REGDB_E_CLASSNOTREG
Eine angegebene Klasse wird nicht in der Registrierungsdatenbank registriert, oder die Klasse wird im App-Container nicht unterstützt. Kann auch angeben, dass der Servertyp, den Sie in der CLSCTX-Enumeration angefordert haben, nicht registriert ist oder dass die Werte für die Servertypen in der Registrierung beschädigt sind.
CLASS_E_NOAGGREGATION
Diese Klasse kann nicht als Teil eines Aggregats erstellt werden.
CO_S_NOTALLINTERFACES
Mindestens eine, aber nicht alle im pResults-Array angeforderten Schnittstellen wurden erfolgreich abgerufen. Der hr-Member jeder MULTI_QI-Struktur in pResults gibt mit S_OK oder E_NOINTERFACE an, ob die spezifische Schnittstelle zurückgegeben wurde.
E_NOINTERFACE
Keine der im pResults-Array angeforderten Schnittstellen wurde erfolgreich abgerufen.

Hinweise

Die CoCreateInstanceFromApp-Funktion ist identisch mit der CoCreateInstanceEx-Funktion , mit den folgenden Unterschieden.

  • Die CoCreateInstanceFromApp-Funktion liest Klassenregistrierungen nur aus Anwendungskontexten und aus der Registrierungsstruktur HKLM\SOFTWARE\Classes\CLSID.
  • Es werden nur integrierte Klassen bereitgestellt, die im App-Container unterstützt werden. Versuche, nicht unterstützte Klassen zu aktivieren, einschließlich aller Klassen, die von Drittanbietercode installiert werden, sowie viele Windows-Klassen führen zu Fehlercode REGDB_E_CLASSNOTREG.
  • Die CoCreateInstanceFromApp-Funktion ist für Windows Store-Apps verfügbar. Desktopanwendungen können diese Funktion aufrufen, haben jedoch die gleichen Einschränkungen wie Windows Store-Apps.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile combaseapi.h
Bibliothek Combase.lib
DLL Combase.dll

Weitere Informationen

CoCreateInstanceEx

Fusion (Nicht verwaltete API-Referenz)