dllCanUnloadNow 函式 (combaseapi.h)
判斷實作此函式的 DLL 是否正在使用中。 如果沒有,呼叫端可以從記憶體卸除 DLL。
OLE 不提供此函式。 支援 OLE 元件物件模型的 DLL (COM) 應該實作和導出 DllCanUnloadNow。
Syntax
HRESULT DllCanUnloadNow();
傳回值
如果函式成功,傳回值會S_OK。 否則,它會S_FALSE。
備註
對 DllCanUnloadNow 的呼叫會判斷導出的 DLL 是否仍在使用中。 當 DLL 未管理任何現有物件時, (其所有對象的參考計數為 0) ,則不再使用 DLL。
來電者的附註
您不應該直接呼叫 DllCanUnloadNow 。 OLE 只會透過 對 CoFreeUnusedLibraries 函式的呼叫來呼叫它。 當它傳回S_OK時, CoFreeUnusedLibraries 會釋放 DLL。實作者的注意事項
您必須在 中實作 DllCanUnloadNow ,並從中匯出要透過 CoGetClassObject 函式呼叫動態載入的 DLL。 (您也需要在相同的 DLL) 中實作和匯出 DllGetClassObject 函式。如果透過 呼叫 CoGetClassObject 載入的 DLL 無法匯出 DllCanUnloadNow,則在應用程式呼叫 CoUninitialize 函式以釋放 OLE 連結庫之前,將不會卸除 DLL。
如果 DLL 管理的物件有任何現有參考,DllCanUnloadNow 應該傳回S_FALSE。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | combaseapi.h (包含 Objbase.h) |