C28604
avertissement C28604 : Évitez d’appeler SendMessageTimeout avec SMTO_ABORTIFHUNG avec un délai d’expiration de 0
L’outil Analyse du code signale cet avertissement lorsque les applications appellent SendMessageTimeout avec l’indicateur SMTO_ABORTIFHUNG et une période de délai d’attente de zéro. L’utilisation de SendMessageTimeout de cette façon peut être problématique, car le délai d’expiration n’a aucun effet et l’appel est traité comme un appel bloquant.
Spécifiez une valeur différente de zéro pour la période de délai d’attente.
Exemple
L’appel de fonction suivant peut empêcher le processus de répondre indéfiniment.
fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd,
WM_NULL,
0,
0,
SMTO_ABORTIFHUNG,
0,
&dwResult));
L’appel de fonction suivant n’a pas ce problème.
fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd,
WM_NULL,
0,
0,
SMTO_ABORTIFHUNG,
1000,
&dwResult));