参考WMP 的SDK,要使用皮肤,必须实现IServiceProvide 和 IWMPRemoteMediaService两个接口。 IServiceProvide 能让IOleObject找到IWMPRemoteMediaService,基于ATL的实现请看WMP SDK的例子程序。以下主要讨论宿主为CDialog的MFC实现。
一 实现IServiceProvide 和 IWMPRemoteMediaService
#pragma
once
#include " afxocc.h "
const IID IID_IWMPRemoteMediaServices =
... { 0xCBB92747,0x741F,0x44fe,
...{ 0xAB,0x5B,0xF1,0xA4,0x8F,0x3B,0x2A,0x59}
} ;
#include " wmp.h "
// 实现IServiceProvide 和 IWMPRemoteMediaService
class CCustomOleControlSite :
public COleControlSite
#include " afxocc.h "
const IID IID_IWMPRemoteMediaServices =
... { 0xCBB92747,0x741F,0x44fe,
...{ 0xAB,0x5B,0xF1,0xA4,0x8F,0x3B,0x2A,0x59}
} ;
#include " wmp.h "
// 实现IServiceProvide 和 IWMPRemoteMediaService
class CCustomOleControlSite :
public COleControlSite