File proxy di interfaccia
Il file proxy di interfaccia (U_p.c) è un file C che contiene routine equivalenti a quelle nei file stub client e stub del server di un'interfaccia COM (Object). Questo file contiene le implementazioni delle routine surrogate per client e server in modalità inline del compilatore o dei dati equivalenti e dei thunk nelle modalità interpretate, nonché altri dati COM glue appropriati, ad esempio le tabelle Vtable proxy e stub.
Il file proxy di interfaccia include le routine di supporto e i dati solo per i metodi delle interfacce definite nel file IDL corrente. Per chiarire questo comportamento, in questa sezione viene usato un esempio esteso. Quando si compila un file IDL con un'interfaccia come IFaceB che eredita da IFaceA, vengono generati routine e dati ausiliari correlati AFaceB al file proxy corrente, mentre le routine e i dati ausiliari correlati all'interfaccia di base IFaceA vengono trovati nel proxy generato dal file IDL contenente la definizione IFaceA. Il compilatore genera tutti i dati necessari per identificare i surrogati dell'interfaccia di base e per delegarli quando necessario per supportare i metodi IFaceA usati tramite l'interfaccia IFaceB.
Per ogni metodo in un'interfaccia nel file IDL corrente, il file proxy contiene i due metodi surrogati seguenti durante la compilazione in modalità mista (/Os) e i dati dell'interprete equivalenti durante la compilazione in modalità interprete (/Oi).
Surrogato lato client, ad esempio IFaceB_Method_Proxy in questo esempio.
Questo surrogato lato client è il punto di ingresso virtuale a cui il client, ad esempio IFaceB::Method, invia. Esegue il marshalling degli argomenti di input in una forma trasmettebile, trasmette gli argomenti di marshalling insieme alle informazioni che identificano l'interfaccia e l'operazione e quindi annulla ilmarso del valore restituito e gli argomenti di output quando l'operazione richiamata restituisce.
Surrogato lato server, ad esempio, IFaceB_Method_Stub .
Questo surrogato lato server è il punto di ingresso virtuale che il runtime sottostante invia al server per emulare il client. Annulla il marshalling degli argomenti di input per replicare i dati client, richiama l'implementazione del server della funzione di interfaccia e quindi esegue il marshalling e trasmette il valore restituito e gli eventuali argomenti di output al lato client.
Il nome predefinito per un file proxy generato da un file.idl è file_p.c.Usare l'opzione del compilatore /proxy MIDL per eseguire l'override del nome predefinito del file proxy di interfaccia. Le opzioni /env e /out influiscono su questo file.