On Mon, Jul 17, 2000 at 08:31:38PM +0200, Juergen Schmied wrote:
> Not jet looked really deep into it but creating new instances of objects
> in a QueryInterface call violates basic rules of COM. Every call
> of QueryInterface for a given IID _MUST_ return a pointer to the same
> object means:
> QueryInterface is never supposed to create objects.
> 
> (Example how to do such things shell32/shlfolder.c)

My patch actually does not create objects, just object shells, with just
a vtable, reference count and a pointer to the data-struct, which stays the
same for every interface. I did this to avoid excessive function overhead ;)

Hmm, looking at your solution it is just not feasible for DDRAW.
We reuse 99% of all functions in the other interfaces, so your multiple
vtables/offset approach, while correct, would cause a lot more functions
to be needed in there.  

Ciao, Marcus

Reply via email to