Partage via


FtmBase (classe)

Représente un objet marshaler libre de threads.

Syntaxe

class FtmBase :
    public Microsoft::WRL::Implements<
        Microsoft::WRL::RuntimeClassFlags<WinRtClassicComMix>,
        Microsoft::WRL::CloakedIid<IMarshal>
    >;

Notes

Pour plus d’informations, consultez la classe RuntimeClass.

Membres

Constructeurs publics

Nom Description
FtmBase ::FtmBase Initialise une nouvelle instance de la classe FtmBase.

Méthodes publiques

Nom Description
FtmBase ::CreateGlobalInterfaceTable Crée une table d’interface globale (GIT).
FtmBase ::D isconnectObject Libère de force toutes les connexions externes à un objet. Le serveur de l’objet appelle l’implémentation de l’objet de cette méthode avant d’arrêter.
FtmBase ::GetMarshalSizeMax Obtenez la limite supérieure du nombre d’octets nécessaires pour marshaler le pointeur d’interface spécifié sur l’objet spécifié.
FtmBase ::GetUnmarshalClass Obtient le CLSID que COM utilise pour localiser la DLL contenant le code du proxy correspondant. COM charge cette DLL pour créer une instance non initialisée du proxy.
FtmBase ::MarshalInterface Écrit dans un flux les données requises pour initialiser un objet proxy dans un processus client.
FtmBase ::ReleaseMarshalData Détruit un paquet de données marshalé.
FtmBase ::UnmarshalInterface Initialise un proxy nouvellement créé et retourne un pointeur d’interface vers ce proxy.

Membres de données publics

Nom Description
FtmBase ::marshaller_ Contient une référence au marshaleur thread libre.

Hiérarchie d'héritage

FtmBase

Spécifications

En-tête : ftm.h

Espace de noms : Microsoft::WRL

FtmBase ::CreateGlobalInterfaceTable

Crée une table d’interface globale (GIT).

static HRESULT CreateGlobalInterfaceTable(
   __out IGlobalInterfaceTable **git
);

Paramètres

git
Une fois cette opération terminée, pointeur vers une table d’interface globale.

Valeur de retour

S_OK si l'opération réussit. Sinon, une valeur HRESULT indique l'erreur.

Notes

Pour plus d’informations, consultez IGlobalInterfaceTable.

FtmBase ::D isconnectObject

Libère de force toutes les connexions externes à un objet. Le serveur de l’objet appelle l’implémentation de l’objet de cette méthode avant d’arrêter.

STDMETHODIMP DisconnectObject(
   __in DWORD dwReserved
) override;

Paramètres

dwReserved
Réservé pour une future utilisation ; doit être nul.

Valeur de retour

S_OK si l'opération réussit. Sinon, une valeur HRESULT indique l'erreur.

FtmBase ::FtmBase

Initialise une nouvelle instance de la classe FtmBase.

FtmBase();

FtmBase ::GetMarshalSizeMax

Obtenez la limite supérieure du nombre d’octets nécessaires pour marshaler le pointeur d’interface spécifié sur l’objet spécifié.

STDMETHODIMP GetMarshalSizeMax(
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags,
   __out DWORD *pSize
) override;

Paramètres

riid
Référence à l’identificateur de l’interface à marshaler.

Pv
Pointeur d’interface à marshaler ; peut être NULL.

dwDestContext
Contexte de destination dans lequel l’interface spécifiée doit être annulée.

Spécifiez une ou plusieurs valeurs d’énumération MSHCTX.

Actuellement, la démarshalation peut se produire dans un autre appartement du processus actuel (MSHCTX_INPROC) ou dans un autre processus sur le même ordinateur que le processus actuel (MSHCTX_LOCAL).

pvDestContext
Réservé à une utilisation ultérieure ; doit être NULL.

mshlflags
Indicateur indiquant si les données à marshaler doivent être transmises au processus client ( le cas classique) ou écrites dans une table globale, où elles peuvent être récupérées par plusieurs clients. Spécifiez une ou plusieurs valeurs d’énumération MSHLFLAGS.

