支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
語法
class WeakReference;
備註
表示可與 Windows 執行階段 或傳統 COM 搭配使用的弱式參考。 弱式參考代表不一定可存取的物件。
WeakReference對象會維護強式參考,這是物件的指標,而強式參考計數則是方法Resolve()所散發之強式參考的複本數目。 雖然強式參考計數不是零,但強式參考有效,而且物件可存取。 當強式參考計數變成零時,強式參考無效,而且對象無法存取。
WeakReference物件通常用來表示其存在是由外部線程或應用程式所控制的物件。 例如,從檔案對象的參考建構 WeakReference 物件。 在檔案開啟時,強式參考是有效的。 但若檔案關閉,強式參考就變成無效的。
方法是 WeakReference 安全線程。
成員
公用建構函式
| 名稱 | 描述 |
|---|---|
| WeakReference::WeakReference | 初始化 WeakReference 類別的新執行個體。 |
| WeakReference::~WeakReference | Deinitializes (destroys) 類別的 WeakReference 目前實例。 |
公用方法
| 名稱 | 描述 |
|---|---|
| WeakReference::D ecrementStrongReference | 遞減目前 WeakReference 對象的強式參考計數。 |
| WeakReference::IncrementStrongReference | 遞增目前 WeakReference 對象的強式參考計數。 |
| WeakReference::Resolve | 如果強式參考計數非零,則設定目前強式參考值的指定指標。 |
| WeakReference::SetUnknown | 將目前 WeakReference 對象的強式參考設定為指定的介面指標。 |
繼承階層架構
WeakReference
需求
標頭: implements.h
命名空間: Microsoft::WRL::D etails
WeakReference::~WeakReference
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
virtual ~WeakReference();
傳回值
備註
將類別的 WeakReference 目前實例取消初始化。
WeakReference::D ecrementStrongReference
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
ULONG DecrementStrongReference();
備註
遞減目前 WeakReference 對象的強式參考計數。
當強式參考計數變成零時,強式參考會設定為 nullptr。
傳回值
遞減的強式參考計數。
WeakReference::IncrementStrongReference
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
ULONG IncrementStrongReference();
傳回值
遞增的強式參考計數。
備註
遞增目前 WeakReference 對象的強式參考計數。
WeakReference::Resolve
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
STDMETHOD(Resolve)
(REFIID riid,
_Deref_out_opt_ IInspectable **ppvObject
);
參數
riid
介面識別碼。
ppvObject
當此作業完成時,如果強式參考計數為非零,則為目前強式參考的複本。
傳回值
如果這項作業成功,且強式參考計數為零,S_OK。 ppvObject 參數會設定為
nullptr。如果這項作業成功,且強式參考計數為非零,S_OK。 ppvObject 參數會設定為強式參考。
否則,表示此作業失敗的原因的 HRESULT。
備註
如果強式參考計數非零,則設定目前強式參考值的指定指標。
WeakReference::SetUnknown
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
void SetUnknown(
_In_ IUnknown* unk
);
參數
unk
對象的介面指標 IUnknown 。
備註
將目前 WeakReference 對象的強式參考設定為指定的介面指標。
WeakReference::WeakReference
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
WeakReference();
備註
初始化 WeakReference 類別的新執行個體。
對象的強式參考指標 WeakReference 會初始化為 nullptr,且強式參考計數會初始化為 1。