Aracılığıyla paylaş


ILocalRegistry.CreateInstance Yöntem (Guid, Object, Guid, UInt32, IntPtr)

 

Yerel kayıt defterinde listelenen bir sınıfının bir örneğini oluşturur.

Ad Alanı:   Microsoft.VisualStudio.Shell.Interop
Derleme:  Microsoft.VisualStudio.Shell.Interop (Microsoft.VisualStudio.Shell.Interop.dll içinde)

Sözdizimi

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

Parametreler

  • clsid
    Type: System.Guid

    [in] İstenen nesne tanımlayıcısını (CLSID) sınıfı. Veri ve nesneyi oluşturmak için kullanılan kod ilişkili CLSID budur.

  • punkOuter
    Type: System.Object

    [in] İşaretçi denetleme örneği IUnknown Yeni oluşturulan nesnenin kullandığı toplama. Nesne bir toplama işleminin bir parçası olarak oluşturulduğunu olmayan null değerini gösterir. Null olmayan, bu toplama nesnenin bir işaretçi olup olmadığını IUnknown arabirimi (denetleme IUnknown).

  • riid
    Type: System.Guid

    [in] Nesne ile iletişim kurmak için kullanılacak arabirimi. Örneğin, IID_IClassFactory.

  • ppvObj
    Type: System.IntPtr

    [out] İçinde istenen arabirim işaretçisi alır işaretçi değişkeninin adresi riid. Başarılı dönüş üzerine ppvObj İstenen arabirim işaretçisi içerir. Başarısızlık durumunda, ppvObj içeren null.

Dönüş Değeri

Type: System.Int32

Yöntem başarılı olursa, döndürür S_OK. Başarısız olursa, bir hata kodu döndürür.

Notlar

COM imza

Objext.idl:

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

Bu yöntem COM's eşdeğerdir CoCreateInstance işlevi. Tek bir başlatılmamış nesne belirtilen CLSID ile ilişkili tür oluşturur ve tüm istenen arabirim işaretçileri döndürür.

CreateInstance yerel kayıt defterinde kayıtlı nesnelerin sınıf nesnesi arar, belirtilen CLSID ile ilişkilendirilmiş sınıf nesnesi bağlanır, başlatılmamış nesne örneğini oluşturur ve sınıf nesnesi serbest bırakır. Bu yöntem COM işlev çağrıları yalıtır CoGetClassObject bir işaretçiyi nesnenin sınıf üreteci için çok almak için CreateInstance nesnesinin örneğini oluşturmak için ve nesnenin sınıf üreteci referansı serbest bırakmak için.

Çağrı CreateInstance ne zaman bir nesne üzerinde bir CLSID göre tek bir örneğini oluşturmak istediğiniz ve nesnenin diğer örnekleri oluşturmak için bir sınıf üreteci nesne gerek yoktur. Tek bir sınıftaki bir nesneden birden çok nesneler oluşturmak için GetClassObjectOfClsid yöntemi.

Bu yöntem bir nesne (örneğin, [HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\CLSID]) yerel kayıt defteri kovanında kaydeder. Kayıt defterinin bu bölümünün Inprocserver32 bir alt anahtar yerine bir değer olarak kullanılır. Sadece ana UI iş parçacığı üzerinde örnekleme nesneleri destekleniyor.

Bir belirtmeniz CLSCTX_INPROC_SERVER için dwFlags nesne yerel olarak oluşturmak için parametre. Bu değer belirtmeyin ardından nesne genel COM's kullanarak örneği oluşturulmayacak CoCreateInstance işlevi.

Ayrıca bkz.

ILocalRegistry Arabirim
Microsoft.VisualStudio.Shell.Interop Ad Alanı

Başa dön