Поделиться через


Функция CreateHardwareEventMoniker

[Эта функция доступна в Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003. Он может быть изменен или недоступен в последующих версиях Windows.]

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

Синтаксис

HRESULT CreateHardwareEventMoniker(
  _In_  REFCLSID clsid,
  _In_  LPCTSTR  pszEventHandler,
  _Out_ IMoniker **ppmoniker
);

Параметры

clsid [in]

Тип: REFCLSID

Идентификатор класса, к которому привязывается моникер.

pszEventHandler [in]

Тип: LPCTSTR

Имя обработчика событий.

ppmoniker [out]

Тип: IMoniker**

Адрес переменной указателя, получающей указатель интерфейса IMoniker .

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

Тип: HRESULT

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Используйте CreateHardwareEventMoniker при регистрации запущенных приложений, чтобы эти приложения имели доступ к событиям автозапуска. Чтобы использовать события автозапуска в запущенных приложениях, необходимо сначала создать новый компонент, реализующий интерфейс IHWEventHandler . Инициализируйте этот интерфейс с помощью значения InitCmdLine из записи конкретного обработчика в ключе Handlers , так как автозапуск не вызывает метод Initialize .

Вызовите Метод CreateHardwareEventMoniker , чтобы получить моникер, представляющий компонент и его обработчик событий. Затем используйте значение, возвращаемое в параметре ppmoniker , чтобы зарегистрировать компонент в таблице выполняющихся объектов (ROT), как показано в примере.

Обратите внимание, что CreateHardwareEventMoniker не определен в файле заголовка. Чтобы использовать его в коде, необходимо получить дескриптор файла Shsvcs.dll через вызов LoadLibrary. Затем вы используете этот дескриптор в вызове GetProcAddress , чтобы получить экземпляр функции CreateHardwareEventMoniker .

Для вызова метода IRunningObjectTable::Register необходимо ввести следующие сведения AppID в реестре.

HKEY_CLASSES_ROOT
   AppID
      MyApp.exe
         (Default) = MyApplication
         AppID [REG_SZ] = {Your GUID here}
HKEY_CLASSES_ROOT
   AppID
      {The same GUID here}
         (Default) = MyApplication
         RunAs = Interactive User

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Нет
DLL
Shsvcs.dll