虽然handle参数的WinAPI签名对于这两个调用是相同的:
_In_ const HANDLE *pHandles,
然而,RTL以不同的方式包含这些功能. WaitForMultipleObjects
使用指针类型:
lpHandles: PWOHandleArray;
while MsgWaitForMultipleObjects
使用无类型var
参数:
var pHandles;
因此必须将句柄数组直接传递给MsgWaitForMultipleObjects
.
即:
LWaitResult := MsgWaitForMultipleObjects(1, LWaitHandles, false, INFINITE, QS_ALLINPUT);