}
HRESULT hr;
hr=m_pWinContainer.QueryControl(__uuidof(IShockwaveFlash),(void**)&pFlash);
m_pWinContainer1.QueryControl(__uuidof(IShockwaveFlash),(void**)&pFlash1);
if(FAILED(hr))
{
return -1L;
}
else
{
flashSink.Init(pFlash);
wchar_t sst[1024];
GetCurrentDirectory(1000,sst);
wprintf(L"%s",sst);
wstring tmppath;
tmppath = sst;
wstring tmppath1;
tmppath1 = tmppath+L"/f146.swf";
wstring tmppath2;
tmppath2 =tmppath+ L"/flash1920.swf";
hr=pFlash->put_Movie((BSTR)tmppath1.c_str());
pFlash1->put_Movie((BSTR)tmppath2.c_str());
if(SUCCEEDED(hr))
{
pFlash->Play();
printf("开始播放!");
}
pFlash1->Play();
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
//DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
//VARIANT_BOOL isPlayIng;
//pFlash->get_Playing(&isPlayIng);
if (pFlash->IsPlaying())
{
pFlash->Stop();
}
else
{
pFlash->Play();
break;
case IDM_EXIT:
if (pFlash1->IsPlaying())
{
pFlash1->Stop();
}
else
{
pFlash1->Play();
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
FreeConsole();
pFlash.Release();
//m_pWinContainer.DestroyWindow();
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}可以看到红色部分是被我修改过的地方,这些东西虽然不难,但是自己做起来没有资料的时候也挺不方便的!这样Flash的播放就好了,但是不知道为什么停止和开始播放按钮对某些Flash动画不起作用。好了就说这么多!因为有些童鞋可能比较没有时间,所以直接附上 源码在最后方便修改和使用!http://download.csdn.net/detail/xueyunf/5658183当然也同样给出一个运行的结果截图: