Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Met deze klasse wordt de IClassFactory-interface geïmplementeerd en kunnen objecten in meerdere appartementen worden gemaakt.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
class CComClassFactoryAutoThread
: public IClassFactory,
public CComObjectRootEx<CComGlobalsThreadModel>
Leden
Openbare methoden
| Naam | Description |
|---|---|
| CComClassFactoryAutoThread::CreateInstance | Hiermee maakt u een object van de opgegeven CLSID. |
| CComClassFactoryAutoThread::LockServer | Vergrendelt de klassefactory in het geheugen. |
Opmerkingen
CComClassFactoryAutoThread is vergelijkbaar met CComClassFactory, maar maakt het mogelijk om objecten te maken in meerdere appartementen. Als u wilt profiteren van deze ondersteuning, moet u uw EXE-module afleiden van CComAutoThreadModule.
ATL-objecten verwerven normaal gesproken een klassefactory door afgeleid van CComCoClass. Deze klasse bevat de macro-DECLARE_CLASSFACTORY, die CComClassFactory declareert als de standaardklassefactory. Als u deze wilt gebruiken CComClassFactoryAutoThread, geeft u de DECLARE_CLASSFACTORY_AUTO_THREAD macro op in de klassedefinitie van uw object. Voorbeeld:
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.
Overnamehiërarchie
CComObjectRootBase
IClassFactory
CComClassFactoryAutoThread
Requirements
Koptekst: atlcom.h
CComClassFactoryAutoThread::CreateInstance
Hiermee maakt u een object van de opgegeven CLSID en haalt u een interfaceaanwijzer naar dit object op.
STDMETHODIMP CreateInstance(
LPUNKNOWN pUnkOuter,
REFIID riid,
void** ppvObj);
Parameterwaarden
pUnkOuter
[in] Als het object wordt gemaakt als onderdeel van een statistische functie, moet pUnkOuter het buitenste onbekende object zijn. Anders moet pUnkOuter NULL zijn.
riid
[in] De IID van de aangevraagde interface. Als pUnkOuter niet null is, moet riid zijn IID_IUnknown.
ppvObj
[uit] Een aanwijzer naar de interfacepointer die wordt geïdentificeerd door riid. Als het object deze interface niet ondersteunt, is ppvObj ingesteld op NULL.
Retourwaarde
Een standaard HRESULT-waarde.
Opmerkingen
Als uw module is afgeleid van CComAutoThreadModule, CreateInstance selecteert u eerst een thread om het object in het bijbehorende appartement te maken.
CComClassFactoryAutoThread::LockServer
Hiermee wordt het aantal modulevergrendelingen verhoogd en verminderd door respectievelijk aanroepen _Module::Lock en _Module::Unlock, .
STDMETHODIMP LockServer(BOOL fLock);
Parameterwaarden
Kudde
[in] Indien WAAR, wordt het aantal vergrendelingen verhoogd; anders wordt het aantal vergrendelingen afgebroken.
Retourwaarde
Een standaard HRESULT-waarde.
Opmerkingen
Wanneer u dit gebruikt CComClassFactoryAutoThread, _Module verwijst dit meestal naar het globale exemplaar van CComAutoThreadModule.
Door aanroepen LockServer kan een client een klassefactory vasthouden, zodat meerdere objecten snel kunnen worden gemaakt.
Zie ook
IClassFactory
CComClassFactory2-klasse
Klasse CComClassFactorySingleton
CComObjectRootEx-klasse
CComGlobalsThreadModel
Overzicht van klassen