Share via


ClassFactory Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at ClassFactory Class.

Implements the basic functionality of the IClassFactory interface.

Syntax

template <  
   typename I0 = Details::Nil,  
   typename I1 = Details::Nil,  
   typename I2 = Details::Nil  
>  
class ClassFactory : public Details::RuntimeClass<  
   typename Details::InterfaceListHelper<IClassFactory,   
   I0,   
   I1,   
   I2,   
   Details::Nil>::TypeT,   
   RuntimeClassFlags<ClassicCom | InhibitWeakReference>,   
      false>;  

Parameters

I0
The zeroth interface.

I1
The first interface.

I2
The second interface.

Remarks

Utilize ClassFactory to provide a user-defined factory implementation.

The following programming pattern demonstrates how to use the Implements structure to specify more than three interfaces on a class factory.

struct MyFactory : ClassFactory<Implements<I1, I2, I3>, I4, I5>

Members

Public Constructors

Name Description
ClassFactory::ClassFactory Constructor

Public Methods

Name Description
ClassFactory::AddRef Method Increments the reference count for the current ClassFactory object.
ClassFactory::LockServer Method Increments or decrements the number of underlying objects that are tracked by the current ClassFactory object.
ClassFactory::QueryInterface Method Retrieves a pointer to the interface specified by parameter.
ClassFactory::Release Method Decrements the reference count for the current ClassFactory object.

Inheritance Hierarchy

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

Requirements

Header: module.h

Namespace: Microsoft::WRL

See Also

Microsoft::WRL Namespace
RuntimeClassType Enumeration