CoGetMarshalSizeMax, fonction (combaseapi.h)
Retourne une limite supérieure sur le nombre d’octets nécessaires pour marshaler le pointeur d’interface spécifié vers l’objet spécifié.
Syntaxe
HRESULT CoGetMarshalSizeMax(
[out] ULONG *pulSize,
[in] REFIID riid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwDestContext,
[in, optional] LPVOID pvDestContext,
[in] DWORD mshlflags
);
Paramètres
[out] pulSize
Pointeur vers la valeur de la limite supérieure sur la taille, en octets, du paquet de données à écrire dans le flux de marshaling. Si ce paramètre est 0, la taille du paquet est inconnue.
[in] riid
Référence à l’identificateur de l’interface dont le pointeur doit être marshalé. Cette interface doit être dérivée de l’interface IUnknown .
[in] pUnk
Pointeur vers l’interface à marshaler. Cette interface doit être dérivée de l’interface IUnknown .
[in] dwDestContext
Contexte de destination dans lequel l’interface spécifiée doit être démarshalée. Les valeurs de dwDestContext proviennent de l’énumération MSHCTX.
[in, optional] pvDestContext
Ce paramètre est réservé et doit avoir la valeur NULL.
[in] mshlflags
Indique si les données à marshaler doivent être transmises au client traiter le cas normal ou écrites dans une table globale, où elles peuvent être récupérées par plusieurs clients. Les valeurs proviennent de l’énumération MSHLFLAGS.
Valeur retournée
Cette fonction peut retourner la valeur de retour standard E_UNEXPECTED, ainsi que les valeurs suivantes.
Code de retour | Description |
---|---|
|
La limite supérieure a été retournée avec succès. |
|
Avant que cette fonction puisse être appelée, la fonction CoInitialize ou OleInitialize doit être appelée. |
Remarques
Cette fonction effectue les tâches suivantes :
- Interroge l’objet pour un pointeur IMarshal ou, si l’objet n’implémente pas IMarshal, obtient un pointeur vers le marshaleur standard de COM.
- À l’aide du pointeur obtenu dans l’élément précédent, appelle IMarshal ::GetMarshalSizeMax.
- Ajoute à la valeur retournée par l’appel à GetMarshalSizeMax la taille de l’en-tête de données de marshaling et, éventuellement, celle du CLSID proxy pour obtenir la taille maximale en octets de la quantité de données à écrire dans le flux de marshaling.
La valeur retournée par cette méthode est garantie comme valide uniquement tant que l’état interne de l’objet marshalé ne change pas. Par conséquent, le marshaling réel doit être effectué immédiatement après le retour de cette fonction, ou le stub court le risque que l’objet, en raison d’un changement d’état, puisse nécessiter plus de mémoire pour marshaler qu’il ne l’avait initialement indiqué.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | combaseapi.h (inclure Objbase.h) |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |