Метод IHolder::AllocResource (comsvcs.h)

Выделяет ресурс из инвентаризации.

Синтаксис

HRESULT AllocResource(
  [in]  const RESTYPID __MIDL__IHolder0000,
  [out] RESID          *__MIDL__IHolder0001
);

Параметры

[in] __MIDL__IHolder0000

Тип выделяемого ресурса.

[out] __MIDL__IHolder0001

Указатель на расположение, в котором возвращается дескриптор выделенного ресурса.

Возвращаемое значение

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
ResTypId имеет значение NULL или пустую строку, либо метод IDispenserDriver::CreateResource создал пустую или дубликатную строку RESID.
E_FAIL
Сбой метода. Параметр pResId не задан. Вероятная причина заключается в том, что транзакция вызывающего абонента прерывается.

Комментарии

Диспетчер диспенсера выполняет следующие действия, чтобы найти ресурс.

  1. Ищет в пуле бесплатный ресурс этого RESTYPID, который уже включен в текущую транзакцию вызывающего объекта.
  2. Выполняет поиск в пуле бесплатного ресурса, не внесенного в список, этого RESTYPID, а затем заверяет его в текущую транзакцию вызывающего объекта.
  3. Создает ресурс, вызывая метод IDispenserDriver::CreateResource , а затем заверяет его.
Если у вызывающего объекта нет текущей транзакции, зачисление пропускается. Или если диспенсер ресурсов отклоняет зачисление (это означает, что ресурс не поддерживает транзакцию), зачисление пропускается.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header comsvcs.h

См. также раздел

IDispenserDriver

IDispenserManager

IHolder