我有一个带有接收 PostMessage 调用的 HWND 句柄的数据模块。
句柄像这样在 DataModuleCreate 中分配(未定义TTNONVISUAL ):
{$IFNDEF TTNONVISUAL}
FHWND := AllocateHWND(WindProc);
{$ELSE}
FHWND := 0;
{$ENDIF}
数据模块也用于定义了 TTNONVISUAL的非可视程序。
数据模块中的 WindProc 包含在 {$IFNDEF TTNONVISUAL} 中,因此在非可视程序中没有 WindProc 和 FHWND=0
在那个程序中,对这个 0 句柄进行 PostMessage 调用是否安全?
注意: PostMessage 不发送任何附加数据:
PostMessage(FHWND,WM_SYNC_PROGRESS,0,0)
和 WM_SYNC_PROGRESS 是 WM_USER + 111 并且没有其他 WM_SYNC_PROGRESS 处理程序。