【问题标题】:Embedding Windows Media Player in MFC在 MFC 中嵌入 Windows Media Player
【发布时间】:2021-01-15 08:56:41
【问题描述】:

我正在尝试使用 Visual Studio 2019 将 WMP 嵌入到新创建的基于 MFC 对话框的应用程序中。 这些是我正在遵循的步骤:

  1. 创建新项目
  2. 转到资源视图并单击插入 ActiveX 控件
  3. 选择 Windows Media Player 并单击确定
  4. 将新创建的 WMP 元素的 ID 更改为不太通用的 ID,例如 WMP_Player
  5. 右键单击 WMP 元素并选择添加变量
  6. 我将变量名称设置为 m_wmp
  7. 新变量已创建,CWMP_Player.hCWMP_Player.cpp 已添加到项目中。

我尝试构建项目但失败了。 CWMP_Player.h 内部有 354 个错误,例如:

严重性代码描述项目文件行抑制状态

错误 C2535 BOOL CWMP_Player::get_isAvailable(LPCTSTR):成员函数已定义或声明 WinMediaPl

错误 C2377 BOOL:重新定义; typedef 不能用任何其他符号 WinMediaPl 重载

错误 C2660 CWMP_Player::InvokeHelper:函数不接受 5 个参数 WinMediaPl

虽然CWMP_Player.cpp 几乎是空的,但只有几个包含(一个是pch.h)和这一行:

IMPLEMENT_DYNCREATE(CWMP_Player, CWnd)

我忘了一步吗?我应该在这个文件或其他文件中包含一些内容吗?

【问题讨论】:

    标签: c++ mfc visual-studio-2019 activex windows-media-player


    【解决方案1】:

    在我看来,VS2019添加的class文件中自动添加的代码与WinMediaPl中的定义有冲突。对比VS2017和VS2019自动添加的代码,发现下面自动添加的代码在CWMP_Player.h或者其他.h中是多余的。

    // Operations
    public:
    // IWMPPlaylist
    
    // Functions
    //
    
        long get_count()
        {
            long result;
            InvokeHelper(0xC9, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, nullptr);
            return result;
        }
        CString get_name()
        {
            CString result;
            InvokeHelper(0xCA, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, nullptr);
            return result;
        }
    
    ...
    
        VARIANT getItemInfoByType(long lCollectionIndex, LPCTSTR bstrType, LPCTSTR bstrLanguage, long lAttributeIndex)
        {
            VARIANT result;
            static BYTE parms[] = VTS_I4 VTS_BSTR VTS_BSTR VTS_I4 ;
            InvokeHelper(0x5AE, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms, lCollectionIndex, bstrType, bstrLanguage, lAttributeIndex);
            return result;
        }
    

    所以,你可以把它们注释掉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多