Funzione CoGetDefaultContext (combaseapi.h)
Recupera un riferimento al contesto predefinito dell'appartamento specificato.
Sintassi
HRESULT CoGetDefaultContext(
[in] APTTYPE aptType,
[in] REFIID riid,
[out] void **ppv
);
Parametri
[in] aptType
Tipo di appartamento del contesto predefinito richiesto. Questo parametro può avere uno dei valori seguenti.
Il valore APTTYPE APTTYPE_STA (0) non è supportato. Un processo può contenere più appartamenti a thread singolo, ognuno con il proprio contesto, in modo che CoGetDefaultContext non possa determinare quale STA è di interesse. Pertanto, questa funzione restituisce E_INVALIDARG se è specificato APTTYPE_STA.
[in] riid
Identificatore dell'interfaccia (IID) dell'interfaccia richiesta nel contesto predefinito. In genere, il chiamante richiede IID_IObjectContext. Il contesto predefinito non supporta tutte le interfacce del contesto dell'oggetto normale.
[out] ppv
Riferimento all'interfaccia specificata da riid nel contesto predefinito. Se il componente dell'oggetto non è configurato, ovvero il componente dell'oggetto non è stato importato in un'applicazione COM+ o se la funzione CoGetDefaultContext viene chiamata da un costruttore o da un metodo IUnknown , questo parametro è impostato su un puntatore NULL .
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
Uno dei parametri non è valido. |
|
Il chiamante non si trova in un appartamento inizializzato. |
|
Il contesto dell'oggetto non supporta l'interfaccia specificata da riid. |
Commenti
Ogni appartamento COM ha un contesto speciale denominato contesto predefinito. Un contesto predefinito è diverso da tutti gli altri contesti non predefiniti in un appartamento perché non fornisce servizi di runtime. Non supporta tutte le normali interfacce di contesto dell'oggetto.
Il contesto predefinito viene usato anche da istanze di componenti COM non configurati, ovvero componenti che non fanno parte di un'applicazione COM+, quando vengono creati da un appartamento che non supporta il modello di threading. In altre parole, se un oggetto COM crea un'istanza di un componente non configurato e il nuovo oggetto non può essere aggiunto al contesto del relativo creatore a causa del relativo modello di threading, il nuovo oggetto viene invece aggiunto al contesto predefinito di un appartamento che supporta il modello di threading.
Un oggetto non deve mai passare un riferimento IObjectContext a un altro oggetto. Se si passa un riferimento IObjectContext a un altro oggetto, non è più un riferimento valido.
Quando un oggetto ottiene un riferimento a un oggetto IObjectContext, deve rilasciare l'oggetto IObjectContext al termine dell'oggetto.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | combaseapi.h |
Libreria | Ole32.lib |
DLL | Ole32.dll |