Partager via


ILocalRegistryCorrected.CreateInstance, méthode

Crée une instance d'une classe répertoriée dans le Registre local.

Espace de noms :  Microsoft.VisualStudio.Shell.Flavor
Assembly :  Microsoft.VisualStudio.Shell.11.0 (dans Microsoft.VisualStudio.Shell.11.0.dll)

Syntaxe

'Déclaration
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
)

Paramètres

  • clsid
    Type : System.Guid
    [in] identificateur de classe (CLSID) de l'objet demandé.C'est CLSID associé avec les données et le code qui est utilisé pour créer l'objet.
  • punkOuterIUnknown
    Type : System.IntPtr
    [in] pointeur à l'interface d'IUnknown de l'objet nouvellement créée.Une valeur de null indique que l'objet n'est pas créé dans le cadre d'un agrégat.Si non null, c'est un pointeur à IUnknown de l'objet global.
  • riid
    Type : System.Guid%
    [in] interface pour être utilisé pour communiquer avec l'objet.Par exemple, IID_IClassFactory.
  • ppvObj
    Type : System.IntPtr%
    [out] l'adresse de la variable pointeur qui reçoit le pointeur d'interface l'a demandé dans riid.Lors de le retour réussi, ppvObj contient le pointeur d'interface demandé.Lors de l'échec, ppvObj contient nullRéférence Null (Nothing en Visual Basic).

Valeur de retour

Type : System.Int32
Si la méthode réussit, elle retourne S_OK.En cas d'échec, un code d'erreur est retourné.

Remarques

La méthode d'CreateInstance est équivalente à la fonction d'CoCreateInstance COM.Elle crée un objet non initialisé unique du type associé avec CLSID spécifié et retourne tous les pointeurs d'interface demandés.

recherche d'CreateInstance l'objet de classe dans le Registre local des objets enregistrés, se connecte à l'objet de classe associé avec CLSID spécifié, crée une instance non initialisée de l'objet, et libère l'objet de classe.Cette méthode encapsule des appels à la fonction CoGetClassObject de COM pour obtenir un pointeur à la fabrique de classe de l'objet, à CreateInstance à créer une instance de l'objet, et à libérer la référence à la fabrique de classe de l'objet.

[!REMARQUE]

Appelez CreateInstance lorsque vous souhaitez créer une instance unique d'un objet selon CLSID et n'avez pas besoin de conserver l'objet de fabrique de classe pour créer d'autres instances de l'objet.Pour créer de plusieurs objets d'un objet de classe unique, utilisez la méthode d'GetClassObjectOfClsid.

Cette méthode enregistre un objet dans la ruche locale de Registre (par exemple, [HKEY_LOCAL_MACHINE\logiciel\Microsoft\VisualStudio\8,0\CLSID]).De cette section du Registre, InProcServer32 est utilisé comme valeur plutôt qu'une sous-clé.Nous prenons en charge uniquement instancier des objets sur le thread d'interface utilisateur principal.

Spécifiez une valeur d'CLSCTX_INPROC_SERVER pour le paramètre d'dwFlags pour instancier l'objet localement.Si vous ne spécifiez pas cette valeur, alors l'objet sera instancié globalement à l'aide de la fonction d'CoCreateInstance COM.

Sécurité .NET Framework

Voir aussi

Référence

ILocalRegistryCorrected Interface

Microsoft.VisualStudio.Shell.Flavor, espace de noms