Edit

Share via


SimpleClassFactory Class

Provides a fundamental mechanism to create a base class.

Syntax

template<typename Base>
class SimpleClassFactory : public ClassFactory<>;

Parameters

Base
A base class.

Remarks

The base class must provide a default constructor.

The following code example demonstrates how to use SimpleClassFactory with the ActivatableClassWithFactoryEx macro.

ActivatableClassWithFactoryEx(MyClass, SimpleClassFactory, MyServerName);

Members

Public Methods

Name Description
SimpleClassFactory::CreateInstance Method Creates an instance of the specified interface.

Inheritance Hierarchy

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

SimpleClassFactory

Requirements

Header: module.h

Namespace: Microsoft::WRL

SimpleClassFactory::CreateInstance Method

Creates an instance of the specified interface.

STDMETHOD( CreateInstance )(
   _Inout_opt_ IUnknown* pUnkOuter,
   REFIID riid,
   _Deref_out_ void** ppvObject
);

Parameters

pUnkOuter
Must be nullptr; otherwise, the return value is CLASS_E_NOAGGREGATION.

SimpleClassFactory doesn't support aggregation. If aggregation were supported and the object being created was part of an aggregate, pUnkOuter would be a pointer to the controlling IUnknown interface of the aggregate.

riid
Interface ID of the object to create.

ppvObject
When this operation completes, pointer to an instance of the object specified by the riid parameter.

Return Value

S_OK if successful; otherwise, an HRESULT that indicates the error.

Remarks

If __WRL_STRICT__ is defined, an assert error is emitted if the base class specified in the class template parameter isn't derived from RuntimeClass, or isn't configured with the ClassicCom or WinRtClassicComMix RuntimeClassType enumeration value.