 
 
 ; TASKDIALOGCONFIG structure
-	if (A_PtrSize == 8) ; X64
+	if (PrgLnch.64Bit()) ; X64
 	{
 	NumPut(VarSetCapacity(TDC, 160, 0), TDC, 0, "UInt") ; cbSize
 	NumPut(hwndParent, TDC, 4, "Ptr") ; hwndParent

	Thread, NoTimers

		if (resolveShortct)
		FileSelectFile, strTemp, 1, % A_StartMenu "\Programs", Open a file or Shortcut, (*.exe; *.bat; *.com; *.cmd; *.pif; *.ps1; *.msc; *.scr)
		else
		FileSelectFile, strTemp, 33, % A_StartMenu "\Programs", Open a file`, Shortcuts resolved, (*.exe; *.bat; *.com; *.cmd; *.pif; *.ps1; *.msc; *.lnk; *.scr)

	Thread, NoTimers, false


	PrgLnchOpt.CurrMonStat := 0
	return False
	}
	OffsetDWORD := 4, OffsetUchar := 1

	sizeOfmonitorHandleAndDesc := 128 * (A_IsUnicode ? 2 : 1) + ((PrgLnch.64Bit() + 1) * OffsetDWORD)

	VarSetCapacity(monitorHandleandDesc, sizeOfmonitorHandleandDesc, 0)
	VarSetCapacity(Physical_Monitor, numberOfPhysicalMonitors * sizeOfmonitorHandleandDesc, 0)
	; Get Physical Monitor from handle

	;NumPut(Physical_Monitor, Device_Mode, OffsetDWORD + offsetWORDStr, Ushort) ; initialise cbsize member
	if (DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR", "Ptr", hMonitor, "uint", numberOfPhysicalMonitors, "Ptr", &Physical_Monitor))
	{

		Loop %numberOfPhysicalMonitors%
		{
			if (A_Index > 1)
			outStr .= "`n"

			physHand := NumGet(Physical_Monitor, (A_Index - 1) * sizeOfmonitorHandleAndDesc)
			; 0 value Physical Monitor Handles are valid and common!!!
			VarSetCapacity(MC_TIMING_REPORT, OffsetUchar + OffsetDWORD + OffsetDWORD)
			retVal := DllCall("dxva2\GetTimingReport", "Ptr", physHand, "Ptr", &MC_TIMING_REPORT)
