Sdílet prostřednictvím


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.