ISurrogate::FreeSurrogate 方法 (objidlbase.h)
卸除 DLL 伺服器。
Syntax
HRESULT FreeSurrogate();
傳回值
這個方法可以傳回標準傳回值E_UNEXPECTED、E_FAIL和S_OK。
備註
COM 在代理程式中沒有其他 DLL 伺服器執行時,COM 會呼叫 FreeSurrogate 。 呼叫 FreeSurrogate 時,方法必須適當撤銷在 Surrogate 中註冊的所有類別處理站,然後導致代理程序結束。
Surrogate 進程必須定期呼叫 CoFreeUnusedLibraries 函式,以卸除不再使用的 DLL 伺服器。 代理程式會承擔此責任,這通常是客戶端的責任。 CoFreeUnusedLibraries 在任何載入的 DLL 伺服器上呼叫 DllCanUnloadNow 函式。 由於 CoFreeUnusedLibraries 取決於 DLL 伺服器中 DllCanUnloadNow 的存在和適當實作,因此不保證卸除所有應卸除的 DLL 伺服器 --並非所有伺服器都實作 DllCanUnloadNow,而且此函式對自由線程 DLL 而言並不可靠。 此外,當所有 DLL 伺服器都消失時,Surrogate 沒有辦法通知。 不過,COM 可以判斷何時卸除所有 DLL 伺服器,然後呼叫 FreeSurrogate 方法。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objidlbase.h (包含 ObjIdl.h) |