On 02/02/2018 07:00 AM, Anton Romanov wrote:
TRACE("(%p)->(IID_IWMPPlayer4 %p)\n", This, ppv); *ppv = &This->IWMPPlayer4_iface;
- }else if(IsEqualGUID(riid, &IID_IWMPPlayer)) {
TRACE("(%p)->(IID_IWMPPlayer %p)\n", This, ppv);
*ppv = &This->IWMPPlayer4_iface;
You can't do that. IWMPPlayer4 doesn't inherit from IWMPPlayer, so it's not the same interface. Also a short test (just calling QueryInterface() and checking the result) would be nice.
Btw, even though IWMPPlayer does not inherit it "duplicates the methods of IWMPPlayer, IWMPPlayer2, and IWMPPlayer3, inherits the methods of IWMPCore3, and exposes additional methods" (c) MSDN. So, is there really a need to duplicate a vtbl?
Thanks, Anton.