Метод IHolder::TrackResource (comsvcs.h)
Отслеживает ресурс.
Синтаксис
HRESULT TrackResource(
[in] const RESID __MIDL__IHolder0003
);
Параметры
[in] __MIDL__IHolder0003
Дескриптор отслеживаемого ресурса. Диспенсер ресурсов уже создал этот ресурс перед вызовом TrackResource.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Метод завершился успешно. |
|
ResId не является допустимым дескриптором ресурса. |
|
Сбой метода. Ресурс не отслеживается. Вероятная причина заключается в том, что транзакция вызывающего абонента прерывается. |
Комментарии
Некоторые ресурсы не хранятся на складе; они всегда производятся по требованию. Владелец используется только в качестве механизма для автоматического освобождения ресурсов, оставшихся в конце времени существования объекта.
TrackResource сообщает владельцу, что ресурс должен отслеживаться до тех пор, пока он не будет освобожден путем вызова IHolder::UntrackResource или до освобождения объекта TrackResource , после чего диспетчер диспенсера автоматически освободит ресурс.
Если trackResource вызывается из транзакционного объекта, он вызывает метод IDispenserDriver::EnlistResource для диспенсера ресурсов. Метод EnlistResource может заверять ресурс в транзакцию или возвращать S_FALSE, указывая, что ресурс не поддерживает транзакцию и не был зачислен.
В конечном итоге этот ресурс будет уничтожен после того, как выполняются оба следующих условия:
- Диспенсер ресурсов вызывает IHolder::UntrackResource (скорее всего, по запросу компонента), или заканчивается время существования объекта.
- Выполняется транзакция, в которую был зачислен ресурс (если таковой имеется).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | comsvcs.h |