Explizite Bindungshandles
Client-/Serveranwendungen können explizite Bindungshandles verwenden, um den Bindungsprozess maximal zu steuern. Wie implizite Handles ermöglichen explizite Bindungshandles Ihrer Clientanwendung, einen Server auszuwählen, der seine Aufrufe ausführt. Darüber hinaus ermöglichen explizite Bindungshandles Ihrer Client-/Serveranwendung das Erstellen einer authentifizierten RPC-Kommunikationssitzung. Mit expliziten Handles kann Ihr Client eine Verbindung mit mehreren Servern herstellen und Remoteprozeduren auf mehreren Servern ausführen. Multithread- und asynchrone Clientanwendungen können sogar eine Verbindung mit mehreren Servern herstellen und mehrere Remoteprozeduren gleichzeitig ausführen.
Ihre Clientanwendung muss das explizite Handle als Parameter an jeden Remoteprozeduraufruf übergeben. Um dem OSF-Standard zu entsprechen, sollte das Handle als erster Parameter für jede Remoteprozedur angegeben werden. Mit den Microsoft-Erweiterungen für RPC können Sie jedoch das Bindungshandle an anderen Positionen angeben. Weitere Informationen finden Sie unter Microsoft RPC Binding-Handle Extensions.
Um ein explizites Handle zu erstellen, deklarieren Sie das Handle als Parameter für die Remotevorgänge in der IDL-Datei. Das Hello, World-Beispiel kann neu definiert werden, um ein explizites Handle wie gezeigt zu verwenden:
/* IDL file for explicit handles */
[
uuid(20B309B1-015C-101A-B308-02608C4C9B53),
version(1.0)
]
interface hello
{
void HelloProc([in] handle_t h1,
[in, string] char * pszString);
}
Sie können explizite und implizite Handles in einer einzelnen Schnittstelle kombinieren. Wenn eine Funktion ein explizites Handle in der Parameterliste enthält, wird dieses Handle verwendet. Wenn eine Funktion in einer Schnittstelle, die implizite Handles verwendet, kein explizites Handle angibt, wird das implizite Standardhandle verwendet.