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
ResTypIdNULL 或空字符串,或者 Resource 分配器的 IDispenserDriver::CreateResource 方法生成了空或重复的 RESID。
E_FAIL
方法失败。 尚未设置 pResId 参数。 可能的原因是调用方事务正在中止。

备注

分配器管理器执行以下步骤来查找资源:

  1. 在池中搜索此 RESTYPID 的免费资源,该资源已在调用方当前事务中登记。
  2. 在池中搜索此 RESTYPID 的免费未登记资源,然后将其登记在调用方当前事务中。
  3. 通过回调资源分配器的 IDispenserDriver::CreateResource 方法创建资源,然后登记它。
如果调用方没有当前事务,则会跳过登记。 或者,如果资源分配器拒绝登记 (意味着资源) 不支持事务,则会跳过登记。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 comsvcs.h

另请参阅

IDispenserDriver

IDispenserManager

IHolder