Plik serwera proxy interfejsu
Plik interfejsu proxy (U_p.c) jest plikiem C zawierającym rutyny równoważne tym w plikach wycinków klienta i serwera interfejsu obiektu (COM). Ten plik zawiera implementacje procedur zastępczych dla klienta i serwera w trybie wbudowanym kompilatora lub równoważnych danych i przekierowań (thunks) w trybach interpretowanych, a także innych odpowiednich danych łączących COM, takich jak proxy i tablice Vtable.
Plik proxy interfejsu zawiera procedury pomocnicze i dane tylko dla metod interfejsów zdefiniowanych w bieżącym pliku IDL. Aby wyjaśnić to zachowanie, w tej sekcji jest używany rozszerzony przykład. Podczas kompilowania pliku IDL za pomocą interfejsu takiego jak IFaceB dziedziczącego z interfejsu IFaceA, dane pomocnicze i procedury powiązane z IFaceB są generowane do bieżącego pliku proxy, natomiast dane pomocnicze i procedury związane z podstawowym interfejsem IFaceA znajdują się w serwerze proxy, który został wygenerowany z pliku IDL zawierającego definicję IFaceA. Kompilator generuje wszystkie dane niezbędne do zidentyfikowania zastępców interfejsu podstawowego i delegowania ich w razie potrzeby do obsługi metod IFaceA używanych za pośrednictwem interfejsu IFaceB.
Dla każdej metody w interfejsie w bieżącym pliku IDL plik proxy zawiera następujące dwie metody zastępcze podczas kompilowania w trybie mieszanym (/Os) i równoważne dane interpretera podczas kompilowania w trybie interpretera (/Oi).
Zastępca po stronie klienta, taki jak IFaceB_Method_Proxy w tym przykładzie.
Ten surrogat klientowy jest wirtualnym punktem wejścia, do którego klient, na przykład IFaceB::Method, deleguje. Wykonuje przetwarzanie argumentów wejściowych do formy przesyłanej, przesyła przetworzone argumenty wraz z informacjami, które identyfikują interfejs i operację, a następnie rozpakuje zwrotną wartość i wszystkie argumenty wyjściowe, gdy wywołana operacja się kończy.
Zastępczy obiekt po stronie serwera, na przykład IFaceB_Method_Stub.
Ten serwerowy zastępca stanowi wirtualny punkt wejścia, do którego odwołuje się bazowe środowisko uruchomieniowe na serwerze, aby symulować klienta. pl-PL: Deserializuje argumenty wejściowe w celu replikowania danych klienta, wywołuje serwerową implementację funkcji interfejsu, a następnie serializuje i przesyła wartość zwracaną oraz wszystkie argumenty wyjściowe z powrotem do klienta.
Domyślna nazwa pliku proxy wygenerowanego na podstawie pliku file.idl to file_p.c. Użyj przełącznika /proxy kompilatora MIDL, aby zastąpić domyślną nazwę pliku proxy interfejsu. Przełączniki /env i /out wpływają na ten plik.