SendMessageTimeoutA, fonction (winuser.h)
Envoie le message spécifié à une ou plusieurs fenêtres.
Syntaxe
LRESULT SendMessageTimeoutA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] UINT fuFlags,
[in] UINT uTimeout,
[out, optional] PDWORD_PTR lpdwResult
);
Paramètres
[in] hWnd
Type : HWND
Handle de la fenêtre dont la procédure de fenêtre recevra le message.
Si ce paramètre est HWND_BROADCAST ((HWND)0xffff), le message est envoyé à toutes les fenêtres de niveau supérieur du système, y compris les fenêtres non propriétaires désactivées ou invisibles. La fonction ne retourne pas tant que chaque fenêtre n’a pas expiré. Par conséquent, le temps d’attente total peut être jusqu’à la valeur uTimeout multipliée par le nombre de fenêtres de niveau supérieur.
[in] Msg
Type : UINT
Le message à envoyer.
Pour obtenir la liste des messages fournis par le système, consultez Messages définis par le système.
[in] wParam
Type : WPARAM
Toutes les informations supplémentaires spécifiques aux messages.
[in] lParam
Type : LPARAM
Toutes les informations supplémentaires spécifiques aux messages.
[in] fuFlags
Type : UINT
Comportement de cette fonction. Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
[in] uTimeout
Type : UINT
Durée de la période d’expiration, en millisecondes. Si le message est un message diffusé, chaque fenêtre peut utiliser la période d’expiration complète. Par exemple, si vous spécifiez un délai d’expiration de cinq secondes et que trois fenêtres de niveau supérieur ne parviennent pas à traiter le message, vous pouvez avoir jusqu’à 15 secondes de délai.
[out, optional] lpdwResult
Type : PDWORD_PTR
Résultat du traitement des messages. La valeur de ce paramètre dépend du message spécifié.
Valeur retournée
Type : LRESULT
Si la fonction réussit, la valeur de retour est différente de zéro. SendMessageTimeout ne fournit pas d’informations sur le délai d’expiration des fenêtres individuelles si HWND_BROADCAST est utilisé.
Si la fonction échoue ou expire, la valeur de retour est 0. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError. Si GetLastError retourne ERROR_TIMEOUT, la fonction a expiré.
Windows 2000 : Si GetLastError retourne 0, la fonction a expiré.
Remarques
La fonction appelle la procédure de fenêtre pour la fenêtre spécifiée et, si la fenêtre spécifiée appartient à un thread différent, ne retourne pas tant que la procédure de fenêtre n’a pas traité le message ou que le délai d’expiration spécifié n’est pas écoulé. Si la fenêtre qui reçoit le message appartient à la même file d’attente que le thread actif, la procédure de fenêtre est appelée directement. La valeur de délai d’attente est ignorée.
Cette fonction considère qu’un thread ne répond pas s’il n’a pas appelé GetMessage ou une fonction similaire dans un délai de cinq secondes.
Le système effectue uniquement le marshaling pour les messages système (ceux de la plage 0 à (WM_USER-1)). Pour envoyer d’autres messages (ceux >= WM_USER) à un autre processus, vous devez effectuer un marshaling personnalisé.
Notes
L’en-tête winuser.h définit SendMessageTimeout comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Ensemble d’API | ext-ms-win-ntuser-message-l1-1-0 (introduit dans Windows 8) |
Voir aussi
Conceptuel
Messages et files d’attente de messages
Référence
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour