flash截屏注意事项

一般flash截屏都是通过CAxWindow类来装载flash控件的。

第一个要注意的是:

flash是一个activex控件,创建该控件的线程如果没有消息循环机制,那么flash控件将无法正常运作,举个例子,flash响应WM_TIMER消息进行播放,如果没有消息循环机制,将无法响应WM_TIMER消息。因此如果想要通过创建一个线程来执行flash截屏功能,务必注意在线程中增加以下代码:

MSG msg;
 while (GetMessage(&msg, NULL, 0, 0))
 {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
 }

 

另外还有一个地方要注意的,就是调用CoInitializeEx函数时,第二个参数必须是COINIT_APARTMENTTHREADED,否则将会有意想不到的错误发生,我就曾经传错参数,导致调用loadmovie异常崩溃了,当时怎么也没有料到到是CoInitializeEx参数设置错误。

 

最后一个要注意的是:

我们通过一个子线程来创建flash控件后查询得到IShockwaveFlash接口指针,其它线程不能直接调用该接口指针,必须通过PostThreadMessage函数发送线程消息至该子线程,由该线程的消息循环机制来执行相应操作命令,否则也会产生意向不到的异常错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值