Метод IFunctionDiscovery::AddInstance (functiondiscoveryapi.h)

[Функция обнаружения доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]

Создает или изменяет экземпляр функции.

Синтаксис

HRESULT AddInstance(
  [in]  SystemVisibilityFlags enumSystemVisibility,
  [in]  const WCHAR           *pszCategory,
  [in]  const WCHAR           *pszSubCategory,
  [in]  const WCHAR           *pszCategoryIdentity,
  [out] IFunctionInstance     **ppIFunctionInstance
);

Параметры

[in] enumSystemVisibility

Значение SystemVisibilityFlags , указывающее, является ли созданный экземпляр функции видимым на уровне системы или только для текущего пользователя.

Примечание Экземпляр функции хранится в HKEY_LOCAL_MACHINE независимо от значения enumSystemVisibility . Пользователь должен иметь права администратора, чтобы добавить экземпляр функции.
 

[in] pszCategory

Категория созданного экземпляра функции. См. раздел Определения категорий.

[in] pszSubCategory

Подкатегория созданного экземпляра функции. См. раздел Определения подкатегорий. Максимальная длина этой строки составляет MAX_PATH.

[in] pszCategoryIdentity

Строка идентификатора экземпляра поставщика. Эта строка возвращается из GetProviderInstanceID.

[out] ppIFunctionInstance

Указатель на указатель интерфейса IFunctionInstance , который получает экземпляр функции.

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

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

Возвращаемый код или значение Описание
S_OK
Метод завершился успешно.
E_INVALIDARG
Недопустимое значение enumSystemVisibility, pszCategory или pszCategoryIdentity .
E_OUTOFMEMORY
Метод не может выделить память, необходимую для выполнения этой операции.
E_ACCESSDENIED
У пользователя недостаточно разрешений на доступ для выполнения запрошенного действия.
E_FAIL
Поставщик не поддерживает добавление экземпляров функций напрямую с помощью метода AddInstance .
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
Значение pszCategory или pszSubCategory неизвестно.
STRSAFE_E_INVALID_PARAMETER
Указан недопустимый параметр. Эта ошибка возвращается, когда длина строки pszSubCategory превышает MAX_PATH.

Комментарии

Этот метод временно создает новый экземпляр функции для указанной категории и подкатегории. Поставщик, реализующий категорию, отвечает за сохранение метаданных, связанных с вновь созданным экземпляром функции, с помощью метода IFunctionDiscoveryProviderFactory::CreateInstance .

Экземпляр функции не записывается в реестр, если его связанное хранилище свойств не имеет значений. Используйте метод IFunctionInstance::OpenPropertyStore для проверка значений хранилища свойств.

Если экземпляр функции для указанной категории и подкатегории уже существует, существующая запись реестра перезаписывается. Метод AddInstance возвращает S_OK. Процесс уведомления об изменении обнаружения функций вызывает метод IFunctionDiscoveryNotification::OnUpdate вызывающего приложения с параметром enumQueryUpdateAction, для QUA_CHANGE.

Примечание Метод IFunctionDiscoveryNotification::OnUpdate не поддерживается текущим поставщиком.
 
Способен ли новый экземпляр функции быть видимым для всей системы или только для пользователя, зависит от поставщика. Поставщик реестра изначально задает видимость экземпляра функции по умолчанию для всей системы.

Разрешение на доступ для изменения HKEY_LOCAL_MACHINE\SYSTEM разделов реестра требуется для добавления или удаления экземпляров функций с помощью поставщика реестра (доступ администратора или power user).

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header functiondiscoveryapi.h
DLL FunDisc.dll

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

IFunctionDiscovery