Freigeben über


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 CComClassFactoryAutoThreaddas 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

CComObjectRootEx

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 CComClassFactoryAutoThreadbezieht 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