ISharedPropertyGroupManager::CreatePropertyGroup 方法 (comsvcs.h)

创建新的共享属性组。 如果已存在具有指定名称的属性组, CreatePropertyGroup 将返回对现有组的引用。

语法

HRESULT CreatePropertyGroup(
  [in]      BSTR                 Name,
  [in, out] LONG                 *dwIsoMode,
  [in, out] LONG                 *dwRelMode,
  [out]     VARIANT_BOOL         *fExists,
  [out]     ISharedPropertyGroup **ppGroup
);

参数

[in] Name

要创建的共享属性组的名称。

[in, out] dwIsoMode

新共享属性组中属性的隔离模式。 请参阅下面的“备注”中的常量表。 如果 fExists 参数的值设置为从此方法返回时VARIANT_TRUE,则忽略输入值,并且此参数中返回的值是创建属性组时分配的隔离模式。

[in, out] dwRelMode

新共享属性组中属性的发布模式。 请参阅下面的“备注”中的常量表。 如果 fExists 参数的值设置为从此方法返回时VARIANT_TRUE,则忽略输入值,并且此参数中返回的值是创建属性组时分配的释放模式。

[out] fExists

如果在此调用之前存在 name 参数中指定的共享属性组,则从此方法返回时VARIANT_TRUE;如果此调用创建了属性组,则VARIANT_FALSE。

[out] ppGroup

ISharedPropertyGroup(由 Name 参数标识的共享属性组)的引用;如果遇到错误,则为 NULL

返回值

此方法可以返回标准返回值E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及以下值。

返回代码 说明
S_OK
ppGroup 参数中返回对 Name 参数中指定的共享属性组的引用。
CONTEXT_E_NOCONTEXT
调用方未在 COM+ 下执行。 调用方必须在 COM+ 下执行才能使用共享属性管理器。
E_INVALIDARG
至少有一个参数无效,或者同一对象尝试多次创建同一属性组。

注解

以下常量用于指定共享属性组的有效隔离模式。

常数 Value 说明
LockSetGet 0 默认值。 它通过在调用期间锁定属性来确保对共享属性的每个 get 或 set 操作都是原子的。 这可确保两个客户端不能同时读取或写入同一属性,但不会阻止其他客户端同时访问同一组中的其他属性。
LockMethod 1 只要调用方当前方法正在执行,此值将锁定共享属性组中的所有属性,以供调用方独占使用。 当属性之间相互依赖时,或者在客户端可能需要在读取属性后立即更新属性才能再次访问该属性时,可以使用此模式。
 
注意 将隔离模式设置为 LockMethod 时,共享属性管理器需要访问调用对象的对象上下文。 不能使用此隔离模式从对象的构造函数内或从非 COM+ 对象创建共享属性组,因为对象上下文在对象构造期间不可用,并且基本客户端没有对象上下文。
 
以下常量用于指定共享属性组的有效发布模式。
常数 Value 说明
标准 0 默认值。 在所有客户端都已释放其对属性组的引用之后,将自动损坏该属性组。
进程 1 在终止在其中创建属性组的进程之前,不损坏该属性组。 在属性组上保存引用的对象仍必须对其引用调用 Release
 
注意 对象绝不应尝试将共享属性组引用传递给另一个对象。 如果引用是在获取该引用的对象外部传递的,则它不再是有效的引用。
 

要求

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

另请参阅

ISharedPropertyGroupManager