CComClassFactoryAutoThread-Klasse
Diese Klasse implementiert die IClassFactory-Schnittstelle und ermöglicht das Erstellen von Objekten in mehreren Wohnungen.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CComClassFactoryAutoThread
: public IClassFactory,
public CComObjectRootEx<CComGlobalsThreadModel>
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
CComClassFactoryAutoThread::CreateInstance | Erstellt ein Objekt der angegebenen CLSID. |
CComClassFactoryAutoThread::LockServer | Sperrt die Klassenfactory im Arbeitsspeicher. |
Hinweise
CComClassFactoryAutoThread
ähnelt CComClassFactory, ermöglicht jedoch die Erstellung von Objekten in mehreren Wohnungen. Um diese Unterstützung nutzen zu können, leiten Sie Ihr EXE-Modul von CComAutoThreadModule ab.
ATL-Objekte erwerben normalerweise eine Klassenfactory, indem sie von CComCoClass abgeleitet wird. Diese Klasse enthält das Makro DECLARE_CLASSFACTORY, das CComClassFactory als Standardklassenfactory deklariert. Geben Sie zum Verwenden CComClassFactoryAutoThread
das DECLARE_CLASSFACTORY_AUTO_THREAD Makro in der Klassendefinition des Objekts an. Zum Beispiel:
class ATL_NO_VTABLE CMyAutoClass :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CMyAutoClass, &CLSID_MyAutoClass>,
public IMyAutoClass
{
public:
DECLARE_CLASSFACTORY_AUTO_THREAD()
// Remainder of class declaration omitted.
Vererbungshierarchie
CComObjectRootBase
IClassFactory
CComClassFactoryAutoThread
Anforderungen
Kopfzeile: atlcom.h
CComClassFactoryAutoThread::CreateInstance
Erstellt ein Objekt der angegebenen CLSID und ruft einen Schnittstellenzeiger auf dieses Objekt ab.
STDMETHODIMP CreateInstance(
LPUNKNOWN pUnkOuter,
REFIID riid,
void** ppvObj);
Parameter
pUnkOuter
[in] Wenn das Objekt als Teil eines Aggregats erstellt wird, muss "pUnkOuter " das äußere Unbekannte sein. Andernfalls muss "pUnkOuter" NULL sein.
riid
[in] Die IID der angeforderten -Schnittstelle. Wenn pUnkOuter ungleich NULL ist, muss riid sein IID_IUnknown
.
ppvObj
[out] Ein Zeiger auf den Schnittstellenzeiger, der von riid identifiziert wird. Wenn das Objekt diese Schnittstelle nicht unterstützt, wird ppvObj auf NULL festgelegt.
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Wenn Ihr Modul von CComAutoThreadModule abgeleitet ist, wählt zuerst einen Thread aus, CreateInstance
um das Objekt in der zugeordneten Wohnung zu erstellen.
CComClassFactoryAutoThread::LockServer
Erhöht und erhöht die Anzahl der Modulsperren durch Aufrufen _Module::Lock
bzw _Module::Unlock
.
STDMETHODIMP LockServer(BOOL fLock);
Parameter
Herde
[in] Wenn WAHR, wird die Sperranzahl erhöht; andernfalls wird die Sperranzahl erhöht.
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Bei Verwendung CComClassFactoryAutoThread
bezieht sich dies _Module
in der Regel auf die globale Instanz von CComAutoThreadModule.
Durch Das Aufrufen LockServer
kann ein Client eine Klassenfactory speichern, sodass mehrere Objekte schnell erstellt werden können.
Siehe auch
IClassFactory
CComClassFactory2-Klasse
CComClassFactorySingleton-Klasse
CComObjectRootEx-Klasse
CComGlobalsThreadModel
Klassenübersicht