3,245
社区成员
发帖
与我相关
我的任务
分享
CoInitialize(NULL);
IShockwaveFlash* flash = NULL;
IUnknown* un = NULL;
const IID id={0xd27cdb6e,0xae6d,0x11cf,
{0x96,0xb8,0x44,0x45,0x53,0x54,0x0,0x0} };
HRESULT hr = CoCreateInstance(id,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,(void**)&un);
hr = un->QueryInterface(__uuidof(IShockwaveFlash), (void**)&flash);
hr = flash->put_WMode(L"transparent");
if (SUCCEEDED(hr))
TRACE("succeed\n");
HWND ha = AfxGetApp()->m_pMainWnd->m_hWnd;
AtlAxAttachControl(flash, ha, NULL); //到这里就会崩溃
hr = flash->put_Movie(_bstr_t("C:\\flower.swf"));
if (SUCCEEDED(hr))
TRACE("succeed\n");
[/quote]
换句话说,你用的Window是CAxWindow吗?[/quote]
我没用ActiveX 的那个Flash插件 , 我直接绑定到我生成的对话框上,现在已经能播放了, 不知道这样实现算不算脱离MFC
CoInitialize(NULL);
IShockwaveFlash* flash = NULL;
IUnknown* un = NULL;
const IID id={0xd27cdb6e,0xae6d,0x11cf,
{0x96,0xb8,0x44,0x45,0x53,0x54,0x0,0x0} };
HRESULT hr = CoCreateInstance(id,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,(void**)&un);
hr = un->QueryInterface(__uuidof(IShockwaveFlash), (void**)&flash);
hr = flash->put_WMode(L"transparent");
if (SUCCEEDED(hr))
TRACE("succeed\n");
HWND ha = AfxGetApp()->m_pMainWnd->m_hWnd;
AtlAxAttachControl(flash, ha, NULL); //到这里就会崩溃
hr = flash->put_Movie(_bstr_t("C:\\flower.swf"));
if (SUCCEEDED(hr))
TRACE("succeed\n");
[/quote]
换句话说,你用的Window是CAxWindow吗?
CoInitialize(NULL);
IShockwaveFlash* flash = NULL;
IUnknown* un = NULL;
const IID id={0xd27cdb6e,0xae6d,0x11cf,
{0x96,0xb8,0x44,0x45,0x53,0x54,0x0,0x0} };
HRESULT hr = CoCreateInstance(id,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,(void**)&un);
hr = un->QueryInterface(__uuidof(IShockwaveFlash), (void**)&flash);
hr = flash->put_WMode(L"transparent");
if (SUCCEEDED(hr))
TRACE("succeed\n");
HWND ha = AfxGetApp()->m_pMainWnd->m_hWnd;
AtlAxAttachControl(flash, ha, NULL); //到这里就会崩溃
hr = flash->put_Movie(_bstr_t("C:\\flower.swf"));
if (SUCCEEDED(hr))
TRACE("succeed\n");