Interpretace informací o vazbě
Microsoft RPC umožňuje klientským a serverovým programům přístup k informacím v popisovači vazeb a interpretovat je. To neznamená, že můžete nebo byste se měli pokusit o přístup k obsahu popisovače vazby přímo. Microsoft RPC poskytuje funkce, které nastavují a načítají informace v popisovačích připojení.
Pokud chcete získat informace v popisovači vazby, předejte popisovač RpcBindingToStringBinding. Vrátí informace o vazbě jako řetězec. Pro každé volání RpcBindingToStringBindingmusíte mít odpovídající volání funkce RpcStringFree.
Můžete volat funkci RpcStringBindingParse k parsování řetězce, který získáte z RpcBindingToStringBinding. Tato funkce přidělí řetězce, které budou obsahovat informace, které analyzuje. Pokud nechcete, aby se parsovala určitá část informací o vazbě, předejte NULL jako hodnotu tohoto parametru. Nezapomeňte pro každý řetězec, který alokuje funkce RpcStringFree, volat .
Následující fragment kódu ukazuje, jak by aplikace mohla tyto funkce volat.
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.
Předchozí ukázkový kód volá funkce RpcBindingToStringBinding a RpcStringBindingParse pro získání a parsování informací v platném popisovači vazby. Všimněte si, že hodnota NULL byla předána jako druhý parametr RpcStringBindingParse. To způsobí, že funkce přeskočí parsování UUID objektu. Vzhledem k tomu, že neanalyzuje UUID, RpcStringBindingParse pro něj nepřidělí řetězec. Tato technika umožňuje vaší aplikaci přidělit paměť pouze pro informace, které chcete zpracovat a analyzovat.