Partager via


Macros de portabilité

Les outils RPC permettent d’atteindre l’indépendance de la convention de modèle, d’appel et de nommage en associant des types de données et des types de retour de fonction dans les fichiers stub et les fichiers d’en-tête générés avec des définitions propres à chaque plateforme. Ces définitions de macro garantissent que tous les types de données et fonctions qui nécessitent la désignation de __far sont spécifiés en tant qu’objets.

L’illustration suivante montre les définitions de macro que le compilateur MIDL applique aux appels de fonction entre les composants RPC :

Diagramme montrant les définitions de macros que MIDL s’applique aux appels de fonction.

Les macros RPC sont définies comme suit.

Définition Description
__RPC_API Appliqué aux appels effectués par le stub à l’application utilisateur. Les deux fonctions se trouvent dans le même programme exécutable.
__RPC_FAR Appliqué à la définition de macro standard pour les pointeurs. Cette définition de macro doit apparaître dans le cadre de la signature de toutes les fonctions fournies par l’utilisateur.
__RPC_STUB Appliqué aux appels effectués à partir de la bibliothèque d’exécution vers le stub. Ces appels peuvent être considérés comme privés.
__RPC_USER Appliqué aux appels effectués par la bibliothèque d’exécution à l’application utilisateur. Ceux-ci franchissent la limite entre une DLL et une application.
RPC_ENTRY Appliqué aux appels effectués par l’application ou le stub à la bibliothèque d’exécution. Cette définition de macro est appliquée à toutes les fonctions d’exécution RPC.

Pour établir un lien correct avec les bibliothèques d’exécution Microsoft RPC, les stubs et les routines de prise en charge, certaines fonctions fournies par l’utilisateur doivent également inclure ces macros dans la définition de fonction. Utilisez la macro __RPC_API lorsque vous définissez les fonctions associées à la gestion de la mémoire, aux handles de liaison définis par l’utilisateur et à l’attribut transmit_as , et utilisez la macro __RPC_USER lorsque vous définissez la routine d’exécution de contexte associée au handle de contexte. Spécifiez les fonctions comme suit :

__RPC_USER midl_user_allocate (...)

__RPC_USER midl_user_free (...)

__RPC_USER handletype_bind (...)

__RPC_USER handletype_unbind (...)

__RPC_USER type_to_local

__RPC_USER type_from_local

__RPC_USER type_to_xmit (...)

__RPC_USER type_from_xmit (...)

__RPC_USER type_free_local

__RPC_USER type_free_inst (...)

__RPC_USER type_free_xmit (...)

__RPC_USER context_rundown (...)

Notes

Tous les paramètres de pointeur de ces fonctions doivent être spécifiés à l’aide de la macro __RPC_FAR.

Spécifications

Condition requise Valeur
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
Rpc.h