Метод 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

VARIANT_TRUE при возврате из этого метода, если группа общих свойств, указанная в параметре name, существовала до этого вызова, и VARIANT_FALSE, если группа свойств была создана этим вызовом.

[out] ppGroup

Ссылка на ISharedPropertyGroup, которая представляет собой группу общих свойств, определяемую параметром Name , или значение NULL при обнаружении ошибки.

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

Этот метод может возвращать стандартные возвращаемые значения E_OUTOFMEMORY, E_UNEXPECTED и E_FAIL, а также следующие значения.

Код возврата Описание
S_OK
Ссылка на группу общих свойств, указанная в параметре Name , возвращается в параметре ppGroup .
CONTEXT_E_NOCONTEXT
Вызывающий объект не выполняется в com+. Чтобы использовать диспетчер общих свойств, вызывающий объект должен выполняться в разделе COM+.
E_INVALIDARG
По крайней мере один из параметров недопустим, или один и тот же объект пытается создать одну и ту же группу свойств несколько раз.

Комментарии

Следующие константы используются для указания эффективного режима изоляции для группы общих свойств.

Константа Значение Описание
LockSetGet 0 Значение по умолчанию. Это гарантирует, что каждая операция получения или задания в общем свойстве является атомарной, блокируя свойство во время вызова. Это гарантирует, что два клиента не смогут одновременно выполнять чтение или запись в одно и то же свойство, но не запрещает другим клиентам одновременный доступ к другим свойствам в одной группе.
LockMethod 1 Это значение блокирует все свойства в группе общих свойств для монопольного использования вызывающим объектом до тех пор, пока выполняется текущий метод вызывающего объекта. Это подходящий режим для использования при наличии взаимозависимостей между свойствами или в случаях, когда клиенту может потребоваться обновить свойство сразу после чтения, чтобы получить к нему доступ.
 
Примечание Если для режима изоляции задано значение LockMethod, диспетчеру общих свойств требуется доступ к контексту объекта вызывающего объекта. Этот режим изоляции нельзя использовать для создания группы общих свойств из конструктора объекта или из объекта, отличного от COM+, так как контекст объекта недоступен во время создания объекта, а базовый клиент не имеет контекста объекта.
 
Следующие константы используются для указания действующего режима выпуска для группы общих свойств.
Константа Значение Описание
Standard 0 Значение по умолчанию. Когда все клиенты удаляют свои ссылки на группу свойств, она автоматически уничтожается.
Процесс 1 Группа свойств не уничтожается до тех пор, пока не завершается процесс, в котором она была создана. Объекты, которые содержат ссылки в группе свойств, по-прежнему должны вызывать Release для своих ссылок.
 
Примечание Объект никогда не должен пытаться передать ссылку на группу общих свойств другому объекту. Если ссылка передается за пределы объекта, который ее получил, она больше не является допустимой.
 

Требования

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

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

ISharedPropertyGroupManager