Condividi tramite


Funzione CoCreateInstanceFromApp (combaseapi.h)

Crea un'istanza di una classe specifica in un computer specifico dall'interno di un contenitore di app.

Sintassi

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

Parametri

[in] Clsid

CLSID dell'oggetto da creare.

[in, optional] punkOuter

Se questo parametro non NULL indica che l'istanza viene creata come parte di un'aggregazione e punkOuter deve essere usata come controllo della nuova istanza di IUnknown. L'aggregazione non è attualmente supportata tra processi o cross-computer. Quando si crea un'istanza di un oggetto fuori processo, CLASS_E_NOAGGREGATION verrà restituito se punkOuter non è NULL.

[in] dwClsCtx

Valore dell'enumerazione CLSCTX .

[in, optional] reserved

Riservato per utilizzi futuri.

[in] dwCount

Numero di strutture in pResults. Questo valore deve essere maggiore di 0.

[in, out] pResults

Matrice di strutture MULTI_QI . Ogni struttura ha tre membri: l'identificatore per un'interfaccia richiesta (pIID), il percorso per restituire il puntatore dell'interfaccia (pItf) e il valore restituito della chiamata a QueryInterface (hr).

Valore restituito

Questa funzione può restituire il valore restituito standard E_INVALIDARG, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Indica l'esito positivo dell'operazione.
REGDB_E_CLASSNOTREG
Una classe specificata non è registrata nel database di registrazione o la classe non è supportata nel contenitore dell'app. Può anche indicare che il tipo di server richiesto nell'enumerazione CLSCTX non è registrato o i valori per i tipi di server nel Registro di sistema sono danneggiati.
CLASS_E_NOAGGREGATION
Impossibile creare questa classe come parte di un'aggregazione.
CO_S_NOTALLINTERFACES
Almeno uno, ma non tutte le interfacce richieste nella matrice pResults sono state recuperate correttamente. Il membro hr di ogni struttura MULTI_QI in pResults indica con S_OK o E_NOINTERFACE se l'interfaccia specifica è stata restituita.
E_NOINTERFACE
Nessuna delle interfacce richieste nella matrice pResults è stata recuperata correttamente.

Commenti

La funzione CoCreateInstanceFromApp è la stessa della funzione CoCreateInstanceEx , con le differenze seguenti.

  • La funzione CoCreateInstanceFromApp legge le registrazioni delle classi solo dai contesti dell'applicazione e dall'hive del Registro di sistema HKLM\SOFTWARE\Classes\CLSID.
  • Vengono fornite solo classi predefinite supportate nel contenitore dell'app. Tenta di attivare classi non supportate, incluse tutte le classi installate dal codice di terze parti e molte classi di Windows, comportano il codice di errore REGDB_E_CLASSNOTREG.
  • La funzione CoCreateInstanceFromApp è disponibile per le app di Windows Store. Le applicazioni desktop possono chiamare questa funzione, ma hanno le stesse restrizioni delle app di Windows Store.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione combaseapi.h
Libreria Combase.lib
DLL Combase.dll

Vedi anche

CoCreateInstanceEx

Fusion (Informazioni di riferimento sulle API non gestite)