Sdílet prostřednictvím


ILocalRegistry.CreateInstance – metoda (Guid, Object, Guid, UInt32, IntPtr)

 

Vytvoří instanci třídy uvedené v místním registru.

Obor názvů:   Microsoft.VisualStudio.Shell.Interop
Sestavení:  Microsoft.VisualStudio.Shell.Interop (v Microsoft.VisualStudio.Shell.Interop.dll)

Syntaxe

int CreateInstance(
    Guid clsid,
    object punkOuter,
    [InAttribute] ref Guid riid,
    uint dwFlags,
    out IntPtr ppvObj
)
int CreateInstance(
    Guid clsid,
    Object^ punkOuter,
    [InAttribute] Guid% riid,
    unsigned int dwFlags,
    [OutAttribute] IntPtr% ppvObj
)
abstract CreateInstance : 
        clsid:Guid *
        punkOuter:Object *
        riid:Guid byref *
        dwFlags:uint32 *
        ppvObj:nativeint byref -> int
Function CreateInstance (
    clsid As Guid,
    punkOuter As Object,
    <InAttribute> ByRef riid As Guid,
    dwFlags As UInteger,
    <OutAttribute> ByRef ppvObj As IntPtr
) As Integer

Parametry

  • clsid
    [v] Identifikátor (třídy CLSID) požadovaný objekt třídy.Toto je identifikátor CLSID přidružených dat a kód, který slouží k vytvoření objektu.
  • punkOuter
    [v] Ukazatel na instanci ovládání IUnknown souhrnu, který používá nově vytvořený objekt.Hodnotu null znamená, že objekt není vytváření jako součást agregační.Pokud hodnotu null, je ukazatel na objekt agregační IUnknown rozhraní (řízení IUnknown).
  • riid
    [v] Rozhraní pro komunikaci s objektem.Například:IID_IClassFactory
  • ppvObj
    [výstup] Adresa ukazatel Proměnná, která obdrží ukazatele rozhraní v riid.Po úspěšném návratu ppvObj obsahuje ukazatele požadované rozhraní.Po selhání ppvObj obsahuje null.

Vrácená hodnota

Type: System.Int32

Pokud metoda uspěje, vrací S_OK.Pokud se nezdaří, vrátí kód chyby.

Poznámky

Podpis COM

Z objext.idl:

HRESULT ILocalRegistry::CreateInstance(
   [in] CLSID clsid,
   [in] IUnknown* punkOuter,
   [in] REFIID riid,
   [in] DWORD dwFlags,
   [out] void** ppvObj
);

Tato metoda je ekvivalentní modelu COM CoCreateInstance funkce.Vytvoří jediný Neinicializovaný objekt druhu přidružené zadaný identifikátor CLSID a vrátí všechny ukazatele požadované rozhraní.

CreateInstancevyhledá objekt třídy v místním registru registrované objekty, připojí k objektu třídy přidružené zadaný identifikátor CLSID, vytvoří instanci Neinicializovaný objekt a uvolní objekt třídy.Tato metoda zapouzdří volání funkce COM CoGetClassObject k získání ukazatele na objekt třídy Factory, CreateInstance k vytvoření instance objektu a k uvolnění odkaz na objekt třídy Factory.

Volání CreateInstance kdy chcete vytvořit jednu instanci objektu na základě identifikátor CLSID a není nutné zachovat objektu class factory vytvořit další instance objektu.Chcete-li vytvořit více objektů z jedné třídy objektu, použijte GetClassObjectOfClsid metoda.

Tuto metodu objekt registruje místní podregistru (například [HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\CLSID]).V této části registru InProcServer32 slouží jako hodnotu než podklíč.Podporujeme konkretizujete objekty pouze na hlavní podproces uživatelského rozhraní.

Zadejte hodnotu CLSCTX_INPROC_SERVER pro dwFlags parametru vytvořit instanci objektu místně.Pokud tuto hodnotu nezadáte, bude objekt bude vytvořena instance s použitím modelu COM CoCreateInstance funkce.

Viz také

ILocalRegistry – rozhraní
Microsoft.VisualStudio.Shell.Interop – obor názvů

Zpátky na začátek