共用方式為


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)

另請參閱

DllGetClassObject