The idea is to be able to share information in the forum when a struct data needs to be shared among us.
As an example, lets say that we wanna share what comes out of $tagOSVERSIONINFOEX. We could just run:
#include <WinAPIMisc.au3>
#include <WinAPIDiag.au3>
#include <Debug.au3>
#include <Sqlite.au3>
Exit GetOs()
Func GetOs()
Local $tOSVERSIONINFOEX = DllStructCreate($tagOSVERSIONINFOEX)
DllStructSetData($tOSVERSIONINFOEX, 1, DllStructGetSize($tOSVERSIONINFOEX))
Local $aCall = DllCall('kernel32.dll', 'bool', 'GetVersionExW', 'struct*', $tOSVERSIONINFOEX)
If @error Or Not $aCall[0] Then Return SetError(@error, @extended, 0)
Local $aArray = _WinAPI_DisplayStruct_mod($tOSVERSIONINFOEX, $tagOSVERSIONINFOEX, '', 0, 0, 0, True, 0, 1)
Local $sText = _SQLite_Display2DResult($aArray, 0, True)
ConsoleWrite(@CRLF & $sText & @CRLF & @CRLF)
; for those outside the editor
Local $iW = 600, $iH = 300, $hGui = GUICreate(@ScriptName, $iW, $iH)
GUISetFont(10, 400, 0, "Terminal")
Local $idEdit = GUICtrlCreateEdit($sText, 0, 0, $iW, $iH)
GUISetState()
While GUIGetMsg() <> -3
WEnd
GUIDelete($hGui)
EndFunc ;==>GetOs
... ...
and share the text that comes out:
- - 0x0125DC18 <struct> 0 -
1 OSVersionInfoSize 0 DWORD 4 284
2 MajorVersion 4 DWORD 4 10
3 MinorVersion 8 DWORD 4 0
4 BuildNumber 12 DWORD 4 22631
5 PlatformId 16 DWORD 4 2
6 CSDVersion 20 WCHAR[128] 256
7 ServicePackMajor 276 USHORT 2 0
8 ServicePackMinor 278 USHORT 2 0
9 SuiteMask 280 USHORT 2 256
10 ProductType 282 BYTE 1 1
11 Reserved 283 BYTE 1 -
- - 0x0125DD34 <endstruct> 284 -
So the mod. I made to _WinAPI_DisplayStruct() is here ( with the complete running example from above )
This way is easier to share such.
I know this is a lazy way to do it but, is a fast mod. and does what is needed to get the data as text.