I think it is better to separate the vtables first - ie, give
IDirectDrawSurface4, IDirectDrawSurface2 and IDirectDrawSurface their
own vtable
Also the last iteration of Michael Karcher's patches missed out some
getters, like IDirect3DDevice*::GetRenderTarget. There may be other
functions that need to be adjusted to AddRef/Release version specific
refcounts.