Cobus Kruger
Cobus Kruger

Reputation: 8605

What are dispinterface declarations used for?

When you create a type library in Delphi and create an interface and the associated CoClass, Delphi also creates matching dispinterface declarations.

My understanding is that these relate to the fact that my interface derives from IDispatch, but I thought that TAutoObject implements everything needed for IDispatch. So my question is threefold:

  1. What is the dispinterface used for?
  2. Why is it needed?
  3. How does one use it?

Upvotes: 6

Views: 4808

Answers (2)

zendar
zendar

Reputation: 13572

TechVanguards.com is Delphi & COM website with really good content. It have tutorials and some advanced examples.
You'll find informations about disp interfaces and examples how to work with them.

Upvotes: 2

Toby Allen
Toby Allen

Reputation: 11211

COM is like VOODOO you should only get involved if you are willing to be consumed by its power!

COM really is an enormously complicated subject when you get down to the nitty gritty. However on the surface an implementation like Delphis gives you all the tools you need to use it very simply. However if you are interested in getting down and dirty there are some very good books on COM including (from a Delphi perspective) Delphi Com Programming.

To really simplify and try to answer your questions.

  1. VB was not able to deal with IUnknown due to limitations in its use of pointers (or something like that) so Microsoft added dispatch or disp interaces which allowed VB to interact with COM objects. These dispinterfaces then became the basis of Ole Automation objects (a branch of COM).
  2. To Let VB work with COM
  3. Let Delphi do that for you.

Upvotes: 6

Related Questions