Freigeben über


Automatische Bindungshandles

Automatische Bindungshandles sind nützlich, wenn die Anwendung keinen bestimmten Server benötigt und keine Zustandsinformationen zwischen Client und Server verwalten muss. Wenn Sie ein automatisches Bindungshandle verwenden, müssen Sie keinen Clientanwendungscode schreiben, um die Bindung und Handles zu behandeln. Sie geben einfach die Verwendung des automatischen Bindungshandles in der Anwendungskonfigurationsdatei (Application Configuration File, ACF) an. Der Stub definiert dann das Handle und verwaltet die Bindung.

Beispielsweise kann ein Zeitstempelvorgang mithilfe eines automatischen Handles implementiert werden. Es macht keinen Unterschied für die Clientanwendung, von welchem Server der Zeitstempel bereitgestellt wird, da die Zeit von jedem verfügbaren Server akzeptiert werden kann.

Hinweis

Automatische Handles werden für die Macintosh-Plattform nicht unterstützt.

 

Sie geben die Verwendung von automatischen Handles an, indem Sie das Attribut [auto_handle] in den ACF einschließen. Im Zeitstempelbeispiel wird der folgende ACF verwendet:

/* ACF file */
[
  auto_handle
]
interface autoh
{
}

Wenn der ACF kein anderes Handle-Attribut enthält und die Remoteprozeduren keine expliziten Handles verwenden, verwendet der MIDL-Compiler standardmäßig automatische Handles. Außerdem werden automatische Handles als Standard verwendet, wenn der ACF nicht vorhanden ist.

Die Remoteprozeduren werden in der IDL-Datei angegeben. Das automatische Handle darf nicht als Argument für die Remoteprozedur angezeigt werden. Beispiel:

/* IDL file */
[ 
  uuid (6B29FC40-CA47-1067-B31D-00DD010662DA),
  version(1.0),
  pointer_default(unique)
]
interface autoh
{
  void GetTime([out] long * time);
  void Shutdown(void);
}

Der Vorteil des automatischen Handle besteht darin, dass der Entwickler keinen Code schreiben muss, um das Handle zu verwalten. die Stubs verwalten die Bindung automatisch. Dies unterscheidet sich erheblich vom Beispiel Hello, World, bei dem der Client das implizite primitive Handle verwaltet, das in der ACF definiert ist, und mehrere Laufzeitfunktionen aufrufen muss, um das Bindungshandle einzurichten.