共用方式為


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)

另請參閱

DllSurrogate

ISurrogate

撰寫自定義 Surrogate