ATL开发控件有关问题

ATL开发控件问题
在ATL控件中创建一个WMP控件,怎样获取这个WMP控件的事件,并将一些状态信息显示在开发的ATL控件界面上?
有人做过类似的控件的话给些提示,谢谢

------解决方案--------------------
现在能获取静态的控件事件,怎么处理在ATL下动态创建的WMP控件的EVENT呢?
--------
ConnectionPoint


从sohu网页上看到的。
unction play() {
try {
if( !isItself ) {
playorpause.innerHTML = pausebtnstr;
wmplayer.style.display = "block ";


vmask.style.display = "none ";
if( isAfterPause ) {
wmplayer.play();
} else {
wmplayer.FileName = playurl;
setPosition( 0 );
wmplayer.play();
}

isAfterPause = false;
isPlaying = true;
isItself = true;

setVolume( volumeNum );
openTime();
}
} catch( e ) {
setTimeout( "play() ", 1000 );
}

return false;

}
--------------
wmp player?

除了自己写控件,用wmp控件外,也可以用flash播放。
------解决方案--------------------
这是我开发的一个ie工具条中,截取IE程序中浏览器控件事件的方法,对你应该有所启发


HRESULT CBeeToolBar::Connect(void)

{

HRESULT hr;


// 为 WebBrowser 事件查找连接点
hr = m_spCPC-> FindConnectionPoint(DIID_DWebBrowserEvents2, &m_spCP);

if (FAILED(hr))
return hr;

// 将我们的事件处理器传递给容器。事件发生时容器将调用我们实现的
// IDispatch 接口函数

hr = m_spCP-> Advise( reinterpret_cast <IDispatch*> (this), &m_dwCookie);

return hr;

}

HRESULT CBeeToolBar::Invoke(DISPID dispIdMember, REFIID riid,
LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
VARIANT* pvarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)

{

switch (dispIdMember) {
case DISPID_NEWWINDOW2 :
{
if(AntiPopWindow())
{
*(pDispParams-> rgvarg[0].pboolVal) =true;

}else
{
// *(pDispParams-> rgvarg[1].pdispVal)=this;

*(pDispParams-> rgvarg[0].pboolVal) =false;
}
}
break;
case DISPID_ONQUIT :
if(m_spCP)
{
m_spCP-> Unadvise(m_dwCookie);
m_spCP=NULL;
m_dwCookie=0;
};
break;

}

return NOERROR;

}