如何使用WTL调用ActiveX?

如何使用WTL调用ActiveX?

以调用Flash控件为例:
1.包含相关文件:
#include<atlcom.h>
#include<atlhost.h>

2.导入ShockwaveFlash类型库:
#import"C:/WINDOWS/SYSTEM32/MACROMED/FLASH/Flash.ocx"
usingnamespaceShockwaveFlashObjects;

3.WinMain中进行初始化:
AtlAxWinInit();
4.添加一个ActiveXControl,选择ShockwaveFlashObject
5.对其进行操作:
CAxWindowwndFlash=GetDlgItem(IDC_FLASH);
CComPtr<IShockwaveFlash>p;
HRESULThr=m_Flash.QueryControl(__uuidof(IShockwaveFlash),(LPVOID*)&p);
if(SUCCEEDED(hr))
{
p->put_Movie(CComBSTR(_T("C://1.swf")));
p->Play();
}