Чтение онлайн

на главную

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

if Assigned(PointContainer) then begin

OleCheck(PointContainer.FindConnectionPoint(ApplicationEvents, Point));

if Assigned(Point) then Point.Advise((WordSink as IUnknown), WordSink.AppCookie);

end;

// Sink with a Word document advise

OleCheck(WordDoc.QueryInterface(IConnectionPointContainer, PointContainer));

if Assigned(PointContainer) then begin

OleCheck(PointContainer.FindConnectionPoint(DocumentEvents, Point));

if Assigned(Point) then Point.Advise((WordSink as IUnknown), WordSink.DocCookie);

end;

 excepton E: Exception do

ShowMessage(E.Message);

 end;

end;

procedure TmainForm.btnStartClick(Sender: TObject);

begin

 FWordApp := CoApplication_.Create;

 FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);

 FWordApp.Visible := True;StartWordConnection(FWordApp, FWordDoc, FWordSink);

end;

procedure TmainForm.btnExitClick(Sender: TObject);

begin

 FWordApp := CoApplication_.Create;

 FWordDoc := FWordApp.Documents.Add(EmptyParam, EmptyParam);

 FWordApp.Visible := True;

 StartWordConnection(FWordApp, FWordDoc, FWordSink);

end;

procedure tmainform.btnexitclick(sender: tobject);

begin

 FWordApp.Quit(EmptyParam, EmptyParam, EmptyParam);

end;

Модуль
отслеживания линков

unit ConnectionObject;

interface

uses Word_TLB, dialogs;

type TWordConnection = class(TObject, IUnknown, IDispatch)

protected

 {IUnknown}

 function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;

 function _AddRef: Integer; stdcall;

 function _Release: Integer; stdcall;

 { IDispatch }

 function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;

 function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;

 function GetTypeInfoCount(out Count: Integer): HResult; stdcall;

 function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;

public

 WordApp: _Application;

 WordDoc: _Document;

 AppCookie, DocCookie: Integer;

end;

implementation

{ IUnknown Methods }

uses windows, activex, main;

procedure LogComment(comment: string);

begin

 Form1.Memo1.Lines.Add(comment);

end;

function TWordConnection._AddRef: Integer;

begin

 Result := 2;

end;

function TWordConnection._Release: Integer;

begin

 Result := 1;

end;

function TWordConnection.QueryInterface(const IID: TGUID; out Obj): HResult;

begin

 Result := E_NOINTERFACE;

 Pointer(Obj) := nil;

 if (GetInterface(IID, Obj)) then Result := S_OK;

 if not Succeeded(Result) then

Поделиться:
Популярные книги

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Неудержимый. Книга XIV

Боярский Андрей
14. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIV

Идеальный мир для Лекаря

Сапфир Олег
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря

Подаренная чёрному дракону

Лунёва Мария
Любовные романы:
любовно-фантастические романы
7.07
рейтинг книги
Подаренная чёрному дракону

Я Гордый часть 2

Машуков Тимур
2. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 2

Бальмануг. Невеста

Лашина Полина
5. Мир Десяти
Фантастика:
юмористическое фэнтези
5.00
рейтинг книги
Бальмануг. Невеста

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Сонный лекарь 6

Голд Джон
6. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 6

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Ночь со зверем

Владимирова Анна
3. Оборотни-медведи
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Ночь со зверем

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

Барон устанавливает правила

Ренгач Евгений
6. Закон сильного
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Барон устанавливает правила