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.
dwFlags
Type: System.UInt32[in] Kontrolowanie tworzenia wystąpienia z flagi CLSCTX wyliczenia. Określa wartość CLSCTX_INPROC_SERVER.
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