Metodo ILocalRegistryCorrected.CreateInstance

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.
  • 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

Vedere anche

Riferimenti

ILocalRegistryCorrected Interfaccia

Spazio dei nomi Microsoft.VisualStudio.Shell.Flavor