C28604
警告 C28604: タイムアウト 0 で SMTO_ABORTIFHUNG を指定して SendMessageTimeout を呼び出さないでください
アプリケーションが SMTO_ABORTIFHUNG フラグと共にタイムアウトの長さ 0 を指定して SendMessageTimeout を呼び出すと、コード分析ツールによってこの警告が報告されます。 このように SendMessageTimeout を使用すると、タイムアウトの長さに効力がなく、呼び出しがブロッキング呼び出しとして扱われるため、問題を招く可能性があります。
タイムアウトの長さに 0 以外の値を指定してください。
例
次の関数呼び出しを行うと、プロセスが無期限に応答しなくなる可能性があります。
fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd,
WM_NULL,
0,
0,
SMTO_ABORTIFHUNG,
0,
&dwResult));
次の関数呼び出しの場合、この問題はありません。
fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd,
WM_NULL,
0,
0,
SMTO_ABORTIFHUNG,
1000,
&dwResult));