ILocalRegistry.CreateInstance(Guid, Object, Guid, UInt32, IntPtr) Methode

Definition

Erstellt eine Instanz einer Klasse, die in der lokalen Registrierung aufgeführt ist.

public:
 int CreateInstance(Guid clsid, System::Object ^ punkOuter, Guid % riid, System::UInt32 dwFlags, [Runtime::InteropServices::Out] IntPtr % ppvObj);
public int CreateInstance (Guid clsid, object punkOuter, ref Guid riid, uint dwFlags, out IntPtr ppvObj);
abstract member CreateInstance : Guid * obj * Guid * uint32 * nativeint -> int
Public Function CreateInstance (clsid As Guid, punkOuter As Object, ByRef riid As Guid, dwFlags As UInteger, ByRef ppvObj As IntPtr) As Integer

Parameter

clsid
Guid

[in] Klassenbezeichner (CLSID) des anzufordernden Objekts. Das ist die CLSID, die den Daten und dem Code zugeordnet ist, die verwendet werden, um das Objekt zu erstellen.

punkOuter
Object

[in] Zeiger auf die Steuerinstanz von IUnknown des Aggregats, das das neu erstellte Objekt verwendet. Ein Wert von null gibt an, dass das Objekt nicht als Teil eines Aggregats erstellt wird. Wenn ungleich NULL, ist dies ein Zeiger auf die IUnknown-Schnittstelle des aggregierten Objekts (das steuernde IUnknown).

riid
Guid

[in] Schnittstelle, die verwendet werden soll, um mit dem Objekt zu kommunizieren. Beispiel: IID_IClassFactory.

dwFlags
UInt32

[in] Flags, die die Instanzerstellung aus der CLSCTX-Enumeration steuern. Gibt einen Wert von CLSCTX_INPROC_SERVER.

ppvObj
IntPtr

[out] Die Adresse der Zeigervariablen, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach der erfolgreichen Rückgabe enthält ppvObj den angeforderten Schnittstellenzeiger. Nach einem Fehler enthält ppvObj den Wert null.

Gibt zurück

Int32

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

COM-Signatur

Aus objext. idl:

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

Diese Methode entspricht der com- CoCreateInstance Funktion. Es wird ein einzelnes nicht initialisiertes Objekt der Art erstellt, die der angegebenen CLSID zugeordnet ist, und es werden alle angeforderten Schnittstellen Zeiger zurückgegeben.

CreateInstance sucht das Klassenobjekt in der lokalen Registrierung registrierter Objekte, stellt eine Verbindung mit dem Klassenobjekt her, das der angegebenen CLSID zugeordnet ist, erstellt eine nicht initialisierte Instanz des-Objekts und gibt das-Klassenobjekt frei. Diese Methode kapselt Aufrufe der com-Funktion, CoGetClassObject um einen Zeiger auf die Klassenfactory des Objekts zu erhalten, auf, um CreateInstance eine Instanz des-Objekts zu erstellen und den Verweis auf die Klassenfactory des Objekts freizugeben.

Rufen CreateInstance Sie auf, wenn Sie eine einzelne Instanz eines Objekts erstellen möchten, die auf einer CLSID basiert, und das klassenfactoryobjekt nicht beibehalten müssen, um andere Instanzen des Objekts zu erstellen. Verwenden Sie die-Methode, um mehrere Objekte aus einem einzelnen Klassenobjekt zu erstellen GetClassObjectOfClsid .

Diese Methode registriert ein Objekt in der lokalen Registrierungs Struktur (z. b. [HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\CLSID]). In diesem Abschnitt der Registrierung wird InProcServer32 als Wert und nicht als Unterschlüssel verwendet. Das Instanziieren von Objekten auf dem Hauptbenutzer Oberflächen-Thread wird nur unterstützt.

Geben Sie den Wert CLSCTX_INPROC_SERVER für den- dwFlags Parameter an, um das Objekt lokal zu instanziieren. Wenn Sie diesen Wert nicht angeben, wird das Objekt Global mithilfe der com-Funktion instanziiert CoCreateInstance .

Gilt für