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
Uwe Bonnes wrote:
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.
Could you try attached patch?
Jacek
Index: dlls/urlmon/umon.c =================================================================== RCS file: /home/wine/wine/dlls/urlmon/umon.c,v retrieving revision 1.56 diff -u -p -r1.56 umon.c --- dlls/urlmon/umon.c 2 Jul 2005 10:49:56 -0000 1.56 +++ dlls/urlmon/umon.c 2 Jul 2005 14:56:59 -0000 @@ -1255,11 +1255,12 @@ HRESULT WINAPI CreateURLMoniker(IMoniker return E_OUTOFMEMORY;
if(pmkContext) { - CLSID clsid; IBindCtx* bind; - IMoniker_GetClassID(pmkContext, &clsid); - if(IsEqualCLSID(&clsid, &CLSID_StdURLMoniker) && SUCCEEDED(CreateBindCtx(0, &bind))) { - URLMonikerImpl_GetDisplayName(pmkContext, bind, NULL, &lefturl); + DWORD dwMksys = 0; + IMoniker_IsSystemMoniker(pmkContext, &dwMksys); + if(dwMksys == MKSYS_URLMONIKER && SUCCEEDED(CreateBindCtx(0, &bind))) { + IMoniker_GetDisplayName(pmkContext, bind, NULL, &lefturl); + TRACE("lefturl = %s\n", debugstr_w(lefturl)); IBindCtx_Release(bind); } }
"Jacek" == Jacek Caban jack@itma.pwr.wroc.pl writes:
Jacek> Uwe Bonnes wrote: >> 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. >> >> >> Jacek> Could you try attached patch? Hallo Jacekm
thanks for the response. I tried the patch, but with no change. Looking closer, you only change the "if(pmkContext)" code path. However in my case the API is called with pmkContext == NULL.
Bye
Uwe Bonnes wrote:
Hallo Jacekm
thanks for the response. I tried the patch, but with no change. Looking closer, you only change the "if(pmkContext)" code path. However in my case the API is called with pmkContext == NULL.
Bye
Sorry, I've made a mistake reading logs. Anyway that code had another bug:-) Does it call any other function of URLMoniker? Could you send me whole +urlmon log?
Jacek
"Jacek" == Jacek Caban jack@itma.pwr.wroc.pl writes:
Jacek> Uwe Bonnes wrote: >> Hallo Jacekm >> >> thanks for the response. I tried the patch, but with no >> change. Looking closer, you only change the "if(pmkContext)" code >> path. However in my case the API is called with pmkContext == NULL. >> >> Bye >> >> Jacek> Sorry, I've made a mistake reading logs. Anyway that code had Jacek> another bug:-) Does it call any other function of URLMoniker? Jacek> Could you send me whole +urlmon log?
Output of +relay,+urlmon |& grep -i urlmon attached: