Obtient la valeur d'un �l�ment de la structure.
DllStructGetData ( Struct, Element [, index = Default] )
Struct | La structure retourn�e par DllStructCreate(). |
Element | L'�l�ment de la structure auquel vous souhaitez acc�der, � partir de 1, ou du nom de l'�l�ment tel que d�fini dans DllStructCreate(). |
index | [optionnel] Pour les �l�ments qui sont dans un tableau ce param�tre sp�cifie l'index de base 1 � r�cup�rer. S'il est omis ou si le mot-cl� Default est utilis�, alors le tableau entier est r�cup�r� (utile pour r�cup�rer rapidement des cha�nes). Ne pas utiliser pour des �l�ments qui ne sont pas dans un tableau. |
Succ�s: | Retourne les donn�es dans l'�l�ment de la structure. |
�chec: | Retourne 0. |
@error: |
1 = La structure n'est pas une structure correcte retourn�e par DllStructCreate(). 2 = Valeur de l'�l�ment en dehors des limites ou inconnu. 3 = L'index est hors des limites. 4 = Type d'�l�ment de donn�e inconnu 5 = index <= 0. |
DllStructCreate, DllStructSetData
#include <MsgBoxConstants.au3> Example() Func Example() #cs Commentaires: Cr�e la structure suivante (langage C): struct { int var1; unsigned char var2; unsigned int var3; char var4[128]; }; Sch�ma: ------------------------------------ \ int \ byte \ uint \ char \ \ var1 \ var2 \ var3 \ var4 \ ------------------------------------ #ce ; Assigne une constante locale avec la d�finition d'une structure (lire attentivement les remarques DllStructCreate). Local Const $tagSTRUCT1 = "struct;int var1;byte var2;uint var3;char var4[128];endstruct" ; Note: La variable $tag est d�clar�e comme Const parce que sa valeur ne changera pas pendant toute l'ex�cution du script. ; Assigne une variable locale avec la structure. Local $tSTRUCT1 = DllStructCreate($tagSTRUCT1) ; Si une erreur s'est produite, affiche le code d'erreur et retourne False. If @error Then MsgBox($MB_SYSTEMMODAL, "", "Erreur dans DllStructCreate, Code: " & @error) Return False EndIf ; D�finit les donn�es de l'�l�ment var1 (int) dans $tSTRUCT1. DllStructSetData($tSTRUCT1, "var1", -1) ; Ou 1 � la place de "var1". ; D�finit les donn�es de l'�l�ment var2 (octet) dans $tSTRUCT1. DllStructSetData($tSTRUCT1, 2, 255) ; Ou "var2" au lieu de 2. ; D�finit les donn�es de l'�l�ment var3 (uint) dans $tSTRUCT1. DllStructSetData($tSTRUCT1, "var3", -1) ; Le -1 (Int sign�) sera converti en un int non sign�. ; Ou 3 au lieu de "var3". ; D�finit les donn�es de l'�l�ment var4 (char) dans la $tSTRUCT1. DllStructSetData($tSTRUCT1, "var4", "Hello") ; Ou 4 au lieu de "var4". ; Remarque: Cet �l�ment peut contenir jusqu'� 128 caract�res. ; Modifie les donn�es de l'�l�ment var4 (char) dans $tSTRUCT1, � l'index 1 du tableau de caract�res (de base 1). DllStructSetData($tSTRUCT1, "var4", Asc("h"), 1) ; Affiche les r�sultats. MsgBox($MB_SYSTEMMODAL, "", "Struct Size: " & DllStructGetSize($tSTRUCT1) & @CRLF & _ "Struct pointer: " & DllStructGetPtr($tSTRUCT1) & @CRLF & _ "Data:" & @CRLF & _ DllStructGetData($tSTRUCT1, 1) & @CRLF & _ ; Ou "var1" � la place de 1. DllStructGetData($tSTRUCT1, "var2") & @CRLF & _ ; Ou 2 � la place de "var2". DllStructGetData($tSTRUCT1, 3) & @CRLF & _ ; Ou "var3" � la place de 3. DllStructGetData($tSTRUCT1, 4)) ; Ou "var4" � la place de 4. ; Lib�re les ressources utilis�es par la structure. $tSTRUCT1 = 0 EndFunc ;==>Example