Share via


ClassFactory Class

Implements the basic functionality of the IClassFactory interface.

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

Reference

Microsoft::WRL Namespace

RuntimeClassType Enumeration