實作 IUnknown 介面

適用於:Outlook 2013 |Outlook 2016

在每個MAPI對象中實作的 IUnknown 介面方法,支援對象間通訊和物件管理。

IUnknown 有三種方法: IUnknown::AddRefIUnknown::QueryInterfaceIUnknown::ReleaseQueryInterface 可讓一個對象判斷另一個物件是否支援特定介面。 使用 QueryInterface 時,兩個事先不知道彼此功能的物件可以互動。 如果實作 QueryInterface 的物件支援有問題的介面,則會傳回介面實作的指標。 如果物件不支援要求的介面,則會傳回MAPI_E_INTERFACE_NOT_SUPPORTED值。

QueryInterface 傳回要求的介面指標時,它也必須增加新對象的參考計數。 對象的參考計數是用來管理物件生命週期的數值。 當參考計數大於 1 時,無法釋放物件的記憶體,因為它正在使用中。 只有當參考計數降到 0 時,物件才能安全地釋放。

其他兩 個 IUnknown 方法 AddRefRelease 會管理參考計數。 AddRef 會遞增參考計數,而 Release 則會遞減。 所有傳回介面指標的方法或 API 函式,例如 QueryInterface,都必須呼叫 AddRef 以遞增參考計數。 接收介面指標之方法的所有實作都必須呼叫 Release ,以在不再需要指標時遞減計數。 發行 會檢查現有的參考計數,只在計數為0時釋放與介面相關聯的記憶體。

注意事項

因為 AddRefRelease 不需要傳回精確的值,所以這些方法的呼叫者不得使用傳回值來判斷物件是否仍然有效或已終結。

另請參閱

實作MAPI物件