﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
3968	global struct gets corrupted after GUISetState()	argumentum		"{{{#!autoit
#include <WinAPISys.au3> ; for $tagLOGFONT ;
Global $___gt__HiDpi_WinFont, $sFont
_SystemParametersInfo_GetSystemFont()
$hGUI = GUICreate('Test', 400, 400)

GUISetState(@SW_SHOW, $hGUI) ; try the code with this and without it

ConsoleWrite(""Font : Attributes: "" & $___gt__HiDpi_WinFont.Attributes & @CRLF)
ConsoleWrite(""Font :     Weight: "" & DllStructGetData($___gt__HiDpi_WinFont, 'Weight') & @CRLF)
ConsoleWrite(""Font :    Quality: "" & DllStructGetData($___gt__HiDpi_WinFont, 'Quality') & @CRLF)
ConsoleWrite(""Font :   FaceName: "" & DllStructGetData($___gt__HiDpi_WinFont, 'FaceName') & @CRLF)
ConsoleWrite(""Font :   FaceName: "" & $sFont & @CRLF) ; this never changes

Func _SystemParametersInfo_GetSystemFont()
	Local $dMenuFont = Binary(RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'MenuFont'))
	ConsoleWrite($dMenuFont & @CRLF)
	Local $tLOGFONT = DllStructCreate('byte[' & BinaryLen($dMenuFont) & ']')
	DllStructSetData($tLOGFONT, 1, $dMenuFont)
	$___gt__HiDpi_WinFont = DllStructCreate($tagLOGFONT, DllStructGetPtr($tLOGFONT))
	$sFont = DllStructGetData($___gt__HiDpi_WinFont, 'FaceName')
EndFunc
}}}
While troubleshooting we discovered a bug.
The thread is at [https://www.autoitscript.com/forum/topic/210637-systemparametersinfo-getsystemfont-i-made-an-ugly-bug/?do=findComment&comment=1522165] 
"	Bug	reopened		AutoIt	3.3.16.1	None		Struct	
