Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie la raison pour laquelle le marshaling doit être effectué.
Syntax
typedef enum tagMSHLFLAGS {
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64
} MSHLFLAGS;
Constantes
MSHLFLAGS_NORMALValeur : 0 Le marshaling se produit parce qu’un pointeur d’interface est passé d’un processus à un autre. C’est le cas normal. Le paquet de données produit par le processus de marshaling sera démarshalé dans le processus de destination. Le paquet de données marshalé peut être démarshalé une seule fois, ou pas du tout. Si le récepteur démarshale correctement le paquet de données, la fonction CoReleaseMarshalData est automatiquement appelée sur le paquet de données dans le cadre du processus de démarshalation. Si le récepteur ne parvient pas ou ne peut pas démarshaler le paquet de données, l’expéditeur doit appeler CoReleaseMarshalData sur le paquet de données. |
MSHLFLAGS_TABLESTRONGValeur : 1 Le marshaling se produit parce que le paquet de données doit être stocké dans une table accessible globalement à partir de laquelle il peut être démarshalé une ou plusieurs fois, ou pas du tout. La présence du paquet de données dans la table est une référence forte à l’interface marshalée, ce qui signifie qu’il suffit de maintenir l’objet actif. Lorsque le paquet de données est supprimé de la table, l’implémenteur de table doit appeler la fonction CoReleaseMarshalData sur le paquet de données. MSHLFLAGS_TABLESTRONG est utilisé par la fonction RegisterDragDrop lors de l’inscription d’une fenêtre en tant que cible de déplacement. Cela maintient la fenêtre inscrite en tant que cible de déplacement, quel que soit le nombre de fois que l’utilisateur final fait glisser sur la fenêtre. La fonction RevokeDragDrop appelle CoReleaseMarshalData. |
MSHLFLAGS_TABLEWEAKValeur : 2 Le marshaling se produit parce que le paquet de données doit être stocké dans une table accessible globalement à partir de laquelle il peut être démarshalé une ou plusieurs fois, ou pas du tout. Toutefois, la présence du paquet de données dans la table agit comme une référence faible à l’interface marshalée, ce qui signifie qu’il n’est pas suffisant pour maintenir l’objet actif. Lorsque le paquet de données est supprimé de la table, l’implémenteur de table doit appeler la fonction CoReleaseMarshalData sur le paquet de données. MSHLFLAGS_TABLEWEAK est généralement utilisé lors de l’inscription d’un objet dans la table d’objets en cours d’exécution (ROT). Cela empêche l’entrée de l’objet dans le ROT de maintenir l’objet actif en l’absence d’autres connexions. Pour plus d’informations, consultez IRunningObjectTable::Register . |
MSHLFLAGS_NOPINGValeur : 4 L’ajout de cet indicateur à un marshaling d’objet d’origine (par opposition au marshaling d’un proxy) désactive le protocole ping pour cet objet. |
MSHLFLAGS_RESERVED1Valeur : 8 |
MSHLFLAGS_RESERVED2Valeur : 16 |
MSHLFLAGS_RESERVED3Valeur : 32 |
MSHLFLAGS_RESERVED4Valeur : 64 |
Spécifications
| Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
| Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
| En-tête | wtypesbase.h (inclure WTypes.h) |