Suchen eines Remoteobjekts

Mit der Einführung von COM für verteilte Systeme verwendet COM das grundlegende Modell für die Objekterstellung, das unter COM-Klassenobjekte und CLSIDs beschrieben ist, und fügt mehr als eine Möglichkeit hinzu, ein Objekt zu finden, das sich möglicherweise in einem anderen System in einem Netzwerk befindet, ohne die Clientanwendung zu überlasten.

COM hat Registrierungsschlüssel hinzugefügt, mit denen ein Server den Namen des Computers registrieren kann, auf dem er sich befindet, oder des Computers, auf dem sich ein vorhandener Speicher befindet. Daher müssen Clientanwendungen nur die CLSID des Servers kennen.

In fällen, in denen dies gewünscht ist, hat COM jedoch einen zuvor reservierten Parameter von CoGetClassObject durch eine COSERVERINFO-Struktur ersetzt, die es einem Client ermöglicht, den Speicherort eines Servers anzugeben. Ein weiterer wichtiger Wert in der CoGetClassObject-Funktion ist die CLSCTX-Enumeration, die angibt, ob das erwartete Objekt prozess-, out-of-process local oder out-of-process remote ausgeführt werden soll. Zusammen bestimmen diese beiden Werte und die Werte in der Registrierung, wie und wo das Objekt ausgeführt werden soll.

Hinweis

Instanzerstellungsaufrufe können eine Registrierungseinstellung überschreiben, wenn sie einen Serverspeicherort angeben. Der Algorithmus, den COM dafür verwendet, wird in der Referenz für die CLSCTX-Enumeration beschrieben.

Die Remoteaktivierung hängt von der Sicherheitsbeziehung zwischen Client und Server ab. Weitere Informationen finden Sie unter Sicherheit in COM.

COM-Klassenobjekte und CLSIDs

Erstellen eines Objekts über ein Klassenobjekt