CMsgThread.PutThreadMsg 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

将工作线程执行的请求排队。

语法

void PutThreadMsg(
   UINT     uMsg,
   DWORD    dwMsgFlags,
   LPVOID   lpMsgParam,
   CAMEvent *pEvent = NULL
);

参数

uMsg

请求代码。

dwMsgFlags

可选标志参数。

lpMsgParam

指向包含其他参数或返回值的数据块的可选指针。 必须静态或堆分配,而不是自动分配。

pEvent

指向在完成时要发出信号的事件对象的可选指针。

返回值

此方法不返回值。

备注

此成员函数将工作线程执行的请求排队。 此成员函数的参数将排队 (CMsg 对象) ,并传递给工作线程的 CMsgThread::ThreadMessageProc 成员函数。 此成员函数在请求排队后立即返回,并且不会等待线程满足请求。 派生类的 CMsgThread::ThreadMessageProc 成员函数定义四个参数。

此成员函数使用多线程安全列表,因此可以安全地从不同线程对此成员函数进行多次调用。

要求

要求
标头
Msgthrd.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CMsgThread 类