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


Добавление функциональных возможностей агента Microsoft в приложение

[Microsoft Agent является нерекомендуемым начиная с Windows 7 и может быть недоступен в последующих версиях Windows.]

Чтобы получить доступ к интерфейсам сервера Microsoft Agent, агент уже должен быть установлен в целевой системе. Установка, кроме использования самоустановляющегося исполняемого файла агента, например попытка копирования и регистрации файлов компонентов агента, не поддерживается. Это обеспечивает согласованную и полную установку. Обратите внимание, что самоустраняющийся файл агента Microsoft Не будет установлен в операционных системах Microsoft Windows 2000 и более поздних версий, так как эти версии операционной системы уже включают собственную версию агента.

Чтобы успешно установить агент в целевой системе с предыдущей операционной системой Microsoft Windows, необходимо также убедиться, что в целевой системе установлена последняя версия среды выполнения Microsoft Visual C++ (Msvcrt.dll), средства регистрации Майкрософт (Regsvr32.dll) и библиотек DLL Microsoft COM. Самый простой способ убедиться, что необходимые компоненты находятся в целевой системе, — установить Microsoft Internet Обозреватель 3.02 или более поздней версии. Кроме того, можно установить первые два компонента, доступные в составе Microsoft Visual C++. Необходимые библиотеки DLL COM можно установить в рамках обновления Microsoft DCOM, доступного на веб-сайте Майкрософт. Дополнительные сведения и сведения о лицензировании этих компонентов можно найти на веб-сайте Майкрософт.

Языковые компоненты агента можно установить таким же образом. Аналогичным образом этот метод можно использовать для установки формата ACS символов Майкрософт, доступных для распространения на веб-сайте агента Майкрософт. Символьные файлы автоматически устанавливаются в подкаталог Microsoft Agent \Chars.

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

После установки для вызова интерфейсов агента создайте экземпляр сервера и запросите указатель на определенный интерфейс, поддерживаемый сервером, используя стандартное соглашение COM. В частности, библиотека COM предоставляет функцию API CoCreateInstance, которая создает экземпляр объекта и возвращает указатель на запрошенный интерфейс объекта. Запросите указатель на интерфейс IAgent или IAgentEx в вызове CoCreateInstance или в последующем вызове QueryInterface.

Следующий код иллюстрирует это в C/C++.

hRes = CoCreateInstance(CLSID_AgentServer,
                     NULL,
                     CLSCTX_SERVER,
                     IID_IAgentEx,
                     (LPVOID *)&pAgentEx);

Если сервер агента Майкрософт запущен, эта функция подключается к серверу; в противном случае запускается сервер.

Обратите внимание, что интерфейсы сервера агента Майкрософт часто включают расширенные интерфейсы, включающие суффикс Ex. Эти интерфейсы являются производными от и, следовательно, включают все функциональные возможности их аналогов, отличных от Ex. Если вы хотите использовать какие-либо расширенные функции, используйте интерфейсы Ex.

Функции, которые принимают указатели на BSTR, выделяют память с помощью SysAllocString. За освобождение памяти с помощью SysFreeString отвечает вызывающий объект.