El archivo proxy de interfaz
El archivo proxy de interfaz (U_p.c) es un archivo C que contiene rutinas equivalentes a las de los archivos de código auxiliar de cliente y código auxiliar del servidor de una interfaz de objeto (COM). Este archivo contiene implementaciones de las rutinas suplentes para el cliente y el servidor en el modo en línea del compilador o datos equivalentes y thunks en los modos interpretados, así como otros datos de pegamento COM adecuados, como el proxy y las Vtables de código auxiliar.
El archivo proxy de interfaz incluye las rutinas auxiliares y los datos solo para los métodos de las interfaces definidas en el archivo IDL actual. Para aclarar este comportamiento, se usa un ejemplo extendido en esta sección. Al compilar un archivo IDL con una interfaz como IFaceB que hereda de IFaceA, se generan rutinas y datos auxiliares relacionados con IFaceB en el archivo proxy actual, mientras que los datos auxiliares relacionados con IFaceA de la interfaz base se encuentran en el proxy generado a partir del archivo IDL que contiene la definición de IFaceA. El compilador genera todos los datos necesarios para identificar los suplentes de la interfaz base y delegarlos cuando sea necesario para admitir los métodos IFaceA usados a través de la interfaz IFaceB.
Para cada método de una interfaz del archivo IDL actual, el archivo proxy contiene los dos métodos suplentes siguientes cuando se compilan en el modo mixto (/Os) y los datos de intérprete equivalentes cuando se compilan en el modo de intérprete (/Oi).
Suplente del lado cliente, como IFaceB_Method_Proxy en este ejemplo.
Este suplente del lado cliente es el punto de entrada virtual al que se distribuye el cliente, por ejemplo, IFaceB::Method. Serializa los argumentos de entrada en un formato transmitible, transmite los argumentos serializado junto con la información que identifica la interfaz y la operación y, a continuación, anula la combinación del valor devuelto y los argumentos de salida cuando la operación invocada devuelve.
El suplente del lado servidor, por ejemplo, IFaceB_Method_Stub .
Este suplente del lado servidor es el punto de entrada virtual al que el tiempo de ejecución subyacente envía al servidor para emular el cliente. Anula las referencias de los argumentos de entrada para replicar los datos de cliente, invoca la implementación del servidor de la función de interfaz y, a continuación, serializa y transmite el valor devuelto y los argumentos de salida al lado cliente.
El nombre predeterminado de un archivo de proxy generado a partir de un archivo.idl es file_p.c.Use el modificador del compilador /proxy MIDL para invalidar el nombre predeterminado del archivo proxy de interfaz. Los modificadores /env y /out afectan a este archivo.