Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция обнаружения доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]
Создает или изменяет экземпляр функции.
Синтаксис
HRESULT AddInstance(
[in] SystemVisibilityFlags enumSystemVisibility,
[in] const WCHAR *pszCategory,
[in] const WCHAR *pszSubCategory,
[in] const WCHAR *pszCategoryIdentity,
[out] IFunctionInstance **ppIFunctionInstance
);
Параметры
[in] enumSystemVisibility
Значение SystemVisibilityFlags , указывающее, является ли созданный экземпляр функции видимым на уровне системы или только для текущего пользователя.
[in] pszCategory
Категория созданного экземпляра функции. См. раздел Определения категорий.
[in] pszSubCategory
Подкатегория созданного экземпляра функции. См. раздел Определения подкатегорий. Максимальная длина этой строки составляет MAX_PATH.
[in] pszCategoryIdentity
Строка идентификатора экземпляра поставщика. Эта строка возвращается из GetProviderInstanceID.
[out] ppIFunctionInstance
Указатель на указатель интерфейса IFunctionInstance , который получает экземпляр функции.
Возвращаемое значение
Возможные возвращаемые значения включают, помимо прочего, следующие.
| Возвращаемый код или значение | Описание |
|---|---|
|
Метод завершился успешно. |
|
Недопустимое значение enumSystemVisibility, pszCategory или pszCategoryIdentity . |
|
Метод не может выделить память, необходимую для выполнения этой операции. |
|
У пользователя недостаточно разрешений на доступ для выполнения запрошенного действия. |
|
Поставщик не поддерживает добавление экземпляров функций напрямую с помощью метода AddInstance . |
|
Значение pszCategory или pszSubCategory неизвестно. |
|
Указан недопустимый параметр. Эта ошибка возвращается, когда длина строки pszSubCategory превышает MAX_PATH. |
Комментарии
Этот метод временно создает новый экземпляр функции для указанной категории и подкатегории. Поставщик, реализующий категорию, отвечает за сохранение метаданных, связанных с вновь созданным экземпляром функции, с помощью метода IFunctionDiscoveryProviderFactory::CreateInstance .
Экземпляр функции не записывается в реестр, если его связанное хранилище свойств не имеет значений. Используйте метод IFunctionInstance::OpenPropertyStore для проверка значений хранилища свойств.
Если экземпляр функции для указанной категории и подкатегории уже существует, существующая запись реестра перезаписывается. Метод AddInstance возвращает S_OK. Процесс уведомления об изменении обнаружения функций вызывает метод IFunctionDiscoveryNotification::OnUpdate вызывающего приложения с параметром enumQueryUpdateAction, для QUA_CHANGE.
Разрешение на доступ для изменения HKEY_LOCAL_MACHINE\SYSTEM разделов реестра требуется для добавления или удаления экземпляров функций с помощью поставщика реестра (доступ администратора или power user).
Требования
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Целевая платформа | Windows |
| Header | functiondiscoveryapi.h |
| DLL | FunDisc.dll |