Udostępnij za pośrednictwem


Metoda ILocalRegistry.CreateInstance — (Guid, Object, Guid, UInt32, IntPtr)

 

Tworzy wystąpienie klasy wymienionych w rejestrze lokalnym.

Przestrzeń nazw:   Microsoft.VisualStudio.Shell.Interop
Zestaw:  Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)

Składnia

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
    Type: System.Guid

    [in] Klasy (CLSID), identyfikator żądanego obiektu. Jest to identyfikator CLSID skojarzonych z danych i kodu, który jest używany do tworzenia obiektu.

  • punkOuter
    Type: System.Object

    [in] Wskaźnik do kontrolowania wystąpienie IUnknown agregacji, która korzysta z nowo utworzonego obiektu. Wartość null wskazuje, że obiekt jest nie utworzono jako część agregacji. Jeśli innych niż null, jest to wskaźnik do obiektu agregacji IUnknown interface (sterowanie IUnknown).

  • riid
    Type: System.Guid

    [in] Interfejs służący do komunikowania się z obiektem. Na przykład IID_IClassFactory.

  • ppvObj
    Type: System.IntPtr

    [out] Adres zmiennej wskaźnika, która otrzymuje wskaźnik interfejsu w riid. Po pomyślnym powrocie ppvObj zawiera wskaźnik do żądanego interfejsu. W przypadku awarii ppvObj zawiera null.

Wartość zwracana

Type: System.Int32

Jeśli metoda zakończy się pomyślnie, zwraca S_OK. Jeśli nie, zwraca kod błędu.

Uwagi

Podpis COM

Z objext.idl:

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

Ta metoda jest równoważna modelu COM CoCreateInstance funkcji. Tworzy pojedynczy Niezainicjowany obiekt rodzaju skojarzone z określonym identyfikatorem CLSID i zwraca wszystkie wskaźniki żądanego interfejsu.

CreateInstance odwołuje się do obiektu klasy w lokalnym rejestrze zarejestrowanych obiektów, łączy się skojarzone z określonym identyfikatorem CLSID obiektu klasy, tworzy wystąpienie niezainicjowanego obiektu i zwalnia obiektu klasy. Ta metoda umożliwia hermetyzację wywołań funkcji COM CoGetClassObject uzyskać wskaźnika do obiektu klasy pomocniczej do CreateInstance do tworzenia wystąpienia obiektu i zwolnienia odwołania do obiektu klasy pomocniczej.

Wywołanie CreateInstance podczas chcesz utworzyć jedno wystąpienie oparte na identyfikatora CLSID obiektu i nie trzeba zachować obiekt fabryki klasy, aby utworzyć inne wystąpienia obiektu. Aby utworzyć wiele obiektów z jednej klasy obiektu, użyj GetClassObjectOfClsid metody.

Ta metoda rejestrów obiektu w gałęzi rejestru lokalnego (na przykład [HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\CLSID]). W tej sekcji rejestru InProcServer32 jest używany jako wartość, a nie podklucz. Obsługiwany jest tylko tworzenie wystąpień obiektów w głównym wątku interfejsu użytkownika.

Określ wartość CLSCTX_INPROC_SERVER dla dwFlags parametru do utworzenia wystąpienia obiektu lokalnie. Jeśli ta wartość nie zostanie podana, a następnie obiekt zostanie uruchomiony, globalny przy użyciu modelu COM CoCreateInstance funkcji.

Zobacz też

Interfejs ILocalRegistry
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop

Powrót do początku