Interpretieren von Bindungsinformationen
Microsoft RPC ermöglicht Ihren Client- und Serverprogrammen den Zugriff auf die Informationen und die Interpretation in einem Bindungshandle. Dies bedeutet nicht, dass Sie versuchen können oder sollten, direkt auf den Inhalt eines Bindungshandles zuzugreifen. Microsoft RPC stellt Funktionen bereit, die die Informationen in Bindungshandles festlegen und abrufen.
Um die Informationen in einem Bindungshandle abzurufen, übergeben Sie das Handle an RpcBindingToStringBinding. Die Bindungsinformationen werden als Zeichenfolge zurückgegeben. Für jeden Aufruf von RpcBindingToStringBinding benötigen Sie einen entsprechenden Aufruf der Funktion RpcStringFree.
Sie können die Funktion RpcStringBindingParse aufrufen, um die Zeichenfolge zu analysieren, die Sie aus RpcBindingToStringBinding abrufen. Diese Funktion weist Zeichenfolgen zu, um die informationen zu enthalten, die sie analysiert. Wenn Sie nicht möchten, dass eine bestimmte Bindungsinformation analysiert werden soll, übergeben Sie null als Wert dieses Parameters. Achten Sie darauf, RpcStringFree für jede der Zeichenfolgen aufzurufen, die sie zugeordnet.
Das folgende Codefragment veranschaulicht, wie eine Anwendung diese Funktionen aufrufen kann.
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.
Im vorherigen Beispielcode werden die Funktionen RpcBindingToStringBinding und RpcStringBindingParse aufgerufen, um die Informationen in einem gültigen Bindungshandle abzurufen und zu analysieren. Beachten Sie, dass der Wert NULL als zweiter Parameter an RpcStringBindingParse übergeben wurde. Dies führt dazu, dass diese Funktion die Analyse der Objekt-UUID überspringt. Da die UUID nicht analysiert wird, weist RpcStringBindingParse keine Zeichenfolge zu. Mit diesem Verfahren kann Ihre Anwendung nur Arbeitsspeicher für die Informationen zuweisen, die Sie analysieren und analysieren möchten.