Why does this not work?
Code:
^u::
;;msgbox % CreateGUID()
send % CreateGUID()
return
CreateGuid()
{
local len, ansiString, data
VarSetCapacity(data, 96)
dllcall("ole32.dll\CoCreateGuid", "uint", &data)
dllcall("ole32.dll\StringFromGUID2", "uint", &data, "str", data, "int", 40)
len := DllCall("lstrlenW", "UInt", &data)
VarSetCapacity(ansiString, len, 0)
DllCall("WideCharToMultiByte"
, "UInt", 0 ; CodePage: CP_ACP=0 (current Ansi), CP_UTF7=65000, CP_UTF8=65001
, "UInt", 0 ; dwFlags
, "UInt", &data ; LPCWSTR lpWideCharStr
, "Int", len ; cchWideChar: size in WCHAR values, -1=null terminated
, "Str", ansiString ; LPSTR lpMultiByteStr
, "Int", len ; cbMultiByte: 0 to get required size
, "UInt", 0 ; LPCSTR lpDefaultChar
, "UInt", 0) ; LPBOOL lpUsedDefaultChar
Return ansiString
}
but this does work??
Code:
^u::
;;msgbox % CreateGUID()
send % CreateGUID()
return
CreateGuid()
{
local len, ansiString, data
VarSetCapacity(data, 96)
dllcall("ole32.dll\CoCreateGuid", "uint", &data)
dllcall("ole32.dll\StringFromGUID2", "uint", &data, "str", data, "int", 40)
len := DllCall("lstrlenW", "UInt", &data)
VarSetCapacity(ansiString, len, 0)
DllCall("WideCharToMultiByte"
, "UInt", 0 ; CodePage: CP_ACP=0 (current Ansi), CP_UTF7=65000, CP_UTF8=65001
, "UInt", 0 ; dwFlags
, "UInt", &data ; LPCWSTR lpWideCharStr
, "Int", len ; cchWideChar: size in WCHAR values, -1=null terminated
, "Str", ansiString ; LPSTR lpMultiByteStr
, "Int", len ; cbMultiByte: 0 to get required size
, "UInt", 0 ; LPCSTR lpDefaultChar
, "UInt", 0) ; LPBOOL lpUsedDefaultChar
Return ansiString
}
I'm smashing my face on the screen here with frustration.....