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 bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
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(a)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 bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
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(a)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: -- Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- 0009:Call kernel32.GetModuleHandleA(69b3fd6c "URLMON.DLL") ret=69b3fcf8 0009:Call ntdll.RtlInitAnsiString(7baae770,69b3fd6c "URLMON.DLL") ret=7bb5be65 0009:Call ntdll.RtlInitUnicodeString(7baae778,7bd95c00 L"URLMON.DLL") ret=7bb72425 0009:Call kernel32.LoadLibraryA(69be4cf0 "urlmon.dll") ret=69b3c976 0009:Call ntdll.RtlInitAnsiString(7baac900,69be4cf0 "urlmon.dll") ret=7bb5be65 0009:Call ntdll.RtlInitUnicodeString(7baac6ec,7bd95c00 L"urlmon.dll") ret=7bb72000 0009:Call PE DLL (proc=0x7e664630,module=0x7e660000 L"urlmon.dll",reason=PROCESS_ATTACH,res=(nil)) trace:urlmon:DllMain 0x7e660000 0x1 (nil) 0009:Ret PE DLL (proc=0x7e664630,module=0x7e660000 L"urlmon.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0009:Call urlmon.RegisterBindStatusCallback(7eb0b0d0,7fa6e5a8,7baadae8,00000000) ret=69bdb885 trace:urlmon:RegisterBindStatusCallback (0x7eb0b0d0,0x7fa6e5a8,0x7baadae8,0) 0009:Ret urlmon.RegisterBindStatusCallback() retval=00000000 ret=69bdb885 0009:Call kernel32.GetProcAddress(7e660000,69be5112 "CreateURLMoniker") ret=69b39710 0009:Call ntdll.RtlInitAnsiString(7baac928,69be5112 "CreateURLMoniker") ret=7bb71b0c 0009:Call urlmon.CreateURLMoniker(00000000,7fa6e518 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml",7baadb0c) ret=69bdb8bf trace:urlmon:CreateURLMoniker ((nil), L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml", 0x7baadb0c) trace:urlmon:URLMonikerImpl_Construct (0x7eb0b1b0,(null),L"file:///C:/Program%20Files/Atmel/AVR%20Tools/STK500/STK500.xml") trace:urlmon:URLMonikerImpl_QueryInterface (0x7eb0b1b0)->({0000000f-0000-0000-c000-000000000046},0x7baadb0c) trace:urlmon:URLMonikerImpl_AddRef (0x7eb0b1b0)->(ref before=0) 0009:Ret urlmon.CreateURLMoniker() retval=00000000 ret=69bdb8bf trace:urlmon:UMCreateStreamOnCacheFile Opening L"c:\\windows\\Temporary Internet Files\\Content.IE5\\0PYJ4LMN\\STK500[21].xml" trace:urlmon:URLMonikerImpl_BindToStorage Created stream... trace:urlmon:IStream_fnAddRef (0x7eb0bef0)->(count=1) trace:urlmon:URLMonikerImpl_BindToStorage Got IBindStatusCallback... trace:urlmon:URLMonikerImpl_BindToStorage got bindinfo. bindf = 00000283 extrainfo = (null) bindinfof = 00000000 bindverb = 00000000 iid {00000000-0000-0000-0000-000000000000} trace:urlmon:Binding_AddRef (0x7eb0be28) ref=2 trace:urlmon:URLMonikerImpl_BindToStorage OnStartBinding rets 00000000 trace:urlmon:IStream_fnRelease (0x7eb0bef0)->(count=2) trace:urlmon:Binding_QueryInterface (0x7eb0be28)->({79eac9d8-bafa-11ce-8c82-00aa004ba90b},0x7baab724) trace:urlmon:Binding_Release (0x7eb0be28) ref=1 trace:urlmon:Binding_Release (0x7eb0be28) ref=0 trace:urlmon:URLMonikerImpl_Release (0x7eb0b1b0)->(ref before=1) 0009:Call kernel32.GetModuleHandleA(69b3fd6c "URLMON.DLL") ret=69b3fcf8 0009:Call ntdll.RtlInitAnsiString(7baada90,69b3fd6c "URLMON.DLL") ret=7bb5be65 0009:Call ntdll.RtlInitUnicodeString(7baada98,7bd95c00 L"URLMON.DLL") ret=7bb72425 0009:Call urlmon.RegisterBindStatusCallback(7eb17f20,7fa6e5a8,7baaa93c,00000000) ret=69bdb885 trace:urlmon:RegisterBindStatusCallback (0x7eb17f20,0x7fa6e5a8,0x7baaa93c,0) 0009:Ret urlmon.RegisterBindStatusCallback() retval=00000000 ret=69bdb885 0009:Call urlmon.CreateURLMoniker(00000000,7fa6e798 L"file:///Y:/work/projekte/linac/megacan/avr/megacan.aps",7baaa960) ret=69bdb8bf trace:urlmon:CreateURLMoniker ((nil), L"file:///Y:/work/projekte/linac/megacan/avr/megacan.aps", 0x7baaa960) trace:urlmon:URLMonikerImpl_Construct (0x7eb180e0,(null),L"file:///Y:/work/projekte/linac/megacan/avr/megacan.aps") trace:urlmon:URLMonikerImpl_QueryInterface (0x7eb180e0)->({0000000f-0000-0000-c000-000000000046},0x7baaa960) trace:urlmon:URLMonikerImpl_AddRef (0x7eb180e0)->(ref before=0) 0009:Ret urlmon.CreateURLMoniker() retval=00000000 ret=69bdb8bf trace:urlmon:UMCreateStreamOnCacheFile Opening L"c:\\windows\\Temporary Internet Files\\Content.IE5\\78UG5RFK\\megacan[10].aps" trace:urlmon:URLMonikerImpl_BindToStorage Created stream... trace:urlmon:IStream_fnAddRef (0x7eb1e8e8)->(count=1) trace:urlmon:URLMonikerImpl_BindToStorage Got IBindStatusCallback... trace:urlmon:URLMonikerImpl_BindToStorage got bindinfo. bindf = 00000283 extrainfo = (null) bindinfof = 00000000 bindverb = 00000000 iid {00000000-0000-0000-0000-000000000000} trace:urlmon:Binding_AddRef (0x7eb18178) ref=2 trace:urlmon:URLMonikerImpl_BindToStorage OnStartBinding rets 00000000 trace:urlmon:Binding_QueryInterface (0x7eb18178)->({79eac9d8-bafa-11ce-8c82-00aa004ba90b},0x7baa8578) trace:urlmon:IStream_fnAddRef (0x7eb1e8e8)->(count=2) trace:urlmon:IStream_fnRelease (0x7eb1e8e8)->(count=3) trace:urlmon:Binding_Release (0x7eb18178) ref=1 trace:urlmon:Binding_Release (0x7eb18178) ref=0 trace:urlmon:IStream_fnRelease (0x7eb1e8e8)->(count=2) trace:urlmon:URLMonikerImpl_Release (0x7eb180e0)->(ref before=1) trace:urlmon:IStream_fnRead (0x7eb1e8e8)->(0x7fa708a8,0x00000fff,0x7baaa84c) trace:urlmon:IStream_fnRead (0x7eb1e8e8)->(0x7fa6e898,0x00001ffd,0x7baaa838) trace:urlmon:IStream_fnRelease (0x7eb1e8e8)->(count=1) trace:urlmon:IStream_fnRelease destroying UMCacheStream (0x7eb1e8e8) 0009:Call urlmon.RegisterBindStatusCallback(7eb182c8,7fa6e5a8,7baaa91c,00000000) ret=69bdb885 trace:urlmon:RegisterBindStatusCallback (0x7eb182c8,0x7fa6e5a8,0x7baaa91c,0) 0009:Ret urlmon.RegisterBindStatusCallback() retval=00000000 ret=69bdb885 0009:Call urlmon.CreateURLMoniker(00000000,7fa6e7b0 L"file:///Y:/megacan.aps",7baaa940) ret=69bdb8bf trace:urlmon:CreateURLMoniker ((nil), L"file:///Y:/megacan.aps", 0x7baaa940) trace:urlmon:URLMonikerImpl_Construct (0x7eb1c528,(null),L"file:///Y:/megacan.aps") trace:urlmon:URLMonikerImpl_QueryInterface (0x7eb1c528)->({0000000f-0000-0000-c000-000000000046},0x7baaa940) trace:urlmon:URLMonikerImpl_AddRef (0x7eb1c528)->(ref before=0) 0009:Ret urlmon.CreateURLMoniker() retval=00000000 ret=69bdb8bf trace:urlmon:UMCreateStreamOnCacheFile Opening L"c:\\windows\\Temporary Internet Files\\Content.IE5\\8A2B3L94\\megacan[13].aps" trace:urlmon:URLMonikerImpl_BindToStorage Created stream... trace:urlmon:IStream_fnAddRef (0x7eb1c5f8)->(count=1) trace:urlmon:URLMonikerImpl_BindToStorage Got IBindStatusCallback... trace:urlmon:URLMonikerImpl_BindToStorage got bindinfo. bindf = 00000283 extrainfo = (null) bindinfof = 00000000 bindverb = 00000000 iid {00000000-0000-0000-0000-000000000000} trace:urlmon:Binding_AddRef (0x7eb1c580) ref=2 trace:urlmon:URLMonikerImpl_BindToStorage OnStartBinding rets 00000000 trace:urlmon:Binding_QueryInterface (0x7eb1c580)->({79eac9d8-bafa-11ce-8c82-00aa004ba90b},0x7baa8558) trace:urlmon:IStream_fnAddRef (0x7eb1c5f8)->(count=2) trace:urlmon:IStream_fnRelease (0x7eb1c5f8)->(count=3) trace:urlmon:Binding_Release (0x7eb1c580) ref=1 trace:urlmon:Binding_Release (0x7eb1c580) ref=0 trace:urlmon:IStream_fnRelease (0x7eb1c5f8)->(count=2) trace:urlmon:URLMonikerImpl_Release (0x7eb1c528)->(ref before=1) trace:urlmon:IStream_fnRead (0x7eb1c5f8)->(0x7fa72118,0x00000fff,0x7baaa82c) trace:urlmon:IStream_fnRead (0x7eb1c5f8)->(0x7fa6ef38,0x00001ffd,0x7baaa818) trace:urlmon:IStream_fnRelease (0x7eb1c5f8)->(count=1) trace:urlmon:IStream_fnRelease destroying UMCacheStream (0x7eb1c5f8) 0009:Call urlmon.RegisterBindStatusCallback(7eb251f0,7fa6f930,7baaa7d4,00000000) ret=69bdb885 trace:urlmon:RegisterBindStatusCallback (0x7eb251f0,0x7fa6f930,0x7baaa7d4,0) 0009:Ret urlmon.RegisterBindStatusCallback() retval=00000000 ret=69bdb885 0009:Call urlmon.CreateURLMoniker(00000000,7fa6f880 L"file:///C:/Program%20Files/Atmel/AVR%20Tools/AvrStudio4/bin/AvrAssembler.def",7baaa7f8) ret=69bdb8bf trace:urlmon:CreateURLMoniker ((nil), L"file:///C:/Program%20Files/Atmel/AVR%20Tools/AvrStudio4/bin/AvrAssembler.def", 0x7baaa7f8) trace:urlmon:URLMonikerImpl_Construct (0x7eb32070,(null),L"file:///C:/Program%20Files/Atmel/AVR%20Tools/AvrStudio4/bin/AvrAssembler.def") trace:urlmon:URLMonikerImpl_QueryInterface (0x7eb32070)->({0000000f-0000-0000-c000-000000000046},0x7baaa7f8) trace:urlmon:URLMonikerImpl_AddRef (0x7eb32070)->(ref before=0) 0009:Ret urlmon.CreateURLMoniker() retval=00000000 ret=69bdb8bf trace:urlmon:UMCreateStreamOnCacheFile Opening L"c:\\windows\\Temporary Internet Files\\Content.IE5\\0PYJ4LMN\\AvrAssembler[10].def" trace:urlmon:URLMonikerImpl_BindToStorage Created stream... trace:urlmon:IStream_fnAddRef (0x7eb25258)->(count=1) trace:urlmon:URLMonikerImpl_BindToStorage Got IBindStatusCallback... trace:urlmon:URLMonikerImpl_BindToStorage got bindinfo. bindf = 00000283 extrainfo = (null) bindinfof = 00000000 bindverb = 00000000 iid {00000000-0000-0000-0000-000000000000} trace:urlmon:Binding_AddRef (0x7eb29730) ref=2 trace:urlmon:URLMonikerImpl_BindToStorage OnStartBinding rets 00000000 trace:urlmon:IStream_fnRelease (0x7eb25258)->(count=2) trace:urlmon:Binding_QueryInterface (0x7eb29730)->({79eac9d8-bafa-11ce-8c82-00aa004ba90b},0x7baa8410) trace:urlmon:Binding_Release (0x7eb29730) ref=1 trace:urlmon:Binding_Release (0x7eb29730) ref=0 trace:urlmon:URLMonikerImpl_Release (0x7eb32070)->(ref before=1) 0009:Call kernel32.GetModuleHandleA(69b3fd6c "URLMON.DLL") ret=69b3fcf8 0009:Call ntdll.RtlInitAnsiString(7baaa77c,69b3fd6c "URLMON.DLL") ret=7bb5be65 0009:Call ntdll.RtlInitUnicodeString(7baaa784,7bd95c00 L"URLMON.DLL") ret=7bb72425 0009:Call PE DLL (proc=0x7e664630,module=0x7e660000 L"urlmon.dll",reason=PROCESS_DETACH,res=0x1) trace:urlmon:DllMain 0x7e660000 0x0 0x1 0009:Ret PE DLL (proc=0x7e664630,module=0x7e660000 L"urlmon.dll",reason=PROCESS_DETACH,res=0x1) retval=1
participants (2)
-
Jacek Caban -
Uwe Bonnes