thus you have shared reference count. It's highly
in memory indefinitely.
"Lady_A" <alexandra.lev@gmail.com> wrote in message
news:1168042166.981694.72520@v33g2000cwv.googlegroups.com
I have an IE plugin that is hooked into DWebBrowserEvents2 in the
following way :
[
...
dual,
...
]
interface IMyInterface : IDispatch {
part of DWebBrowserEvents2 methods with their dispids
};
Why do it this way? Why not use IDispEvent[Simple]Impl, as the
nature
intended? See ATLEventHandling sample.
It works fine and now I need to add hooking into
HTMLWindowEvents2::onunload
First of all I am not clear on how can my class can expose in the
COM_MAP an interface DWebBrowserEvents that it does not implement
according to the declaration (it has all the funcs, but there is no
":
public DWebBrowserEvents2")
DWebBrowserEvents2, being a dispinterface, is basically just a
synonym
for
IDispatch, which you do implement.
Second of all, how do I add the HTMLWindowEvents2 in this case ?
In general, you don't. Implement a separate class for each separate
event
interface you want to sink events from. Or, do as I suggested and
use
IDispEventImpl; your class can derive from IDispEventImpl more than
once,
each such derivation supporting one sink interface. Internally,
IDispEventImpl plays a clever trick called "split COM identity",
which
allows one C++ class to pretend to be several COM objects at once.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going
to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925