Windows SDK 之 mciSendString最后一个参数
Posted 咚..咚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows SDK 之 mciSendString最后一个参数相关的知识,希望对你有一定的参考价值。
这里在这里先附上mciSendString的函数原型:
MCIERROR mciSendString(
LPCTSTR lpszCommand,
LPTSTR lpszReturnString,
UINT cchReturn,
HANDLE hwndCallback
);
具体可以参考:https://docs.microsoft.com/en-us/previous-versions/dd757161(v%3Dvs.85)
但是,在这里并不是讨这个函数的常见用法,因为这样的文章网上铺天盖地,而且写得很不错。这里记录是的最后一个参数hwndCallback,这个参数MSDN里面没有直接说明,而且网上的文章资料不多。
从参数名可以猜测出,这是一个窗体句柄,当mci命令后面跟上notify指令时(如:play mysound from 1000 to 2000 notify),会将相应的消息发送给这个指定的窗体,我们可以在窗体的消息回调函数中接收这个消息。那问题来了,接收的消息编号是什么?附加的消息是什么?上面的MSDN一点都没有提到,经过笔者的一番查找,又是通过GOOGLE找到了自己的想要的消息。不得不感慨GOOGLE对码农还是比较友好的。
当加上notify指令后,窗体会收到MM_MCINOTIFY的消息(是MM_不是WM_),其中wParam是消息标识,lParam则是设备号。整个消息说明在MSDN里也有,只不过没有和MCI函数说明相关联。具体可参照:https://docs.microsoft.com/en-us/windows/win32/multimedia/mm-mcinotify
以上是关于Windows SDK 之 mciSendString最后一个参数的主要内容,如果未能解决你的问题,请参考以下文章
深入delphi编程理解之消息WINDOWS原生窗口编写及消息处理过程
基于 Agora SDK 实现 Windows 端的多人视频互动(基于3.6.2版本)