Воскресенье, 28.04.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Как часто ви на этот сайт заходите?
Всего ответов: 159
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Система » ActiveX

Ошибка EOLESYS..OPERATION UNAVAILABLE (операция недоступна) при использовании GETACTIVEOLEOBJECT

Это происходит при использовании сервера автоматизации Delphi, или когда сервер автоматизации (например, word.basic) не запущен.

procedure TForm1.Button1Click(Sender: TObject);
var
 V: OleVariant;
begin
 V := GetActiveOleObject('Word.Basic');
 V.FileNew;
 V.Insert('тест');
end;

GetActiveOleObject определен в ComObj.pas. Он преобразует имя класса в guid и передает его при вызове Windows api функции GetActiveObject.

function GetActiveOleObject(const ClassName: string): IDispatch;
var
 ClassID: TCLSID;
 Unknown: IUnknown;
begin
 ClassID := ProgIDToClassID(ClassName);
 OleCheck(GetActiveObject(ClassID, nil, Unknown));
 OleCheck(Unknown.QueryInterface(IDispatch, Result));
end;

GetActiveOleObject использует интерфейс с именем IRunningObjectTable. Мы не регистрируем это автоматически в таблице, поэтому, чтобы воспользоваться его функциональным назначением, вы должны получить этот интерфейс и использовать его методы для регистрации.

Получить ссылку на материал

Категория: ActiveX | Добавил: Барон (05.12.2011)
Просмотров: 1229 | Теги: EOLESYS..OPERATION UNAVAILABLE, GETACTIVEOLEOBJECT | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
ActiveX [10]
CORBA и COM [16]
Kol и MCK [23]
WinAPI [28]
Компоненты [27]
Работа с Bluetooth [4]
Железо [8]
Текст [18]
Разное [98]
Королевство Delphi © 2010-2024
Яндекс цитирования