这是我尝试设置IAdviseSink
在我的TForm1
类中实现的接口以捕获新创建的 MSWord 文档的一些事件的代码。代码运行时我没有任何错误,但是在保存文档或关闭文档时我无法捕获任何事件。如何IAdviseSink
正确设置 MSWord 文档?
var
Form1 : TForm1;
doc_ole_obj : IOleObject;
word : IDispatch;
Connection: LongInt;
implementation
//------------ Setup IAdviseSink
procedure TForm1.Setup;
begin
word := CreateOleObject('Word.Application');
OleVariant(word).Visible := True;
IUnknown(OleVariant(word).Documents.Open('file.doc')).QueryInterface(IOleObject,doc_ole_obj);
doc_ole_obj.Advise(IAdviseSink(Self), Connection);
end;
//------------- catch Sink events
procedure TForm1.OnSave;
begin
Caption := 'saved at ' + TimeToStr(Now);
end;