Psize
Une fois cette opération terminée, pointeur vers la limite supérieure de la quantité de données à écrire dans le flux de marshaling.

Valeur de retour

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

FtmBase ::GetUnmarshalClass

Obtient le CLSID que COM utilise pour localiser la DLL contenant le code du proxy correspondant. COM charge cette DLL pour créer une instance non initialisée du proxy.

STDMETHODIMP GetUnmarshalClass(
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags,
   __out CLSID *pCid
) override;

Paramètres

riid
Référence à l’identificateur de l’interface à marshaler.

Pv
Pointeur vers l’interface à marshaler ; peut être NULL si l’appelant n’a pas de pointeur vers l’interface souhaitée.

dwDestContext
Contexte de destination dans lequel l’interface spécifiée doit être annulée.

Spécifiez une ou plusieurs valeurs d’énumération MSHCTX.

Unmarshaling peut se produire dans un autre appartement du processus actuel (MSHCTX_INPROC) ou dans un autre processus sur le même ordinateur que le processus actuel (MSHCTX_LOCAL).

pvDestContext
Réservé à une utilisation ultérieure ; doit être NULL.

mshlflags
Une fois cette opération terminée, pointeur vers le CLSID à utiliser pour créer un proxy dans le processus client.

pCid

Valeur de retour

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

FtmBase ::MarshalInterface

Écrit dans un flux les données requises pour initialiser un objet proxy dans un processus client.

STDMETHODIMP MarshalInterface(
   __in IStream *pStm,
   __in REFIID riid,
   __in_opt void *pv,
   __in DWORD dwDestContext,
   __reserved void *pvDestContext,
   __in DWORD mshlflags
) override;

Paramètres

pStm
Pointeur vers le flux à utiliser pendant le marshaling.

riid
Référence à l’identificateur de l’interface à marshaler. Cette interface doit être dérivée de l'interface IUnknown .

Pv
Pointeur vers le pointeur d’interface à marshaler ; peut être NULL si l’appelant n’a pas de pointeur vers l’interface souhaitée.

dwDestContext
Contexte de destination dans lequel l’interface spécifiée doit être annulée.

Spécifiez une ou plusieurs valeurs d’énumération MSHCTX.

Unmarshaling peut se produire dans un autre appartement du processus actuel (MSHCTX_INPROC) ou dans un autre processus sur le même ordinateur que le processus actuel (MSHCTX_LOCAL).

pvDestContext
Réservé pour une future utilisation ; doit être nul.

mshlflags
Spécifie si les données à marshaler doivent être transmises au processus client ( le cas classique) ou écrites dans une table globale, où elles peuvent être récupérées par plusieurs clients.

Valeur de retour

S_OK Le pointeur d’interface a été marshalé avec succès.

E_NOINTERFACE L’interface spécifiée n’est pas prise en charge.

STG_E_MEDIUMFULL Le flux est plein.

E_FAIL L’opération a échoué.

FtmBase ::marshaller_

Contient une référence au marshaleur thread libre.

Microsoft::WRL::ComPtr<IMarshal> marshaller_; ;

FtmBase ::ReleaseMarshalData

Détruit un paquet de données marshalé.

STDMETHODIMP ReleaseMarshalData(
   __in IStream *pStm
) override;

Paramètres

pStm
Pointeur vers un flux qui contient le paquet de données à détruire.

Valeur de retour

S_OK si l'opération réussit. Sinon, une valeur HRESULT indique l'erreur.

FtmBase ::UnmarshalInterface

Initialise un proxy nouvellement créé et retourne un pointeur d’interface vers ce proxy.

STDMETHODIMP UnmarshalInterface(
   __in IStream *pStm,
   __in REFIID riid,
   __deref_out void **ppv
) override;

Paramètres

pStm
Pointeur vers le flux à partir duquel le pointeur d’interface doit être démarshalé.

riid
Référence à l’identificateur de l’interface à annuler.

ppv
Une fois cette opération terminée, l’adresse d’une variable de pointeur qui reçoit le pointeur d’interface demandé dans riid. Si cette opération réussit, *ppv contient le pointeur d’interface demandé de l’interface à annuler.

Valeur de retour

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