Partager via


ClassFactory (classe)

Implémente les fonctionnalités de base de l'interface IClassFactory.

Syntaxe

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

Paramètres

I0
Interface zéro.

I1
Première interface.

I2
Deuxième interface.

Notes

Utiliser ClassFactory pour fournir une implémentation de fabrique définie par l’utilisateur.

Le modèle de programmation suivant montre comment utiliser la structure Implements pour spécifier plus de trois interfaces sur une fabrique de classes.

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

Membres

Constructeurs publics

Nom Description
ClassFactory ::ClassFactory

Méthodes publiques

Nom Description
ClassFactory ::AddRef Incrémente le nombre de références pour l’objet actuel ClassFactory .
ClassFactory ::LockServer Incrémente ou décrémente le nombre d’objets sous-jacents suivis par l’objet actuel ClassFactory .
ClassFactory ::QueryInterface Récupère un pointeur vers l’interface spécifiée par paramètre.
ClassFactory ::Release Décrémente le nombre de références de l’objet actuel ClassFactory .

Hiérarchie d'héritage

I0

ChainInterfaces

I0

RuntimeClassBase

ImplementsHelper

DontUseNewUseMake

RuntimeClassFlags

RuntimeClassBaseT

RuntimeClass

ClassFactory

Spécifications

En-tête : module.h

Espace de noms : Microsoft::WRL

ClassFactory ::AddRef

Incrémente le nombre de références pour l’objet actuel ClassFactory .

STDMETHOD_(
   ULONG,
   AddRef
)();

Valeur de retour

S_OK en cas de succès. Sinon, valeur HRESULT qui décrit l’erreur.

ClassFactory ::ClassFactory

WRL_NOTHROW ClassFactory();

ClassFactory ::LockServer

Incrémente ou décrémente le nombre d’objets sous-jacents suivis par l’objet actuel ClassFactory .

STDMETHOD(
   LockServer
)(BOOL fLock);

Paramètres

troupeau
true pour incrémenter le nombre d’objets suivis. false pour décrémenter le nombre d’objets suivis.

Valeur de retour

S_OK en cas de réussite ; sinon, E_FAIL.

Notes

ClassFactory effectue le suivi des objets dans une instance sous-jacente de la classe Module .

ClassFactory ::QueryInterface

Récupère un pointeur vers l’interface spécifiée par paramètre.

STDMETHOD(
   QueryInterface
)(REFIID riid, _Deref_out_ void **ppvObject);

Paramètres

riid
ID d’interface.

ppvObject
Une fois cette opération terminée, pointeur vers l’interface spécifiée par riid de paramètre.

Valeur de retour

S_OK en cas de succès. Sinon, valeur HRESULT qui décrit l’erreur.

ClassFactory ::Release

Décrémente le nombre de références de l’objet actuel ClassFactory .

STDMETHOD_(
   ULONG,
   Release
)();

Valeur de retour

S_OK en cas de succès. Sinon, valeur HRESULT qui décrit l’erreur.