Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 640

•  TDictionary Custom Sort  6 644

•  Fast Watermark Sources  6 422

•  3D Designer  9 363

•  Sik Screen Capture  6 750

•  Patch Maker  7 139

•  Айболит (remote control)  7 150

•  ListBox Drag & Drop  6 009

•  Доска для игры Реверси  97 597

•  Графические эффекты  7 335

•  Рисование по маске  6 622

•  Перетаскивание изображений  5 492

•  Canvas Drawing  5 872

•  Рисование Луны  5 595

•  Поворот изображения  5 103

•  Рисование стержней  3 672

•  Paint on Shape  2 903

•  Генератор кроссвордов  3 801

•  Головоломка Paletto  3 053

•  Теорема Монжа об окружностях  3 861

•  Пазл Numbrix  2 544

•  Заборы и коммивояжеры  3 257

•  Игра HIP  2 227

•  Игра Go (Го)  2 162

•  Симулятор лифта  2 539

•  Программа укладки плитки  2 177

•  Генератор лабиринта  2 677

•  Проверка числового ввода  2 327

•  HEX View  2 662

•  Физический маятник  2 294

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



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



- Надо снять порчу с компьютера, - сказала цыганка, запустив DrWeb.

Это происходит при использовании сервера автоматизации 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. Мы не регистрируем это автоматически в таблице, поэтому, чтобы воспользоваться его функциональным назначением, вы должны получить этот интерфейс и использовать его методы для регистрации.


Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте