Core Function DLLStructSetData
From Sputnik Wiki
DLLStructSetData( <dllstruct>, <element>, <index> )
Contents |
Description
Set the data of an element of the struct
Parameters
dllstruct
The struct returned by DLLStructCreate.
element
Which element of the struct you want to access by its element name as defined in DllStructCreate.
value
Optional; If the element is an array, you need to specify which index to set, otherwise it sets index 0. The first element is 0.
index
Optional; If the element is an array, you need to specify which index to return, otherwise it returns index 1. The first element is 1.
Return Value
None.
Remarks
Used in DLLCall.
When the element is char[n] the data can be a string otherwise it has to be a number.
Example
/*========================================================= Create the struct struct { int var1; unsigned char var2; unsigned int var3; char var4[128]; } =========================================================*/ $str = "int var1;ubyte var2;uint var3;char var4[128]"; $a = DllStructCreate($str); if ( !$a ) { MsgBox("Error in DllStructCreate"); exit(); } /*========================================================= Set data in the struct struct.var1 = -1; struct.var2 = 255; struct.var3 = 777; strcpy(struct.var4,"Hello"); struct.var4[0] = 'h'; =========================================================*/ DllStructSetData($a,"var1",-1); DllStructSetData($a,"var2",255); DllStructSetData($a,"var3",777); DllStructSetData($a,"var4","Hello"); DllStructSetData($a,"var4","G",0); /*========================================================= Display info in the struct ;=========================================================*/ MsgBox("Struct Size: " . DllStructGetSize($a) . @CRLF . "Struct pointer: " . DllStructGetPtr($a) . @CRLF . "Data:" . @CRLF . DllStructGetData($a,"var1") . @CRLF . DllStructGetData($a,"var2") . @CRLF . DllStructGetData($a,"var3") . @CRLF . DllStructGetData($a,"var4"), "DllStruct");