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.