Win32 API 中确实有一个名为 IMediaControl 的接口,通常是与 DirectShow 多媒体框架相关的。这个接口通常在 Control.h 头文件中声明,用于控制多媒体播放器的操作。

以下是一个简单的示例,展示了如何使用 IMediaControl 接口来控制媒体播放:
#include <windows.h>
#include <dshow.h>

// 链接 DirectShow 库
#pragma comment(lib, "strmiids.lib")

int main() {
    // 初始化 COM 环境
    CoInitialize(NULL);

    // 创建过滤器图形管理器
    IGraphBuilder *pGraph = NULL;
    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&pGraph);

    // 通过图形管理器创建媒体控制接口
    IMediaControl *pMediaControl = NULL;
    pGraph->QueryInterface(IID_IMediaControl, (void**)&pMediaControl);

    // 加载媒体文件
    WCHAR wszPath[MAX_PATH] = L"your_media_file_path_here";
    IGraphBuilder_AddSourceFilter(pGraph, wszPath, NULL, NULL);

    // 开始播放
    pMediaControl->Run();

    // 等待播放结束
    LONG state;
    pMediaControl->GetState(INFINITE, &state);

    // 释放资源
    pMediaControl->Release();
    pGraph->Release();

    // 反初始化 COM 环境
    CoUninitialize();

    return 0;
}

请确保在项目中正确链接 strmiids.lib 库,以便使用 DirectShow 相关功能。此示例只是一个简单的演示,实际使用中可能需要更多的错误处理和其他功能。


转载请注明出处:http://www.zyzy.cn/article/detail/25102/Win32 API/Control.h/IMediaControl