Condividi tramite


Funzione DllCanUnloadNow (combaseapi.h)

Determina se la DLL che implementa questa funzione è in uso. In caso contrario, il chiamante può scaricare la DLL dalla memoria.

OLE non fornisce questa funzione. Le DLL che supportano OLE Component Object Model (COM) devono implementare ed esportare DllCanUnloadNow.

Sintassi

HRESULT DllCanUnloadNow();

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene S_OK. In caso contrario, è S_FALSE.

Commenti

Una chiamata a DllCanUnloadNow determina se la DLL da cui viene esportata è ancora in uso. Una DLL non è più in uso quando non gestisce alcun oggetto esistente (il conteggio dei riferimenti su tutti gli oggetti è 0).

Note ai chiamanti

Non è necessario chiamare direttamente DllCanUnloadNow . OLE lo chiama solo tramite una chiamata alla funzione CoFreeUnusedLibraries . Quando restituisce S_OK, CoFreeUnusedLibraries libera la DLL.

Note per gli implementatori

È necessario implementare DllCanUnloadNow in ed esportarlo da DLL che devono essere caricate dinamicamente tramite una chiamata alla funzione CoGetClassObject . È anche necessario implementare ed esportare la funzione DllGetClassObject nella stessa DLL.

Se una DLL caricata tramite una chiamata a CoGetClassObject non riesce a esportare DllCanUnloadNow, la DLL non verrà scaricata finché l'applicazione non chiama la funzione CoUninitialize per rilasciare le librerie OLE.

DllCanUnloadNow deve restituire S_FALSE se sono presenti riferimenti esistenti a oggetti gestiti dalla DLL.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)

Vedi anche

Dllgetclassobject