【问题标题】:How do I play flash files in pure C?如何在纯 C 中播放 flash 文件?
【发布时间】:2009-07-07 09:40:50
【问题描述】:

作为用 C (Win32) 编写的自定义媒体播放器的一部分,我需要启用我的应用程序在播放器窗口内播放 Flash 电影(.swf 文件)。有人可以指出实现这一点的最 C 兼容的低级方法,给我最高的控制权吗?专门控制显示窗口和网络访问。

我正在寻找像 flash_player.dll(如果有这样的东西)这样的 Windows DLL 和文档的参考。或者至少是一个 COM/ActiveX 控件。请注意,ActiveX 在 C 中比在 VB 中更难使用。

【问题讨论】:

    标签: c winapi flash


    【解决方案1】:

    使用的代码来自:http://support.microsoft.com/kb/218442/EN-US/

    //*Place at the top of your CAxDialogImpl class
    #import "flash.ocx" rename_namespace( "FLASH")
    FLASH::IShockwaveFlashPtr m_spFlash;
    
    
    //This code gets added to your OnInitDialog function of the window
    LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
    {
    CAxWindow wnd;
    CLSID clsid;
    LPUNKNOWN pUnkCtrl, pUnkCont;
    HRESULT hr = CLSIDFromString(OLESTR("{D27CDB6E-AE6D-11CF-96B8-444553540000}"), &clsid);
    hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown,
    (void**)&pUnkCtrl);
    CComQIPtr <IPersistStreamInit> spPerStm(pUnkCtrl);
    spPerStm->InitNew();
    
    m_spFlash = pUnkCtrl;
    wnd.Attach(m_hWnd);
    wnd.AttachControl(pUnkCtrl, &pUnkCont);
    
    m_spFlash->PutMovie( _bstr_t(_T("C:\\Documents and Settings\\murk\\Desktop\\Chlorine\\ccc_main.swf")));
    }
    

    【讨论】:

    • 好消息,如果它在 C++ 中工作,我可能可以将它转换成 C。
    • 天啊,纯 C 中的 COM。 . .不太好。可能,但指针到处飞。
    • +1 它是 C++ 代码,但它确实包含足够的信息,可以让原始发布者取得进展。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    相关资源
    最近更新 更多