Freigeben über


Registrieren eines ausgeführten EXE-Servers

Wenn ein ausführbarer Server (EXE)-Server gestartet wird, sollte er CoRegisterClassObject aufrufen, das die CLSID für den Server in der sogenannten Klassentabelle registriert (eine andere Tabelle als die ausgeführte Objekttabelle). Wenn ein Server in der Klassentabelle registriert ist, kann der Dienststeuerungs-Manager (SCM) feststellen, dass es nicht erforderlich ist, die Klasse erneut zu starten, da der Server bereits ausgeführt wird. Nur wenn der Server nicht in der Klassentabelle aufgeführt ist, überprüft der SCM die Registrierung auf geeignete Werte und startet den Server, der der angegebenen CLSID zugeordnet ist.

Sie übergeben CoRegisterClassObject die CLSID für die -Klasse und einen Zeiger auf die IUnknown-Schnittstelle . Clients, die anschließend CoGetClassObject mit dieser CLSID aufrufen, rufen einen Zeiger auf die angeforderte Schnittstelle ab, solange die Sicherheit dies nicht verbietet. (Eine Beschreibung mehrerer instance Erstellungs- und Aktivierungsfunktionen finden Sie unter Hilfsfunktionen für die Instanzerstellung.)

Der Server für ein Klassenobjekt sollte CoRevokeClassObject aufrufen, um das Klassenobjekt zu widerrufen (seine Registrierung zu entfernen), wenn alle folgenden Werte zutrifft:

  • Es sind keine Instanzen der Objektdefinition vorhanden.
  • Es gibt keine Sperren für das Klassenobjekt.
  • Die Anwendung, die Dienste für das Klassenobjekt bereitstellt, wird nicht vom Benutzer gesteuert (für den Benutzer nicht auf der Anzeige sichtbar).

Installieren als Dienstanwendung

Registrieren einer Klasse bei der Installation

Registrieren von Objekten in der ROT

Selbstregistrierung