Fichier proxy d’interface
Le fichier proxy d’interface (U_p.c) est un fichier C qui contient des routines équivalentes à celles des fichiers stub client et stub serveur d’une interface d’objet (COM). Ce fichier contient des implémentations des routines de substitution pour le client et le serveur en mode inline du compilateur ou des données et des thunks équivalents dans les modes interprétés, ainsi que d’autres données com glue appropriées, telles que les tables Vtables proxy et stub.
Le fichier proxy d’interface inclut les routines et les données de prise en charge uniquement pour les méthodes des interfaces définies dans le fichier IDL actuel. Pour clarifier ce comportement, un exemple étendu est utilisé dans cette section. Lors de la compilation d’un fichier IDL avec une interface telle que IFaceB qui hérite d’IFaceA, les routines et les données auxiliaires associées à IFaceB sont générées dans le fichier proxy actuel, tandis que les routines et les données auxiliaires liées à l’interface de base IFaceA se trouvent dans le proxy généré à partir du fichier IDL contenant la définition IFaceA. Le compilateur génère toutes les données nécessaires pour identifier les substituts de l’interface de base et leur déléguer si nécessaire pour prendre en charge les méthodes IFaceA utilisées via l’interface IFaceB.
Pour chaque méthode d’une interface dans le fichier IDL actuel, le fichier proxy contient les deux méthodes de substitution suivantes lorsqu’elles sont compilées en mode mixte (/Os) et les données d’interpréteur équivalentes lorsqu’elles sont compilées en mode interpréteur (/Oi).
Le substitut côté client, tel que IFaceB_Method_Proxy dans cet exemple.
Ce substitut côté client est le point d’entrée virtuel vers lequel le client, par exemple IFaceB::Method, distribue. Il marshale les arguments d’entrée dans une forme pouvant être transmise, transmet les arguments marshalés ainsi que les informations qui identifient l’interface et l’opération, puis démarshale la valeur de retour et tous les arguments de sortie lorsque l’opération appelée est retournée.
Le substitut côté serveur, par exemple, IFaceB_Method_Stub .
Ce substitut côté serveur est le point d’entrée virtuel vers lequel le runtime sous-jacent distribue sur le serveur pour émuler le client. Il démarshale les arguments d’entrée pour répliquer les données du client, appelle l’implémentation de la fonction d’interface par le serveur, puis marshale et transmet la valeur de retour et tous les arguments de sortie côté client.
Le nom par défaut d’un fichier proxy généré à partir d’un fichier file.idl est file_p.c.Utilisez le commutateur du compilateur /proxy MIDL pour remplacer le nom par défaut du fichier proxy d’interface. Les commutateurs /env et /out affectent ce fichier.