Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поддерживает инфраструктуру WRL и не предназначена для использования непосредственно из кода.
Синтаксис
class WeakReference;
Замечания
Представляет слабую ссылку, которую можно использовать с среда выполнения Windows или классической COM. Слабая ссылка представляет собой объект, который может быть доступен или недоступен.
WeakReference Объект поддерживает сильную ссылку, которая является указателем на объект, а также строгим числом ссылок, что является числом копий строгой ссылки, распределенных методомResolve(). Хотя строгое число ссылок не является ненулевой, строгой ссылкой является допустимой и объект доступен. Если строгое число ссылок становится нулевым, то строгательная ссылка является недопустимой, и объект недоступен.
Объект WeakReference обычно используется для представления объекта, существование которого контролируется внешним потоком или приложением. Например, создайте WeakReference объект из ссылки на файловый объект. Пока открыт файл, строгая ссылка является действительной. Но если закрыть файл, строгая ссылка станет недействительной.
Методы WeakReference являются потокобезопасны.
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| WeakReference::WeakReference | Инициализирует новый экземпляр класса WeakReference. |
| WeakReference::~WeakReference | Деинициализирует (уничтожает) текущий 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.