Kötési információk értelmezése
A Microsoft RPC lehetővé teszi az ügyfél- és kiszolgálóprogramok számára az információk elérését és értelmezését egy kötéskezelőben. Ez nem jelenti azt, hogy közvetlenül hozzáférhetne vagy kellene próbálkoznia a kötési leíró tartalmának elérésével. A Microsoft RPC olyan függvényeket biztosít, amelyek a kötéskezelőkben állítják be és kérik le az információkat.
A kötési leíróban lévő információk lekéréséhez adja át a leírót az RpcBindingToStringBinding. Sztringként adja vissza a kötési adatokat. Az RpcBindingToStringBinding hívásához az RpcStringFreefüggvénynek megfelelő hívással kell rendelkeznie.
Az RpcBindingToStringBinding által elért karakterlánc elemezhető az RpcStringBindingParse függvény meghívásával. Ez a függvény sztringeket foglal le, hogy azok az általa elemzett információkat tárolják. Ha nem szeretné, hogy elemeznie kell egy adott kötési információt, adjon meg egy NULL a paraméter értékeként. Minden lefoglalt karakterlánchoz hívja meg a RpcStringFree függvényt.
Az alábbi kódrészlet bemutatja, hogyan hívhatja egy alkalmazás ezeket a függvényeket.
RPC_STATUS status;
UCHAR *lpzStringBinding;
UCHAR *lpzProtocolSequence;
UCHAR *lpzNetworkAddress;
UCHAR *lpzEndpoint;
UCHAR *NetworkOptions;
// The variable hBindingHandle is a valid binding handle.
status = RpcBindingToStringBinding(hBindingHandle,&lpzStringBinding);
// Code to check the status goes here.
status = RpcStringBindingParse(
lpzStringBinding,
NULL,
&lpzProtocolSequence;
&lpzNetworkAddress;
&lpzEndpoint;
&NetworkOptions);
// Code to check the status goes here.
// Code to analyze and alter the binding information in the strings
// goes here.
status = RpcStringFree(&lpzStringBinding);
// Code to check the status goes here.
status = RpcStringFree(&lpzProtocolSequence);
// Code to check the status goes here.
status = RpcStringFree(&lpzNetworkAddress);
// Code to check the status goes here.
status = RpcStringFree(&NetworkOptions);
// Code to check the status goes here.
Az előző mintakód meghívja a függvényeket RpcBindingToStringBinding és RpcStringBindingParse, hogy érvényes kötési leíróban kérje le és elemezhesse az adatokat. Vegye figyelembe, hogy a NULL érték második paraméterként lett átadva az RpcStringBindingParse. Emiatt a függvény kihagyja az objektum UUID-jának elemzését. Mivel nem elemzi az UUID-t, RpcStringBindingParse nem foglal le karakterláncot. Ez a technika lehetővé teszi, hogy az alkalmazás csak a elemezni és elemezni kívánt információk számára foglaljon le memóriát.