Edit:
Ignore this answer. Leaving it for educational purposes.
Why cast IAdviseSink(Self)?
If you declared an interface in the declaration of the Form class:
TForm1 = class(TForm, IAdviseSink)
...
end;
You do not need.
, ( , ), , . , , IAdviseSink , OnSave.
, :
Sertac " ". , IAdviseSink, ,
doc_ole_obj.Advise(IAdviseSink(Self), Connection);
[DCC Error] Unit1.pas(41): E2010 : "IAdviseSink" "TForm1"
IAdviseSink(Self), , , TForm(SomePointer), SomePointer TForm. , , , , . . - .