Affiche, sous forme de liste, les données de la structure spécifiée ou les données à l'adresse mémoire spécifiée
#include <WinAPIDiag.au3>
_WinAPI_DisplayStruct ( $tStruct [, $sStruct = '' [, $sTitle = '' [, $iItem = 0 [, $iSubItem = 0 [, $iFlags = 0 [, $bTop = True [, $hParent = 0]]]]]]] )
$tStruct | Une structure qui a été créée par DllStructCreate(), ou une adresse mémoire à partir de laquelle afficher ses données. |
$sStruct | [optionnel] Une chaîne représentant la structure. Si $tStruct est une structure, ce paramètre peut être omis ou être la chaîne vide. Dans ce cas, la structure s'affichera comme la structure "byte[n]". Si $tStruct est une adresse mémoire, $sStruct doit être une chaîne représentant la structure, sinon, la fonction échoue, et @error = 10. |
$sTitle | [optionnel] Le titre de la fenêtre, par défaut "Structure: ListView Display". |
$iItem | [optionnel] L'index, de base 1, ou le nom du membre de la structure qui doit être sélectionné dans la liste. Si ce paramètre est 0 (par défaut), ou si l'index ou le nom est incorrect, le premier élément de la structure sera sélectionné. |
$iSubItem | [optionnel] L'index, de base 1, du tableau dans le membre de la structure pointé par le paramètre $iItem sera sélectionné. Si $iItem n'a pas été défini comme un tableau dans le $sStruct, ou si l'index du tableau est invalide, l'élément pointé par le paramètre $iItem sera sélectionné. |
$iFlags | [optionnel] Un jeu de bits qui spécifie des options d'affichage supplémentaires. Ce paramètre peut être 0, ou toute combinaison des valeurs suivantes: 1 - Empêcher l'affichage des champs "<struct>" et "<endstruct>" au début et à la fin de la liste. 2 - Empêche l'affichage des champs "<alignment>". 4 - Empêche l'affichage de "<unnamed>" dans la colonne "Member" de la liste si l'élément de la structure n'a pas de nom. 8 - Empêche la mise en valeur des éléments de la structure qui sont définis comme tableau. 16 - Empêche les éléments de la structure nommés "Reserved*" d'être perçus comme des éléments inutilisés. 32 - Empêche l'utilisation du double-clic pour copier les valeurs des éléments de la structure dans le presse-papier. 64 - Oblige d'étendre les éléments de la structure de type BYTE[n] et BOOLEAN[n] (les éléments de types CHAR[n] et WCHAR[n] s'affichent toujours comme une chaîne). 128 - Oblige à afficher les valeurs des éléments de la structure dans une représentation hexadécimale, si possible. 256 - Oblige à retourner un code d'erreur au lieu d'afficher une boîte de message si une erreur d'accès mémoire s'est produite. 512 - Oblige à désactiver la vérification de la lecture de la mémoire attribuée à une structure donnée. |
$bTop | [optionnel] Spécifie s'il faut créer une fenêtre avec l'attribut "Always On Top", les valeurs possibles sont: True - La fenêtre est créée avec le style étendu $WS_EX_TOPMOST (par défaut). False - La fenêtre n'aura pas le flag "TOPMOST" activé. |
$hParent | [optionnel] Handle de la fenêtre parent. |
Succès: | Retourne 1. |
Échec: | Retourne 0 et définit @error <> 0. |
@error: | 2 - Il y a un type de données inconnu dans la chaîne passée. 3 - Impossible d'allouer la mémoire nécessaire pour la structure, ou pointeur non valide. 4 - Erreur d'allocation mémoire pour la chaîne passée. 10 - Le paramètre $sStruct n'est pas une chaîne. 15 - Erreur d'accès mémoire lors de la lecture de donnée. |
Cette fonction est destinée principalement pour le débogage et ne doit pas être utilisée dans le script final, puisque aucune information utile pour l'utilisateur final n'est retenue.
#include <WinAPIDiag.au3> Local $sStruct = 'dword Length;short State;uint Flags;handle hBitmap;hwnd hDC;long Rect[4];byte[14];int Reserved[10];wchar Text[80]' Local $tStruct = DllStructCreate($sStruct) DllStructSetData($tStruct, 1, 80) DllStructSetData($tStruct, 2, 6) DllStructSetData($tStruct, 3, 1) DllStructSetData($tStruct, 4, 0x00010014) DllStructSetData($tStruct, 5, 0x01010057) DllStructSetData($tStruct, 6, 20, 1) DllStructSetData($tStruct, 6, 20, 2) DllStructSetData($tStruct, 6, 60, 3) DllStructSetData($tStruct, 6, 80, 4) DllStructSetData($tStruct, 7, Binary('0x656A6D633835206C6A6764206200')) DllStructSetData($tStruct, 8, 0) DllStructSetData($tStruct, 9, 'Simple Text') _WinAPI_DisplayStruct($tStruct, $sStruct)