Condividi tramite


Registrazione di un server EXE in esecuzione

Quando viene avviato un server eseguibile (EXE), deve chiamare CoRegisterClassObject, che registra il CLSID per il server in quello che viene chiamato tabella di classi (una tabella diversa dalla tabella degli oggetti in esecuzione). Quando un server viene registrato nella tabella delle classi, consente al gestore del controllo del servizio di determinare che non è necessario avviare di nuovo la classe, perché il server è già in esecuzione. Solo se il server non è elencato nella tabella di classi, gestione controllo controllo del Registro di sistema per i valori appropriati e avviare il server associato al CLSID specificato.

Si passa CoRegisterClassObject il CLSID per la classe e un puntatore alla relativa interfaccia IUnknown. I client che successivamente chiamano CoGetClassObject con questo CLSID recupereranno un puntatore all'interfaccia richiesta, purché la sicurezza non lo impedisca. (Vedere Funzioni helper per la creazione di istanze per una descrizione di diverse funzioni di creazione e attivazione dell'istanza.

Il server per un oggetto classe deve chiamare CoRevokeClassObject per revocare l'oggetto classe (rimuovere la registrazione) quando sono soddisfatte tutte le condizioni seguenti:

  • Nessuna istanza esistente della definizione dell'oggetto.
  • Non sono presenti blocchi sull'oggetto classe.
  • L'applicazione che fornisce servizi all'oggetto classe non è sotto il controllo utente (non visibile all'utente sullo schermo).

Installazione come applicazione di servizio

Registrazione di una classe all'installazione

Registrazione di oggetti in ROT

Registrazione automatica