Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea un'istanza di una classe elencata nel Registro di sistema locale.
Spazio dei nomi: Microsoft.VisualStudio.Shell.Flavor
Assembly: Microsoft.VisualStudio.Shell.11.0 (in Microsoft.VisualStudio.Shell.11.0.dll)
Sintassi
'Dichiarazione
Function CreateInstance ( _
clsid As Guid, _
punkOuterIUnknown As IntPtr, _
ByRef riid As Guid, _
dwFlags As UInteger, _
<OutAttribute> ByRef ppvObj As IntPtr _
) As Integer
int CreateInstance(
Guid clsid,
IntPtr punkOuterIUnknown,
ref Guid riid,
uint dwFlags,
out IntPtr ppvObj
)
Parametri
- clsid
Tipo: System.Guid
[in] Identificatore di classe (CLSID) dell'oggetto richiesto.Si tratta del CLSID associato ai dati e il codice utilizzato per creare l'oggetto.
- punkOuterIUnknown
Tipo: System.IntPtr
[in] Puntatore all'interfaccia di IUnknown dell'oggetto appena creato.Il valore null indicare che l'oggetto non viene creato come parte di un aggregato.Se non Null, questo è un puntatore a IUnknowndi aggregazione dell'oggetto.
- riid
Tipo: System.Guid%
[in] Interfaccia per essere utilizzato per comunicare con l'oggetto.Ad esempio, IID_IClassFactory.
- dwFlags
Tipo: System.UInt32
[in] Flag che controllano la creazione di un'istanza dell'enumerazione di CLSCTX .specifica un valore di CLSCTX_INPROC_SERVER.
- ppvObj
Tipo: System.IntPtr%
[out] L'indirizzo di una variabile puntatore che riceve un puntatore a interfaccia ha richiesto in riid.Sul ritorno, ppvObj contiene un puntatore a interfaccia richiesto.Si verifica un errore, ppvObj contiene nullriferimento null (Nothing in Visual Basic).
Valore restituito
Tipo: System.Int32
Se il metodo ha esito positivo, restituisce S_OK.Se non riesce, restituisce un codice di errore.
Note
Il metodo di CreateInstance è equivalente alla funzione di CoCreateInstance di COM.Crea un singolo oggetto non inizializzata del tipo associato con il CLSID specificato e restituisce tutti i puntatori a interfaccia necessari.
CreateInstance cerca oggetto classe nel Registro di sistema locale degli oggetti registrati, si connette all'oggetto di classe associato al CLSID specificato, crea un'istanza non inizializzata dell'oggetto e rilascia l'oggetto classe.Questo metodo include le chiamate alla funzione CoGetClassObject COM per ottenere un puntatore a class factory dell'oggetto, a CreateInstance di creare un'istanza dell'oggetto e a rilasciare il riferimento all'oggetto class factory dell'oggetto.
[!NOTA]
Chiamare CreateInstance quando si desidera creare una singola istanza di un oggetto basato su un CLSID e non è necessario mantenere l'oggetto class factory per creare altre istanze dell'oggetto.Per creare più oggetti da un singolo oggetto di classe, utilizzare il metodo di GetClassObjectOfClsid .
Questo metodo registra un oggetto nell'hive locali del Registro di sistema, ad esempio [HKEY_LOCAL_MACHINE \Software\Microsoft\VisualStudio\8.0\CLSID]).In questa sezione del Registro di sistema, InProcServer32 viene utilizzato come valore anziché una sottochiave.Supportiamo solo creare un'istanza degli oggetti nel thread principale dell'interfaccia utente.
Specificare un valore di CLSCTX_INPROC_SERVER per il parametro di dwFlags per creare un'istanza dell'oggetto in locale.Se non si specifica questo valore, l'oggetto verrà creata un'istanza globale utilizzando la funzione di CoCreateInstance di COM.
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.