Funzione CoRevokeClassObject (combaseapi.h)

Indica a OLE che un oggetto classe, registrato in precedenza con la funzione CoRegisterClassObject , non è più disponibile per l'uso.

Sintassi

HRESULT CoRevokeClassObject(
  [in] DWORD dwRegister
);

Parametri

[in] dwRegister

Token restituito in precedenza dalla funzione CoRegisterClassObject .

Valore restituito

Questa funzione può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
L'oggetto classe è stato revocato correttamente.

Commenti

Una chiamata riuscita a CoRevokeClassObject indica che l'oggetto classe è stato rimosso dalla tabella degli oggetti della classe globale (anche se non rilascia l'oggetto classe). Se altri client hanno ancora puntatori all'oggetto classe e hanno causato l'incremento del conteggio dei riferimenti tramite chiamate a IUnknown::AddRef, il conteggio dei riferimenti non sarà zero. In questo caso, le applicazioni possono trarre vantaggio se le chiamate successive (con le eccezioni ovvie di AddRef e IUnknown::Release) all'oggetto classe hanno esito negativo. Si noti che CoRegisterClassObject chiama AddRef e CoRevokeClassObject chiama Release, quindi le due funzioni formano una coppia AddRef/Release .

Un'applicazione oggetto deve chiamare CoRevokeClassObject per revocare gli oggetti classe registrati prima di uscire dal programma. Gli implementatori di oggetti di classe devono chiamare CoRevokeClassObject come parte della sequenza di rilascio. È necessario revocare in modo specifico l'oggetto classe anche quando è stato specificato il valore dei flag REGCLS_SINGLEUSE in una chiamata a CoRegisterClassObject, a indicare che solo un'applicazione può connettersi all'oggetto classe.

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

CoGetClassObject

CoRegisterClassObject