Hi,
I feel rather stupid, but need help understanding this. I managed to screw up winetest so that it runs into trouble. The relay trace goes like (indented by examine-relay)
-------------------------------------------------------------------- 000a:Call comctl32.InitCommonControls() ret=40593c29 000a:Ret comctl32.InitCommonControls() retval=40def6d4 ret=40593c29 000a:Call kernel32.GetModuleHandleA(00000000) ret=40593c3c 000a:Ret kernel32.GetModuleHandleA() retval=40540000 ret=40593c3c 000a:Call user32.CreateDialogParamA(40540000,00000064,00000000,40593b4c,00000000) ret=40593c42 000a:Call kernel32.FindResourceA(40540000,00000064,00000005) ret=407aa47f 000a:Ret kernel32.FindResourceA() retval=405954f8 ret=407aa47f 000a:Call kernel32.LoadResource(40540000,405954f8) ret=407aa48a 000a:Ret kernel32.LoadResource() retval=40590d20 ret=407aa48a 000a:Call kernel32._EnterSysLevel(40810b00) ret=407c21b8 000a:Ret kernel32._EnterSysLevel() retval=00000008 ret=407c21b8 000a:Call kernel32._LeaveSysLevel(40810b00) ret=407c21dc 000a:Ret kernel32._LeaveSysLevel() retval=00000000 ret=407c21dc 000a:Call kernel32._EnterSysLevel(40810b00) ret=407c21b8 000a:Ret kernel32._EnterSysLevel() retval=00000008 ret=407c21b8 000a:Call kernel32._EnterSysLevel(40810b00) ret=407c21b8 000a:Ret kernel32._EnterSysLevel() retval=00000008 ret=407c21b8 000a:Call kernel32._LeaveSysLevel(40810b00) ret=407c21dc 000a:Ret kernel32._LeaveSysLevel() retval=00000000 ret=407c21dc 000a:Call ntdll.RtlAllocateHeap(40300000,00000000,0000001c) ret=407a6047 000a:Ret ntdll.RtlAllocateHeap() retval=40347998 ret=407a6047 000a:Call gdi32.CreateDCA(407f0e04 "DISPLAY",00000000,00000000,00000000) ret=407a6066 000a:Call ntdll.RtlCreateUnicodeStringFromAsciiz(40def3e8,407f0e04 "DISPLAY") ret=408994dd 000a:Ret ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00000001 ret=408994dd 000a:Call kernel32._CheckNotSysLevel(408cf320) ret=408a56e8 000a:Ret kernel32._CheckNotSysLevel() retval=0000000a ret=408a56e8 000a:Call ntdll.RtlEnterCriticalSection(408cf400) ret=408ae109 000a:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=408ae109 000a:Call ntdll.RtlLeaveCriticalSection(408cf400) ret=408ae1d9 000a:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=408ae1d9 000a:Call kernel32._EnterSysLevel(408cf320) ret=408a50cf 000a:Ret kernel32._EnterSysLevel() retval=0000000c ret=408a50cf 000a:Call ntdll.RtlAllocateHeap(40300000,00000000,00000138) ret=408a5215 000a:Ret ntdll.RtlAllocateHeap() retval=403479c0 ret=408a5215 000a:Call x11drv.CreateDC(403479c0,403479d8,40def15c L"DISPLAY",00000000,00000000,00000000) ret=40899405 000a:Call ntdll.RtlAllocateHeap(40300000,00000008,0000008c) ret=409ee0de 000a:Ret ntdll.RtlAllocateHeap() retval=40347b00 ret=409ee0de 000a:Call gdi32.GetObjectType(0000007c) ret=409ee125 000a:Call kernel32._EnterSysLevel(408cf320) ret=408a5527 000a:Ret kernel32._EnterSysLevel() retval=0000000c ret=408a5527 000a:Call kernel32._LeaveSysLevel(408cf320) ret=408a56c3 000a:Ret kernel32._LeaveSysLevel() retval=00000000 ret=408a56c3 000a:Ret gdi32.GetObjectType() retval=00000003 ret=409ee125 000a:Call ntdll.RtlEnterCriticalSection(40a20700) ret=409fe8b0 000a:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=409fe8b0 err:ntdll:RtlpWaitForCriticalSection section 0x40334040 "?" wait timed out in thread 000a, blocked by 0009, retrying (60 sec) --------------------------------------------------------------------
which I don't understand given the definition
-------------------------------------------------------------------- HWND WINAPI CreateDialogParamA( HINSTANCE hInst, LPCSTR name, HWND owner, DLGPROC dlgProc, LPARAM param ) { HRSRC hrsrc; LPCDLGTEMPLATEA ptr;
if (!(hrsrc = FindResourceA( hInst, name, (LPSTR)RT_DIALOG ))) return 0; if (!(ptr = (LPCDLGTEMPLATEA)LoadResource(hInst, hrsrc))) return 0; return CreateDialogIndirectParamA( hInst, ptr, owner, dlgProc, param ); } --------------------------------------------------------------------
After LoadResource returns, I would expect a call to CreateDialogIndirectParamA instead of the SysLevels etc. Could somebody explain this, please?
Thanks a lot, Feri.