Hallo,
with native urlmon(and ole32,oleaut32,rpcrt4), Atmel Avrstudio brings up the "Program AVR" option in the "Tools" pulldown menu, with builtin this item is missing.
Here the relay trace of the CreateURLMoniker call with builtin: 0009:CALL urlmon.CreateURLMoniker(<unknown, check return>) ret=69bdb8bf 0009:Call kernel32.IsBadWritePtr(7baada74,00000004) ret=702b3c80 0009:Ret kernel32.IsBadWritePtr() retval=00000000 ret=702b3c80 0009:Call kernel32.IsBadReadPtr(7f8be518,00000002) ret=702b3c9b 0009:Ret kernel32.IsBadReadPtr() retval=00000000 ret=702b3c9b 0009:Call shlwapi.154(7f8be518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",702b2118 L"http",00000004) ret=702b219d 0009:Ret shlwapi.154() retval=fffffffe ret=702b219d 0009:Call shlwapi.154(7f8be518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",702b20f4 L"file",00000004) ret=702b219d 0009:Ret shlwapi.154() retval=00000000 ret=702b219d 0009:Call shlwapi.UrlCanonicalizeW(7f8be518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",7baab950,7baab93c,00010000) ret=702b240e 0009:Call ntdll.RtlAllocateHeap(7bc10000,00000000,0000007e) ret=7b74d606 0009:Ret ntdll.RtlAllocateHeap() retval=7bcf5d48 ret=7b74d606 0009:Call ntdll.RtlFreeHeap(7bc10000,00000000,7bcf5d48) ret=7b74d766 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=7b74d766 0009:Ret shlwapi.UrlCanonicalizeW() retval=00000000 ret=702b240e 0009:Call kernel32.lstrlenW(7baab950 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml") ret=702b3c28 0009:Ret kernel32.lstrlenW() retval=0000003e ret=702b3c28 0009:Call kernel32.lstrlenW(7baab950 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml") ret=702b3ce3 0009:Ret kernel32.lstrlenW() retval=0000003e ret=702b3ce3 0009:CALL ole32.CoTaskMemAlloc(0000007e) ret=702b2506 0009:Call ntdll.RtlAllocateHeap(7bc10000,00000000,0000007e) ret=65f014f0 0009:Ret ntdll.RtlAllocateHeap() retval=7bcf5d48 ret=65f014f0 0009:RET ole32.CoTaskMemAlloc() retval=7bcf5d48 ret=702b2506 0009:Call shlwapi.StrCpyW(7bcf5d48,7baab950 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml") ret=702b3d02 0009:Ret shlwapi.StrCpyW() retval=7bcf5d48 ret=702b3d02 0009:CALL ole32.CoTaskMemAlloc(00000014) ret=702b2506 0009:Call ntdll.RtlAllocateHeap(7bc10000,00000000,00000014) ret=65f014f0 0009:Ret ntdll.RtlAllocateHeap() retval=7bcf5dd0 ret=65f014f0 0009:RET ole32.CoTaskMemAlloc() retval=7bcf5dd0 ret=702b2506 0009:RET urlmon.CreateURLMoniker(00000000,7f8be518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",7baada74) retval=00000000 ret=69bdb8bf
and here with builtin:
0009:Call urlmon.CreateURLMoniker(00000000,7f9be518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",7baada74) ret=69bdb8bf trace:urlmon:CreateURLMoniker ((nil), L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml", 0x7baada74) 0009:Call ntdll.RtlAllocateHeap(7bc10000,00000000,0000000c) ret=7e4986fb 0009:Ret ntdll.RtlAllocateHeap() retval=7bcd5340 ret=7e4986fb trace:urlmon:URLMonikerImpl_Construct (0x7bcd5340,(null),L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml") 0009:Call ntdll.RtlAllocateHeap(7bc10000,00000000,0000007e) ret=7e4987aa 0009:Ret ntdll.RtlAllocateHeap() retval=7bcd5f28 ret=7e4987aa 0009:CALL ole32.CoTaskMemFree(00000000) ret=7e4987f7 0009:RET ole32.CoTaskMemFree() retval=00000000 ret=7e4987f7 trace:urlmon:URLMonikerImpl_QueryInterface (0x7bcd5340)->({0000000f-0000-0000-c000-000000000046},0x7baada74) trace:urlmon:URLMonikerImpl_AddRef (0x7bcd5340)->(ref before=0) 0009:Ret urlmon.CreateURLMoniker() retval=00000000 ret=69bdb8bf
Bye