Metodo IObjectContext::CreateInstance (comsvcs.h)
Crea un oggetto utilizzando il contesto dell'oggetto corrente.
Sintassi
HRESULT CreateInstance(
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID *ppv
);
Parametri
[in] rclsid
CLSID del tipo di oggetto da creare.
[in] riid
Qualsiasi interfaccia implementata dall'oggetto di cui si vuole creare un'istanza.
[out] ppv
Riferimento all'interfaccia richiesta nel nuovo oggetto . Se l'istanza ha esito negativo, questo parametro viene impostato su NULL.
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
Il componente specificato da clsid non è registrato come componente COM. |
|
Memoria insufficiente per creare un'istanza dell'oggetto. |
|
L'argomento passato nel parametro ppvObj non è valido. |
|
Si è verificato un errore imprevisto. Ciò può verificarsi se un oggetto passa il puntatore IObjectContext a un altro oggetto e l'altro oggetto chiama CreateInstance usando questo puntatore. Un puntatore IObjectContext non è valido al di fuori del contesto dell'oggetto che lo ha originariamente ottenuto. |
Commenti
CreateInstance crea un oggetto COM. Tuttavia, l'oggetto avrà contesto solo se il relativo componente è registrato con COM+.
Quando si crea un oggetto utilizzando CreateInstance, il contesto del nuovo oggetto viene derivato dal IObjectContext dell'oggetto corrente e dalle proprietà dichiarative del componente del nuovo oggetto. Il nuovo oggetto viene sempre eseguito all'interno della stessa attività dell'oggetto che lo ha creato. Se l'oggetto corrente dispone di una transazione, l'attributo della transazione del componente del nuovo oggetto determina se il nuovo oggetto viene eseguito nell'ambito di tale transazione.
Se l'impostazione dell'attributo della transazione del componente richiede una transazione o supporta le transazioni, il nuovo oggetto eredita la transazione dell'autore. Se l'attributo di transazione del componente richiede una nuova transazione, COM+ avvia una nuova transazione per il nuovo oggetto. Se l'attributo di transazione del componente non supporta le transazioni, il nuovo oggetto non viene eseguito in alcuna transazione.
CreateInstance restituisce sempre l'interfaccia IUnknown nell'oggetto appena creato. È necessario eseguire immediatamente il cast del valore restituito all'interfaccia tramite cui si desidera comunicare con il nuovo oggetto. L'ID di interfaccia passato nel parametro riid non deve essere la stessa interfaccia di quella in cui è stato eseguito il cast del valore restituito, ma deve essere un'interfaccia implementata dall'oggetto di cui si sta creando un'istanza.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | comsvcs.h |