Udostępnij za pośrednictwem


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.