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 |
---|---|
|
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 |