Ann and Jason Edmeades wrote:

However, this would seem something which is so common - ie inheritence is
used all over the place. How do people handle this? I've looked through a
few places in the code and cant see how this can be done. I could 'pretend'
by initializing the Vtbl as I create the com object and do some LoadLibrary
type dynamic addressing but I really want link time resolution not load time
resolution.

One solution would be to put the common routines in a header file, and
#include it, but code in headers or #including modules is uaually frowned
upon! I cant see any sensible way of doing this and I'd rather not do lots
of code duplication if avoidable as this common class is used in about 7
other classes!



Have a look at dlls/quartz/pin.h
I have emulated C++ style inheritance by creating a structure that is included at the start of every derived implementation and then constructing the vtable at compile time and linking to the base functions. If you wanted to do the same for d3d{8,9} and wined3d you would have to add each common function to the spec file.


Rob




Reply via email to