Hi,
I'm trying to get a (Win or Mac) software from my local photo printing shop to work. The software is in Finnish, and downloadable from
http://www.ifi.fi/programs/IFI_OnlineFoto.exe. From what I gather, the software is just licensed and translated version of Fotowire, found at
http://www.fotowire.com/home/html/download.htm
Anyway, I cannot get it to work. With 20041201 it crashed at the end of install process (still found it's way to the virtual drive though). This was fixed in 20050111. The problem with actual functionality, however, was not.
The program starts with a wizard. The first dialog box says that the software wants to connect to Internet. When I click next, there is an quick "connecting to server - respond received" dialog box and then an error box with a message that says "erroneous response received - check your connection" and the program returns to the first screen.
With 20041201 I got some errors about CalendarA's as quarter-stub, but these have disappeared with 20051101.
How do I go on with debugging this problem? I tried setting WINEDEBUG=+all wine fwprint.exe, but no debug messages appear..I'm using Gentoo, kernel 2.6.10, gcc 3.4.
Thanks for any and all assistance. Hopefully we can get this to work.
I do have access to native DLLs from Win'98 or 2k if any of those can help.
On Fri, 14 Jan 2005 23:31:54 +0200, Antti Mäkelä wrote:
The program starts with a wizard. The first dialog box says that the software wants to connect to Internet. When I click next, there is an quick "connecting to server - respond received" dialog box and then an error box with a message that says "erroneous response received - check your connection" and the program returns to the first screen.
You might want to run a packet sniffer like Ethereal on it to see what it's doing on the network, failing that a +winsock,+wininet trace may be helpful.
I noticed these Fotowire guys have a Mac port. I wonder if they'd be willing to do a Linux port. Hmm.
thanks -mike
Antti Mäkelä wrote:
Hi,
I'm trying to get a (Win or Mac) software from my local photo printing shop to work. The software is in Finnish, and downloadable from
http://www.ifi.fi/programs/IFI_OnlineFoto.exe.
The program starts with a wizard. The first dialog box says that the software wants to connect to Internet. When I click next, there is an quick "connecting to server - respond received" dialog box and then an error box with a message that says "erroneous response received - check your connection" and the program returns to the first screen.
If you can get debug messages working, I would makes sure you are running builtin wininet and then get a +wininet log.
How do I go on with debugging this problem? I tried setting WINEDEBUG=+all wine fwprint.exe, but no debug messages appear..I'm using Gentoo, kernel 2.6.10, gcc 3.4.
Hmmm, debug messages should be displayed. Can you think of anything you did different to the 20041201 release with regard to installing Wine?
Rob
Le ven 14/01/2005 à 19:38, Robert Shearman a écrit :
Antti Mäkelä wrote:
Hi,
I'm trying to get a (Win or Mac) software from my local photo printing shop to work. The software is in Finnish, and downloadable from
http://www.ifi.fi/programs/IFI_OnlineFoto.exe.
The program starts with a wizard. The first dialog box says that the software wants to connect to Internet. When I click next, there is an quick "connecting to server - respond received" dialog box and then an error box with a message that says "erroneous response received - check your connection" and the program returns to the first screen.
If you can get debug messages working, I would makes sure you are running builtin wininet and then get a +wininet log.
How do I go on with debugging this problem? I tried setting WINEDEBUG=+all wine fwprint.exe, but no debug messages appear..I'm using Gentoo, kernel 2.6.10, gcc 3.4.
Hmmm, debug messages should be displayed. Can you think of anything you did different to the 20041201 release with regard to installing Wine?
With the Gentoo ebuild, if you don't have "debug" in your USE flags, it'll pass --disable-debug and/or --disable-trace to ./configure, so you don't get any messages in your terminal.
Use "-debug" (or whatever the correct syntax is) specifically for wine and you should now see the debug/trace messages.
Vincent
On Sat, 14 Jan 2005, Vincent Béron wrote:
Le ven 14/01/2005 à 19:38, Robert Shearman a écrit :
If you can get debug messages working, I would makes sure you are running builtin wininet and then get a +wininet log.
With the Gentoo ebuild, if you don't have "debug" in your USE flags, it'll pass --disable-debug and/or --disable-trace to ./configure, so you don't get any messages in your terminal.
Thanks for the tip. I didn't notice that in this new ebuild the debug USE-flag had appeared. Anyway, now I have some debugs.
First of all, the connection to Internet works fine. So I don't think wininet as such might be the culprit. With Ethereal, I can see that following come through the wire (basically XML over HTTP)
Content-Type: text/xml; charset=utf-8 Content-Length: 416 <?xml version="1.0"?>
<update><validity>2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg< (rest of the stuff snipped). Basically, I think the program checks whether some license or something has expired.
If I debug the +wininet I can see the connection working just fine - HTTP methods get called and I can see stuff like
trace:wininet:HTTP_GetResponseHeaders got line "Server: Microsoft-IIS/6.0", nowinterpretting
going by. Apparently the content gets passed out of wininet, so the xml parsing part somehow is messed up.
Since I have no real idea where to start, I tried with WINEDEBUG=warn+all and this is what I get for the part where internet connection is activated and the error message appears:
warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:x11drv:SWP_DoOwnedPopups (0x50046) hInsertAfter = (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:x11drv:SWP_DoOwnedPopups (0x6004a) hInsertAfter = (nil) warn:event:EVENT_ProcessEvent Got event UnmapNotify for unknown Window 028000ba warn:event:EVENT_ProcessEvent Got event FocusOut for unknown Window 028000ba warn:event:EVENT_ProcessEvent Got event ConfigureNotify for unknown Window 028000ba warn:event:EVENT_ProcessEvent Got event ConfigureNotify for unknown Window 028000ba warn:x11drv:SWP_DoOwnedPopups (0x6004a) hInsertAfter = 0x10022 warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/Program Files/IFI/OnlineFoto warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/Program Files/IFI/OnlineFoto warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/windows/system warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/windows warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/windows/system warn:file:wine_nt_to_unix_file_name L"imm32.dll" not found in /home/zarhan/.wine/dosdevices/c:/windows warn:imm:ImmAssociateContext ((nil), 0x77cd59e8): semi-stub warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:x11drv:SWP_DoOwnedPopups (0x6004e) hInsertAfter = (nil) warn:x11drv:SWP_DoOwnedPopups (0x6004e) hInsertAfter = 0x10022 warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:x11drv:SWP_DoOwnedPopups (0x6004e) hInsertAfter = (nil) warn:x11drv:SWP_DoOwnedPopups (0x6004e) hInsertAfter = 0x10022
Using native imm32.dll (From win2k SP4) does not help.
Anyway, here is also the +wininet log. What would be the next step?
fixme:ole:StdMarshalImpl_MarshalInterface table marshalling unimplemented trace:wininet:DllMain 0x7f750000,1,(nil) trace:wininet:DllMain 0x7f750000,2,(nil) trace:wininet:DllMain 0x7f750000,2,(nil) trace:wininet:InternetOpenA ("fwPrint", 0x00000001, (null), (null), 0x00000000) trace:wininet:InternetOpenW (L"fwPrint", 1, (null), (null), 0) trace:wininet:InternetOpenW access type : INTERNET_OPEN_TYPE_DIRECT trace:wininet:InternetOpenW flags : trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 2 trace:wininet:WININET_Release object 0x77cdc768 refcount = 1 trace:wininet:InternetOpenW returning 0x77cdc768 trace:wininet:InternetSetStatusCallbackA 0x00000001 trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 2 trace:wininet:WININET_GetObject handle 1 -> 0x77cdc768 trace:wininet:WININET_Release object 0x77cdc768 refcount = 1 trace:wininet:InternetConnectW (0x1, L"master.fotowire.com", 80, L"", (null), 3, 0, 1) trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 2 trace:wininet:WININET_GetObject handle 1 -> 0x77cdc768 trace:wininet:HTTP_Connect --> trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 3 trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 2 trace:wininet:SendAsyncCallback (0x77cdc838, 00000001, 60 (INTERNET_STATUS_HANDLE_CREATED), 0x7c67e338, 8): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000002 (0x77cdc838), 00000001, 60 (INTERNET_STATUS_HANDLE_CREATED), 0x7c67e338, 8) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc838 refcount = 2 trace:wininet:WININET_Release object 0x77cdc838 refcount = 1 trace:wininet:HTTP_Connect 0x77cdc768 --> 0x2 (0x77cdc838) trace:wininet:WININET_Release object 0x77cdc768 refcount = 2 trace:wininet:InternetConnectW returning 0x2 trace:wininet:HttpOpenRequestA (0x2, "GET", "/fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=cbc", "HTTP/1.0", (null), (nil), 84600000, 00000001) trace:wininet:HttpOpenRequestW (0x2, L"GET", L"/fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=cbc", L"HTTP/1.0", (null), (nil), 84600000, 00000001) trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 2 trace:wininet:WININET_GetObject handle 2 -> 0x77cdc838 trace:wininet:HTTP_HttpOpenRequestW --> trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 3 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:HTTP_ProcessHeader --> L"Host": L"master.fotowire.com" - 0xa2000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:HTTP_HttpAddRequestHeadersW copying header: L"User-Agent: fwPrint\r\n" trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"User-Agent: fwPrint" trace:wininet:HTTP_InterpretHttpHeader field(L"User-Agent") Value(L"fwPrint") trace:wininet:HTTP_ProcessHeader --> L"User-Agent": L"fwPrint" - 0x22000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:InternetGetCookieW (L"http://master.fotowire.com", (null), (nil), 0x7c67e020) trace:wininet:InternetCrackUrlW (L"http://master.fotowire.com" 26 0 0x7c67bf38) trace:wininet:GetInternetSchemeW trace:wininet:SetUrlComponentValueW L"http"... (4) trace:wininet:SetUrlComponentValueW (null) (0) trace:wininet:SetUrlComponentValueW (null) (0) trace:wininet:SetUrlComponentValueW L"master.fotowire.com" (19) trace:wininet:InternetCrackUrlW L"http://master.fotowire.com": host(L"master.fotowire.com") path(L"") extra((null)) trace:wininet:InternetGetCookieW returning trace:wininet:InternetGetCookieW (L"http://master.fotowire.com", (null), 0x77cdcec0, 0x7c67e020) trace:wininet:InternetCrackUrlW (L"http://master.fotowire.com" 26 0 0x7c67bf38) trace:wininet:GetInternetSchemeW trace:wininet:SetUrlComponentValueW L"http"... (4) trace:wininet:SetUrlComponentValueW (null) (0) trace:wininet:SetUrlComponentValueW (null) (0) trace:wininet:SetUrlComponentValueW L"master.fotowire.com" (19) trace:wininet:InternetCrackUrlW L"http://master.fotowire.com": host(L"master.fotowire.com") path(L"") extra((null)) trace:wininet:HTTP_HttpAddRequestHeadersW copying header: L"Cookie: \r\n" trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"Cookie: " trace:wininet:HTTP_InterpretHttpHeader field(L"Cookie") Value(L"") trace:wininet:HTTP_ProcessHeader --> L"Cookie": L"" - 0x22000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:SendAsyncCallback (0x77cdc838, 00000001, 60 (INTERNET_STATUS_HANDLE_CREATED), 0x7c67e018, 8): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 4 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000002 (0x77cdc838), 00000001, 60 (INTERNET_STATUS_HANDLE_CREATED), 0x7c67e018, 8) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc838 refcount = 3 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 10 (INTERNET_STATUS_RESOLVING_NAME), 0x77cdc888, 20): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 10 (INTERNET_STATUS_RESOLVING_NAME), 0x77cdcf80, 20) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:GetAddress L"master.fotowire.com" trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 11 (INTERNET_STATUS_NAME_RESOLVED), 0x77cdc868, 16): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 11 (INTERNET_STATUS_NAME_RESOLVED), 0x77cdc868, 16) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:HTTP_HttpOpenRequestW <-- 0x3 (0x77cdc968) trace:wininet:WININET_Release object 0x77cdc838 refcount = 2 trace:wininet:HttpOpenRequestW returning 0x3 trace:wininet:HttpAddRequestHeadersA 0x3, "Accept: text/*\r\nUser-Agent: fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)\r\nAccept-Language: fi\r\n", 144, 268435456 trace:wininet:HttpAddRequestHeadersW 0x3, L"Accept: text/*\r\nUser-Agent: fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)\r\nAccept-Language: fi\r\n\2aa1\0008\5246\45458\77c5t\77c5\5455\4f48\5352\6620\726f\6120\6320\6d6f\6c70\7465\2065\696c\7473)$\000c\724f\6769\6e69\6c61\6946\656c\616e\656d", 144, 268435456 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:HTTP_HttpAddRequestHeadersW copying header: L"Accept: text/*\r\nUser-Agent: fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)\r\nAccept-Language: fi\r\n\2aa1\0008\5246\45458\77c5t\77c5\5455\4f48\5352\6620\726f\6120\6320\6d6f\6c70\7465\2065\696c\7473)$\000c\724f\6769\6e69\6c61\6946\656c\616e\656d" trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"Accept: text/*" trace:wininet:HTTP_InterpretHttpHeader field(L"Accept") Value(L"text/*") trace:wininet:HTTP_ProcessHeader --> L"Accept": L"text/*" - 0x12000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"User-Agent: fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)" trace:wininet:HTTP_InterpretHttpHeader field(L"User-Agent") Value(L"fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)") trace:wininet:HTTP_ProcessHeader --> L"User-Agent": L"fwClient(3.1.139.1;FIN;1100) OS(4.0.950;ENU;Win9x) WinInet(5.0.0.0) Browser(0.0.0.0;;Unknown)" - 0x12000000 trace:wininet:HTTP_ProcessHeader <-- 0 trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:HttpSendRequestW 0x3, (nil) ((null)), 0, (nil), 0) trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:HTTP_HttpSendRequestW --> 0x77cdc968 trace:wininet:HTTP_HttpSendRequestW Going to url L"master.fotowire.com" L"/fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=cbc" trace:wininet:HTTP_HttpSendRequestW Adding header L"Accept" (L"text/*") trace:wininet:HTTP_HttpSendRequestW Adding header L"User-Agent" (L"fwPrint") trace:wininet:HTTP_HttpSendRequestW Adding header L"Cookie" (L"") trace:wininet:HTTP_HttpSendRequestW Adding header L"Host" (L"master.fotowire.com") trace:wininet:HTTP_HttpSendRequestW Request header -> L"GET /fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=cbc HTTP/1.0\r\nAccept: text/*\r\nUser-Agent: fwPrint\r\nCookie: \r\nHost: master.fotowire.com\r\n\r\n" trace:wininet:HTTP_OpenConnection --> trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 20 (INTERNET_STATUS_CONNECTING_TO_SERVER), 0x77cdc868, 16): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 20 (INTERNET_STATUS_CONNECTING_TO_SERVER), 0x77cdc868, 16) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 21 (INTERNET_STATUS_CONNECTED_TO_SERVER), 0x77cdc868, 16): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 21 (INTERNET_STATUS_CONNECTED_TO_SERVER), 0x77cdc868, 16) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:HTTP_OpenConnection 1 <-- trace:wininet:HTTP_HttpSendRequestW full request -> GET /fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=cbc HTTP/1.0 Accept: text/* User-Agent: fwPrint Cookie: Host: master.fotowire.com
trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 30 (INTERNET_STATUS_SENDING_REQUEST), (nil), 0): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 30 (INTERNET_STATUS_SENDING_REQUEST), (nil), 0) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 31 (INTERNET_STATUS_REQUEST_SENT), 0x7c67a9ec, 4): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 31 (INTERNET_STATUS_REQUEST_SENT), 0x7c67a9ec, 4) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 40 (INTERNET_STATUS_RECEIVING_RESPONSE), (nil), 0): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 40 (INTERNET_STATUS_RECEIVING_RESPONSE), (nil), 0) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:HTTP_GetResponseHeaders --> trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :16 HTTP/1.1 200 OK trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"200"] status text [L"OK"] trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :18 Connection: close trace:wininet:HTTP_GetResponseHeaders got line "Connection: close", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Connection") Value(L"close") trace:wininet:HTTP_ProcessHeader --> L"Connection": L"close" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :36 Date: Sat, 15 Jan 2005 12:31:57 GMT trace:wininet:HTTP_GetResponseHeaders got line "Date: Sat, 15 Jan 2005 12:31:57 GMT", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Date") Value(L"Sat, 15 Jan 2005 12:31:57 GMT") trace:wininet:HTTP_ProcessHeader --> L"Date": L"Sat, 15 Jan 2005 12:31:57 GMT" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :26 Server: Microsoft-IIS/6.0 trace:wininet:HTTP_GetResponseHeaders got line "Server: Microsoft-IIS/6.0", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Server") Value(L"Microsoft-IIS/6.0") trace:wininet:HTTP_ProcessHeader --> L"Server": L"Microsoft-IIS/6.0" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :22 X-Powered-By: ASP.NET trace:wininet:HTTP_GetResponseHeaders got line "X-Powered-By: ASP.NET", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"X-Powered-By") Value(L"ASP.NET") trace:wininet:HTTP_ProcessHeader --> L"X-Powered-By": L"ASP.NET" - 0xa0000000 trace:wininet:HTTP_GetStdHeaderIndex Couldn't find L"X-Powered-By" in standard header table trace:wininet:HTTP_GetCustomHeaderIndex L"X-Powered-By" trace:wininet:HTTP_GetCustomHeaderIndex Return: -1 trace:wininet:HTTP_InsertCustomHeader --> L"X-Powered-By": L"ASP.NET" trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :27 X-AspNet-Version: 1.1.4322 trace:wininet:HTTP_GetResponseHeaders got line "X-AspNet-Version: 1.1.4322", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"X-AspNet-Version") Value(L"1.1.4322") trace:wininet:HTTP_ProcessHeader --> L"X-AspNet-Version": L"1.1.4322" - 0xa0000000 trace:wininet:HTTP_GetStdHeaderIndex Couldn't find L"X-AspNet-Version" in standard header table trace:wininet:HTTP_GetCustomHeaderIndex L"X-AspNet-Version" trace:wininet:HTTP_GetCustomHeaderIndex Return: -1 trace:wininet:HTTP_InsertCustomHeader --> L"X-AspNet-Version": L"1.1.4322" trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :24 Cache-Control: no-cache trace:wininet:HTTP_GetResponseHeaders got line "Cache-Control: no-cache", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Cache-Control") Value(L"no-cache") trace:wininet:HTTP_ProcessHeader --> L"Cache-Control": L"no-cache" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :17 Pragma: no-cache trace:wininet:HTTP_GetResponseHeaders got line "Pragma: no-cache", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Pragma") Value(L"no-cache") trace:wininet:HTTP_ProcessHeader --> L"Pragma": L"no-cache" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :12 Expires: -1 trace:wininet:HTTP_GetResponseHeaders got line "Expires: -1", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Expires") Value(L"-1") trace:wininet:HTTP_ProcessHeader --> L"Expires": L"-1" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :38 Content-Type: text/xml; charset=utf-8 trace:wininet:HTTP_GetResponseHeaders got line "Content-Type: text/xml; charset=utf-8", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Content-Type") Value(L"text/xml; charset=utf-8") trace:wininet:HTTP_ProcessHeader --> L"Content-Type": L"text/xml; charset=utf-8" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :20 Content-Length: 416 trace:wininet:HTTP_GetResponseHeaders got line "Content-Length: 416", now interpretting trace:wininet:HTTP_InterpretHttpHeader field(L"Content-Length") Value(L"416") trace:wininet:HTTP_ProcessHeader --> L"Content-Length": L"416" - 0xa0000000 trace:wininet:HTTP_ProcessHeader <-- 1 trace:wininet:NETCON_getNextLine trace:wininet:NETCON_getNextLine :1 trace:wininet:HTTP_GetResponseHeaders got line "", now interpretting trace:wininet:HTTP_GetResponseHeaders raw headers: L"HTTP/1.1 200 OK\r\nConnection: close\r\nDate: Sat, 15 Jan 2005 12:31:57 GMT\r\nServer: Microsoft-IIS/6.0\r\nX-Powered-By: ASP.NET\r\nX-AspNet-Version: 1.1.4322\r\nCache-Control: no-cache\r\nPragma: no-cache\r\nExpires: -1\r\nContent-Type: text/xml; charset=utf-8\r\nContent-Length: 416\r\n\r\n" trace:wininet:HTTP_GetResponseHeaders <-- trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 41 (INTERNET_STATUS_RESPONSE_RECEIVED), 0x7c67a9e8, 4): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 41 (INTERNET_STATUS_RESPONSE_RECEIVED), 0x7c67a9e8, 4) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:HTTP_GetCustomHeaderIndex L"Set-Cookie" trace:wininet:HTTP_GetCustomHeaderIndex Return: -1 trace:wininet:HTTP_HttpQueryInfoW returning number : 200 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 100 (INTERNET_STATUS_REQUEST_COMPLETE), 0x7c67a9cc, 8): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 100 (INTERNET_STATUS_REQUEST_COMPLETE), 0x7c67a9cc, 8) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:HTTP_HttpSendRequestW <-- trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:HttpQueryInfoW (0x3, 0x00000013)--> 19 trace:wininet:HttpQueryInfoW Attribute: HTTP_QUERY_STATUS_CODE Modifier: trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:HTTP_HttpQueryInfoW returning string : 'L"200"' trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:HttpQueryInfoW 1 <-- trace:wininet:HttpQueryInfoA lpBuffer: "200" trace:wininet:InternetReadFile 0x3 0x7c67e890 1024 0x7c67e470 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:InternetReadFile -- TRUE (bytes read: 416) trace:wininet:InternetReadFile 0x3 0x7c67e890 1024 0x7c67e470 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:InternetReadFile -- TRUE (bytes read: 0) trace:wininet:InternetCloseHandle 0x3 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 2 trace:wininet:WININET_GetObject handle 3 -> 0x77cdc968 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 70 (INTERNET_STATUS_HANDLE_CLOSING), 0x7c67e478, 4): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc968 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000003 (0x77cdc968), 00000001, 70 (INTERNET_STATUS_HANDLE_CLOSING), 0x7c67e478, 4) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc968 refcount = 2 trace:wininet:WININET_Release object 0x77cdc838 refcount = 1 trace:wininet:WININET_FreeHandle destroying handle 3 for object 0x77cdc968 trace:wininet:WININET_Release object 0x77cdc968 refcount = 1 trace:wininet:WININET_Release object 0x77cdc968 refcount = 0 trace:wininet:WININET_Release destroying object 0x77cdc968 trace:wininet:HTTP_CloseHTTPRequestHandle trace:wininet:HTTP_CloseConnection 0x77cdc968 trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 50 (INTERNET_STATUS_CLOSING_CONNECTION), (nil), 0): non async call with callback 0x67f931a7 trace:wininet:SendSyncCallback Could not convert header '0x77cdc968' into a handle ! trace:wininet:SendAsyncCallback (0x77cdc968, 00000001, 51 (INTERNET_STATUS_CONNECTION_CLOSED), (nil), 0): non async call with callback 0x67f931a7 trace:wininet:SendSyncCallback Could not convert header '0x77cdc968' into a handle ! trace:wininet:InternetCloseHandle 0x2 trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 2 trace:wininet:WININET_GetObject handle 2 -> 0x77cdc838 trace:wininet:SendAsyncCallback (0x77cdc838, 00000001, 70 (INTERNET_STATUS_HANDLE_CLOSING), 0x7c67f0c4, 4): non async call with callback 0x67f931a7 trace:wininet:WININET_AddRef 0x77cdc838 -> refcount = 3 trace:wininet:SendSyncCallback callback(0x67f931a7) (00000002 (0x77cdc838), 00000001, 70 (INTERNET_STATUS_HANDLE_CLOSING), 0x7c67f0c4, 4) trace:wininet:SendSyncCallback end callback(). trace:wininet:WININET_Release object 0x77cdc838 refcount = 2 trace:wininet:WININET_Release object 0x77cdc768 refcount = 1 trace:wininet:WININET_FreeHandle destroying handle 2 for object 0x77cdc838 trace:wininet:WININET_Release object 0x77cdc838 refcount = 1 trace:wininet:WININET_Release object 0x77cdc838 refcount = 0 trace:wininet:WININET_Release destroying object 0x77cdc838 trace:wininet:HTTP_CloseHTTPSessionHandle 0x77cdc838 trace:wininet:InternetSetStatusCallbackA 0x00000001 trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 2 trace:wininet:WININET_GetObject handle 1 -> 0x77cdc768 trace:wininet:WININET_Release object 0x77cdc768 refcount = 1 trace:wininet:InternetCloseHandle 0x1 trace:wininet:WININET_AddRef 0x77cdc768 -> refcount = 2 trace:wininet:WININET_GetObject handle 1 -> 0x77cdc768 trace:wininet:SendAsyncCallback (0x77cdc768, 00000001, 70 (INTERNET_STATUS_HANDLE_CLOSING), 0x7c67f0ac, 4): non async call with callback (nil) trace:wininet:WININET_FreeHandle destroying handle 1 for object 0x77cdc768 trace:wininet:WININET_Release object 0x77cdc768 refcount = 1 trace:wininet:WININET_Release object 0x77cdc768 refcount = 0 trace:wininet:WININET_Release destroying object 0x77cdc768 trace:wininet:INTERNET_CloseHandle 0x77cdc768 trace:wininet:DllMain 0x7f750000,3,(nil)
On Sat, 15 Jan 2005 14:34:30 +0200, Antti Mäkelä wrote:
Apparently the content gets passed out of wininet, so the xml parsing part somehow is messed up.
Since I have no real idea where to start, I tried with WINEDEBUG=warn+all and this is what I get for the part where internet connection is activated and the error message appears:
Try doing a +relay,+tid,+ole trace then locate the call to MessageBoxA and figure out what functions were being used at the time before the message appeared.
On Saturday 15 January 2005 19:36, Mike Hearn wrote:
Try doing a +relay,+tid,+ole trace then locate the call to MessageBoxA and figure out what functions were being used at the time before the message appeared.
Now replying via newsreader, seems easier method :) Hopefully I configured this correctly. And sorry about some of the overtly long lines in the log.
Anyway, I'm getting something like this, after narrowing the error happening in the MessageBoxes "Connecting to server" and "Error".
First reference to the error message (even before MessageBoxA:)
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77ce0cd8 L"Palvelimelta saatiin virheellinen vastaus.",0000002a,7796c3d0,000000ff,00000000,00000000) ret=777f7b25
That "Palvelimelta..." is just "Erroneus message received" in finnish.
Okay, direct dump of functions that get called before that. The first line now shows part of the XML that came through.
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd64b4 L"Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</method><type>2</type></package></update>",0000000a,7defb5b0,00000015,00000000,00000000) ret=67f852e8 0009:Ret kernel32.WideCharToMultiByte() retval=0000000a ret=67f852e8 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8ca7b 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8ca7b 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.lstrlenA(7defb5b0 "Lab Logo 2") ret=67f8cd91 0009:Ret kernel32.lstrlenA() retval=0000000a ret=67f8cd91 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8c689 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8c689 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000000 ret=67f8c913 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a7f1 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a7f1 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a800 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a800 0009:Call kernel32.TlsGetValue(00000006) ret=67f958b7 0009:Ret kernel32.TlsGetValue() retval=77caaae0 ret=67f958b7 0009:Call user32.LoadStringA(67f00000,00000088,7796c3d0,00000100) ret=67f8cfd5 0009:Call ntdll.RtlAllocateHeap(77c50000,00000000,00000200) ret=777f7a0a 0009:Ret ntdll.RtlAllocateHeap() retval=77ce0cd8 ret=777f7a0a 0009:Call kernel32.FindResourceW(67f00000,00000009,00000006) ret=777f7807 0009:Call ntdll.LdrFindResource_U(67f00000,7796c0f4,00000003,7796c030) ret=77bc076a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77bc076a 0009:Ret kernel32.FindResourceW() retval=67f01d78 ret=777f7807 0009:Call kernel32.LoadResource(67f00000,67f01d78) ret=777f7820 0009:Call ntdll.LdrAccessResource(67f00000,67f01d78,7796c158,00000000) ret=77bc1b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77bc1b0b 0009:Ret kernel32.LoadResource() retval=67f09fc0 ret=777f7820 0009:Call kernel32.LockResource(67f09fc0) ret=777f7835 0009:Ret kernel32.LockResource() retval=67f09fc0 ret=777f7835 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77ce0cd8 L"Palvelimelta saatiin virheellinen vastaus.",0000002a,7796c3d0,000000ff,00000000,00000000) ret=777f7b25
There is an earlier call, too:
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd6312 L"2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><type>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data"...,00000009,7defb5b0,00000013,00000000,00000000) ret=67f852e8 0009:Ret kernel32.WideCharToMultiByte() retval=00000009 ret=67f852e8 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8ca7b 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8ca7b 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.lstrlenA(7defb5b0 "2005/1/21") ret=67f8cd91 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f8cd91 0009:Call kernel32.lstrlenA(7defb5b0 "2005/1/21") ret=67f8c997 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f8c997 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a76d 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a76d 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a7b3 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a7b3 0009:Call kernel32.lstrlenA(7defb600 "2005/1/21") ret=67f59695 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f59695 0009:Call kernel32.MultiByteToWideChar(00000000,00000000,7defb600 "2005/1/21",ffffffff,7796c4a0,0000000a) ret=67f596bb 0009:Ret kernel32.MultiByteToWideChar() retval=0000000a ret=67f596bb 0009:Call oleaut32.VarDateFromStr(7796c4a0 L"2005/1/21",00000409,00000002,7796ca20) ret=67f596c9 0009:Call kernel32.GetLocaleInfoW(00000409,20000021,7796c184,00000002) ret=77568fbd
Anyway, if lstrlenA is supposed to return string length, the value of '9' is correct, I gather.
The stuff about GetLocaleInfoW is a bit more interesting. Maybe the date format is locale-specific and Wine implementation cannot parse it?
Anyway, what follows are all the months:
0009:Ret kernel32.GetLocaleInfoW() retval=00000008 ret=77569027 0009:Call kernel32.lstrlenW(7796c1a8 L"January") ret=77526b88 0009:Ret kernel32.lstrlenW() retval=00000007 ret=77526b88 0009:Call ntdll.RtlAllocateHeap(77c50000,00000000,00000014) ret=77526acd 0009:Ret ntdll.RtlAllocateHeap() retval=77cc3668 ret=77526acd 0009:Call kernel32.GetLocaleInfoW(00000409,00000039,7796c1a8,00000080) ret=77569027 0009:Call ntdll.NtQueryDefaultLocale(00000001,7796bfac) ret=77ba0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ba0a55 0009:Call ntdll.LdrFindResource_U(77b60000,7796bf5c,00000003,7796be98) ret=77bc076a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77bc076a 0009:Call ntdll.LdrAccessResource(77b60000,77c448c0,7796bfa4,00000000) ret=77bc1b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77bc1b0b 0009:Ret kernel32.GetLocaleInfoW() retval=00000009 ret=77569027 0009:Call kernel32.lstrlenW(7796c1a8 L"February") ret=77526b88 0009:Ret kernel32.lstrlenW() retval=00000008 ret=77526b88
...till December, then short forms, then weekdays...etc. Final thing that seems to be locale information is AM/PM:
0009:Call kernel32.lstrlenW(7796c1a8 L"PM") ret=77526b88
After the locale is retviered, rest of the XML decoding starts. The final line in this snippet is the same as in the beginning of this message.
0009:Ret oleaut32.VarDateFromStr() retval=00000000 ret=67f596c9 0009:Call kernel32.InterlockedDecrement(7defb5f4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000000 ret=67f8c913 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a7f1 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a7f1 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a800 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a800 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000000 ret=67f8c913 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a7f1 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a7f1 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a800 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a800 0009:Call kernel32.lstrlenA(67fb726c "") ret=67f8ca99 0009:Ret kernel32.lstrlenA() retval=00000000 ret=67f8ca99 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a76d 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a76d 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a7b3 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a7b3 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd635a L"Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><type>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</me"...,0000000a,7defb5b0,00000015,00000000,00000000) ret=67f852e8 0009:Ret kernel32.WideCharToMultiByte() retval=0000000a ret=67f852e8 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8ca7b 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8ca7b 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.lstrlenA(7defb5b0 "Lab Logo 1") ret=67f8cd91 0009:Ret kernel32.lstrlenA() retval=0000000a ret=67f8cd91 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8c689 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8c689 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000000 ret=67f8c913 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a7f1 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a7f1 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a800 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a800 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a76d 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a76d 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a7b3 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a7b3 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd64b4 L"Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</method><type>2</type></package></update>",0000 000a,7defb5b0,00000015,00000000,00000000) ret=67f852e8
No references to outside kernel32 and ntdll except for oleaut..What could I try now?
On Sat, 15 Jan 2005 22:35:04 +0200, Antti Mäkelä wrote:
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd64b4 L"Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</method><type>2</type></package></update>",0000000a,7defb5b0,00000015,00000000,00000000) ret=67f852e8 0009:Ret kernel32.WideCharToMultiByte() retval=0000000a ret=67f852e8 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8ca7b 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8ca7b 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.lstrlenA(7defb5b0 "Lab Logo 2") ret=67f8cd91 0009:Ret kernel32.lstrlenA() retval=0000000a ret=67f8cd91 0009:Call kernel32.InterlockedIncrement(7defb5a4) ret=67f8c689 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8c689 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.InterlockedDecrement(7defb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000000 ret=67f8c913 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a7f1 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a7f1 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a800 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a800 0009:Call kernel32.TlsGetValue(00000006) ret=67f958b7 0009:Ret kernel32.TlsGetValue() retval=77caaae0 ret=67f958b7 0009:Call user32.LoadStringA(67f00000,00000088,7796c3d0,00000100) ret=67f8cfd5
This is where the error occurs ... it's loading the error message from the resource file. So you can ignore the rest of this section.
Unfortunately that trace doesn't reveal very much. One thing I do notice is that the string being converted isn't valid XML. It seems to have been chopped off a bit. So the question is, where does this string come from? If it's a wininet thing then it may be that we're not downloading the remote page correctly. Does native wininet help?
The stuff about GetLocaleInfoW is a bit more interesting. Maybe the date format is locale-specific and Wine implementation cannot parse it?
There may be a problem here ... some test cases may reveal the issue.
thanks -mike
On Sunday 16 January 2005 14:58, Mike Hearn wrote:
On Sat, 15 Jan 2005 22:35:04 +0200, Antti Mäkelä wrote:
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd64b4 L"Lab
..snip..
0009:Call user32.LoadStringA(67f00000,00000088,7796c3d0,00000100) ret=67f8cfd5
This is where the error occurs ... it's loading the error message from the resource file. So you can ignore the rest of this section.
Unfortunately that trace doesn't reveal very much. One thing I do notice is that the string being converted isn't valid XML. It seems to have been
The entire exchange, as seen by ethereal is (Follow TCP stream-option):
GET /fworder/fwver.asp?LID=1100&OEM=1100&UPID=1100&VER=3.1.139.1&RD=83bd HTTP/1.0 Accept: text/* User-Agent: fwPrint Cookie: Host: master.fotowire.com
HTTP/1.1 200 OK Connection: close Date: Sun, 16 Jan 2005 13:21:56 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Cache-Control: no-cache Pragma: no-cache Expires: -1 Content-Type: text/xml; charset=utf-8 Content-Length: 416
<?xml version="1.0"?> <update><validity>2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><type>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</method><type>2</type></package></update>
chopped off a bit. So the question is, where does this string come from? If it's a wininet thing then it may be that we're not downloading the remote page correctly. Does native wininet help?
With native wininet.dll (again, from win2k SP4) when the connection initiates, I get an exception and it drops top winedbg.
bash-2.05b$ wine fwPrint fixme:ole:StdMarshalImpl_MarshalInterface table marshalling unimplemented wine: Unhandled exception (thread 0013), starting debugger... WineDbg starting on pid 0xf Unhandled exception: page fault on read access to 0x00000002 in 32-bit code (0x77ddea9b). In 32 bit mode. Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:77ddea9b ESP:7c65e970 EBP:00000000 EFLAGS:00010202( - 00 - -RI1) EAX:00000002 EBX:7c65eaa0 ECX:0000005c EDX:00000000 ESI:77ccfc80 EDI:00000000 Stack dump: 0x7c65e970: 00000030 7c65e984 77ddea6c 77ddea50 0x7c65e980: 00000000 77213a63 6f646e69 74217377 0x7c65e990: 6f706d65 79726172 746e6920 656e7265 0x7c65e9a0: 69662074 2173656c 746e6f63 2e746e65 0x7c65e9b0: 21356569 0000c000 00000000 00000000 0x7c65e9c0: 00000000 00000000 00000000 77efd488 Backtrace: =>1 0x77ddea9b (0x00000000) 0x77ddea9b: adcb 0x0(%eax),%al Wine-dbg>
Anyway, regarding the validity of XML, the first reference to the entire response from the server is following:
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd62de L"1.0"?>\r\n<update><validity>2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><type>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/"...,00000003,7defb010,00000007,00000000,00000000) ret=67f852e8
Next WideCharToMultiByte call is
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd62f0 L"update><validity>2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><met hod>2</method><type>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><"...,00000006,7defb150,0000000d,00000000,00000000) ret=67f852e8
And so it goes, always stripping the first tag away. The full XML string is not shown in the log entries (I think, note the ...). When the tags from the beginning are stripped away, more stuff from the end shows up in the log. A few lines later there is
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd63e6 L"url><destination>$data$/lab.fw1</destination><method>2</method><type>2</type></package><pack age><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data$/lab.fw2</destination><method>2</method><type>2</type></package></update>",00000003,7defb290,00000007,00000000,00000000) ret=67f852e8
that does show the contents all the way to the end (the </update> tag).
Final call is
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd65f2L"update>",00000006,7defb5b0,0000000d,00000000,00000000) ret=67f852e8
At this point it seems that the information is parsed from XML Tags.
After this is done comes the parts in the log I note in my earlier message (the second snippet, with oleaut32.VarDateFromStr call).
What seems to be happening (to me) is that this program is a bit dirty: In effect the parsing process just finds the next '<' in a string, takes the tag, finds next >, and store the entire rest of the string beginning from the next char and does not even bother to cut it off.
This could explain why the next call is as follows:
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7ddd6312 L"2005/1/21</validity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logos/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><ty pe>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><url>/labs/logos/1100/6.jpg</url><destination>$data"...,00000009,7defb5b0,00000013,00000000,00000000) ret=67f852e8
In effect, now we're trying to process the date information (2005/1/21). The variable (or whatever) that supposedly contains the information also has the entire rest of the original XML string.
0009:Ret kernel32.WideCharToMultiByte() retval=00000009 ret=67f852e8
This is the return value, I'm assuming that the original call specified either the delimiter or something so only the first 9 characters are returned..
And so we get to the date: 0009:Call oleaut32.VarDateFromStr(7796c4a0 L"2005/1/21",00000409,00000002,7796ca20) ret=67f596c9
Also the first call you quoted is part of the process doing this too - the program at that point is only interested in the string "Lab Logo 2", the rest of the stuff can just go away..
The stuff about GetLocaleInfoW is a bit more interesting. Maybe the date format is locale-specific and Wine implementation cannot parse it?
There may be a problem here ... some test cases may reveal the issue.
I'm thinking that the XML parsing is probably not the problem (see above), so I would like to pursue this approach. What tests cases could I try out?
On Sun, 16 Jan 2005 15:50:24 +0200, Antti Mäkelä wrote:
I'm thinking that the XML parsing is probably not the problem (see above), so I would like to pursue this approach. What tests cases could I try out?
Try native oleaut32, this is the fastest way to test your theory. If that helps (or gets it past that part of the code) then we need to improve our unit test suite in dlls/oleaut32/tests/variant.c to exercise this function more. That would hopefully reveal the conformance problem which we can then fix.
thanks -mike
On Sunday 16 January 2005 22:10, Mike Hearn wrote:
Try native oleaut32, this is the fastest way to test your theory. If that helps (or gets it past that part of the code) then we need to improve our
Without any debugs and native oleaut32 I now get:
bash-2.05b$ wine fwprint fixme:ole:StdMarshalImpl_MarshalInterface table marshalling unimplemented fixme:time:GetCalendarInfoA (00000409,00000001,20000030,(nil),0,0x77a6c718): quarter-stub fixme:time:GetCalendarInfoW (00000409,00000001,20000030,(nil),0,0x77a6c718): quarter-stub
The errors appear after the response has been received from server. Maybe it gets past the code now and runs into other problems. Error message is still the same.
With debugs activated I can clearly see that the execution is a bit different. Log starting at the first WideChartoMultibyte that gets the 2005/01/21-date out. Before that, the stuff is the same (getting XML parsed one tag at a time). Ending at fixmes. There's a lot of locale-type stuff but I wasn't sure on what to leave out.
Are we onto something here? I actually had GetCalendarInfoA errors with 20041201 release, but they do not appear when running builtins.
0009:Call kernel32.WideCharToMultiByte(00000000,00000000,7d8a6352 L"2005/1/21</v alidity><package><title>Lab Logo 1</title><date>1997/11/26</date><url>/labs/logo s/1100/2.jpg</url><destination>$data$/lab.fw1</destination><method>2</method><ty pe>2</type></package><package><title>Lab Logo 2</title><date>1997/11/26</date><u rl>/labs/logos/1100/6.jpg</url><destination>$data"...,00000009,7d9cb5b0,00000013 ,00000000,00000000) ret=67f852e8 0009:Ret kernel32.WideCharToMultiByte() retval=00000009 ret=67f852e8 0009:Call kernel32.InterlockedIncrement(7d9cb5a4) ret=67f8ca7b 0009:Ret kernel32.InterlockedIncrement() retval=00000002 ret=67f8ca7b 0009:Call kernel32.InterlockedDecrement(7d9cb5a4) ret=67f8c913 0009:Ret kernel32.InterlockedDecrement() retval=00000001 ret=67f8c913 0009:Call kernel32.lstrlenA(7d9cb5b0 "2005/1/21") ret=67f8cd91 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f8cd91 0009:Call kernel32.lstrlenA(7d9cb5b0 "2005/1/21") ret=67f8c997 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f8c997 0009:Call ntdll.RtlEnterCriticalSection(67fbda78) ret=67f5a76d 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=67f5a76d 0009:Call ntdll.RtlLeaveCriticalSection(67fbda78) ret=67f5a7b3 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=67f5a7b3 0009:Call kernel32.lstrlenA(7d9cb600 "2005/1/21") ret=67f59695 0009:Ret kernel32.lstrlenA() retval=00000009 ret=67f59695 0009:Call kernel32.MultiByteToWideChar(00000000,00000000,7d9cb600 "2005/1/21",ff ffffff,77a6c4a0,0000000a) ret=67f596bb 0009:Ret kernel32.MultiByteToWideChar() retval=0000000a ret=67f596bb 0009:Call kernel32.TlsGetValue(00000001) ret=775f3c11 0009:Ret kernel32.TlsGetValue() retval=00000000 ret=775f3c11 0009:Call kernel32.TlsGetValue(00000001) ret=7763fc89 0009:Ret kernel32.TlsGetValue() retval=00000000 ret=7763fc89 0009:Call ole32.CoGetMalloc(00000001,77a6c3cc) ret=7763fc9d 0009:Ret ole32.CoGetMalloc() retval=00000000 ret=7763fc9d 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=77735d57 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=77735d57 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,000000d8) ret=77735d9c 0009:Ret ntdll.RtlAllocateHeap() retval=77de0d30 ret=77735d9c 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=77735e48 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=77735e48 0009:Call kernel32.TlsSetValue(00000001,77de0d30) ret=7763fce1 0009:Ret kernel32.TlsSetValue() retval=00000001 ret=7763fce1 0009:Call ntdll.RtlEnterCriticalSection(7766fcc8) ret=7763e331 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=7763e331 0009:Call kernel32.TlsGetValue(00000001) ret=776322b6 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=776322b6 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=77735d57 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=77735d57 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000010) ret=77735d9c 0009:Ret ntdll.RtlAllocateHeap() retval=77de0bf8 ret=77735d9c 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=77735e48 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=77735e48 0009:Call kernel32.InterlockedIncrement(77de0c04) ret=7763e363 0009:Ret kernel32.InterlockedIncrement() retval=00000001 ret=7763e363 0009:Call ntdll.RtlLeaveCriticalSection(7766fcc8) ret=7763e388 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=7763e388 0009:Call kernel32.GetModuleHandleA(7766b9f4 "ole32.dll") ret=7763fc3b 0009:Call ntdll.RtlInitAnsiString(77a6c284,7766b9f4 "ole32.dll") ret=77c8a84f 0009:Ret ntdll.RtlInitAnsiString() retval=0000000a ret=77c8a84f 0009:Call ntdll.RtlAnsiStringToUnicodeString(77e84bf8,77a6c284,00000000) ret=77c 8a8be 0009:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=77c8a8be 0009:Call ntdll.RtlInitUnicodeString(77a6c288,77e84c00 L"ole32.dll") ret=77ca71a d 0009:Ret ntdll.RtlInitUnicodeString() retval=00000014 ret=77ca71ad 0009:Call ntdll.LdrGetDllHandle(00000000,00000000,77a6c288,77a6c284) ret=77ca71c d 0009:Ret ntdll.LdrGetDllHandle() retval=00000000 ret=77ca71cd 0009:Ret kernel32.GetModuleHandleA() retval=77710000 ret=7763fc3b 0009:Call kernel32.GetProcAddress(77710000,7766ba00 "CoCreateInstanceEx") ret=77 63fc47 0009:Call ntdll.RtlInitAnsiString(77a6c294,7766ba00 "CoCreateInstanceEx") ret=77 ca7cc6 0009:Ret ntdll.RtlInitAnsiString() retval=00000013 ret=77ca7cc6 0009:Call ntdll.LdrGetProcedureAddress(77710000,77a6c294,00000000,77a6c290) ret= 77ca7ce2 0009:Ret ntdll.LdrGetProcedureAddress() retval=00000000 ret=77ca7ce2 0009:Ret kernel32.GetProcAddress() retval=777655c8 ret=7763fc47 0009:Call ole32.CoCreateInstanceEx(775f0568,00000000,00000000,00000000,00000000, 00000000) ret=7763fc72 0009:Ret ole32.CoCreateInstanceEx() retval=80070057 ret=7763fc72 0009:Call ole32.CoSetState(7766fcf0) ret=7763fd0f 0009:Ret ole32.CoSetState() retval=00000000 ret=7763fd0f 0009:Call kernel32.TlsGetValue(00000001) ret=775f3c2c 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=775f3c2c 0009:Call ntdll.RtlEnterCriticalSection(7766f718) ret=775f258e 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=775f258e 0009:Call ntdll.RtlEnterCriticalSection(7766f718) ret=775f26fa 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=775f26fa 0009:Call advapi32.RegOpenKeyExA(80000001,7766ac0c "Control Panel\International ",00000000,00000011,7766f748) ret=775f2729 0009:Call kernel32.GetVersion() ret=77798b59 0009:Call ntdll.RtlGetVersion(77a6bf40) ret=77cd75fe 0009:Ret ntdll.RtlGetVersion() retval=00000000 ret=77cd75fe 0009:Ret kernel32.GetVersion() retval=c0000004 ret=77798b59 0009:Call ntdll.RtlInitAnsiString(77a6c15c,7766ac0c "Control Panel\Internationa l") ret=77798bc5 0009:Ret ntdll.RtlInitAnsiString() retval=0000001c ret=77798bc5 0009:Call ntdll.RtlAnsiStringToUnicodeString(77e84bf8,77a6c15c,00000000) ret=777 98bda 0009:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=77798bda 0009:Call ntdll.NtOpenKey(7766f748,000f003f,77a6c164) ret=77798c39 0009:Ret ntdll.NtOpenKey() retval=00000000 ret=77798c39 0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77798be9 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77798be9 0009:Ret advapi32.RegOpenKeyExA() retval=00000000 ret=775f2729 0009:Call kernel32.CreateEventA(00000000,00000000,00000000,00000000) ret=775f275 c 0009:Call ntdll.NtCreateEvent(77a6bf20,001f0003,77a6bf2c,00000000,00000000) ret= 77cc908d 0009:Ret ntdll.NtCreateEvent() retval=00000000 ret=77cc908d 0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77cc9098 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77cc9098 0009:Ret kernel32.CreateEventA() retval=00000118 ret=775f275c 0009:Call kernel32.CreateEventA(00000000,00000000,00000000,00000000) ret=775f276 b 0009:Call ntdll.NtCreateEvent(77a6bf20,001f0003,77a6bf2c,00000000,00000000) ret= 77cc908d 0009:Ret ntdll.NtCreateEvent() retval=00000000 ret=77cc908d 0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77cc9098 0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77cc9098 0009:Ret kernel32.CreateEventA() retval=0000011c ret=775f276b 0009:Call kernel32.CreateThread(00000000,000003e8,775f2a10,00000000,00000000,776 6f738) ret=775f2799 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000008) ret=77ccfd8d 0009:Ret ntdll.RtlAllocateHeap() retval=77dce548 ret=77ccfd8d 0009:Call ntdll.RtlCreateUserThread(ffffffff,00000000,00000001,00000000,00000000 ,000003e8,77cd02f0,77dce548,77a6c14c,77a6c150) ret=77ccfdfc 0009:Ret ntdll.RtlCreateUserThread() retval=00000000 ret=77ccfdfc 0009:Call ntdll.NtResumeThread(00000120,77a6c148) ret=77ccfe5c 0009:Ret ntdll.NtResumeThread() retval=00000000 ret=77ccfe5c 0009:Ret kernel32.CreateThread() retval=00000120 ret=775f2799 0009:Call kernel32.Sleep(00000000) ret=775f27a6 0009:Call ntdll.NtDelayExecution(00000000,77a6c180) ret=77cc8793 0009:Ret ntdll.NtDelayExecution() retval=00000000 ret=77cc8793 0009:Ret kernel32.Sleep() retval=00000000 ret=775f27a6 0009:Call ntdll.RtlLeaveCriticalSection(7766f718) ret=775f27ef 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=775f27ef 0009:Call ntdll.RtlLeaveCriticalSection(7766f718) ret=775f2650 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=775f2650 0009:Call ntdll.RtlEnterCriticalSection(7766f790) ret=775f786f 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=775f786f 0009:Call kernel32.GetProcessHeap() ret=775f841d 0009:Ret kernel32.GetProcessHeap() retval=77d50000 ret=775f841d 0009:Call ntdll.RtlAllocateHeap(77d50000,00000008,00000d9c) ret=775f8424 0009:Ret ntdll.RtlAllocateHeap() retval=77de1628 ret=775f8424 0009:Call kernel32.InterlockedIncrement(77de23c0) ret=775f839d 0009:Ret kernel32.InterlockedIncrement() retval=00000001 ret=775f839d 0009:Call kernel32.GetLocaleInfoA(00000409,00000021,77a6c154,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f44e L"iDate") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cb8,0000000c,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=80000005 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000006) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f44e L"iDate") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000012) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cd8,00000012,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=00000000 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000002 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c154 "0",ffffffff,7 7a6c3a8,00000002) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000002 ret=77613c33 0009:Call kernel32.GetLocaleInfoA(00000409,0000100c,77a6c154,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f480 L"iFirstDayOfWeek") ret=7 7ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=00000020 ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cb8,0000000c,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000004) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f480 L"iFirstDayOfWeek") ret=7 7ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=00000020 ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000010) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cd8,00000010,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000002 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c154 "6",ffffffff,7 7a6c3a8,00000002) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000002 ret=77613c33 0009:Call kernel32.GetLocaleInfoA(00000409,0000100d,77a6c154,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f4a0 L"iFirstWeekOfYear") ret= 77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=00000022 ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cb8,0000000c,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000004) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f4a0 L"iFirstWeekOfYear") ret= 77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=00000022 ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000010) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cd8,00000010,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=c0000034 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000002 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c154 "0",ffffffff,7 7a6c3a8,00000002) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000002 ret=77613c33 0009:Call kernel32.GetLocaleInfoA(00000409,00001009,77a6c154,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f3f4 L"iCalendarType") ret=77c a0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000001c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cb8,0000000c,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=80000005 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000006) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf78) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf70,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf78,000f003f,77a6bf7c,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf68,77d2f3f4 L"iCalendarType") ret=77c a0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000001c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000012) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf68,00000002,77de0cd8,00000012,77a 6bf64) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=00000000 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfa0) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf50,00000003,77a6be8c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bf98,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000002 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c154 "1",ffffffff,7 7a6c3a8,00000002) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000002 ret=77613c33 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77a6c3a8 L"1",ffffffff, 77a6c370,00000014,00000000,00000000) ret=7765495f 0009:Ret kernel32.WideCharToMultiByte() retval=00000002 ret=7765495f 0009:Call kernel32.GetLocaleInfoA(00000409,00000028,77a6c178,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf9c) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf94,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf9c,000f003f,77a6bfa0,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf8c,77d2f562 L"s1159") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf8c,00000002,77de0cb8,0000000c,77a 6bf88) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=80000005 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000008) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf9c) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf94,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf9c,000f003f,77a6bfa0,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf8c,77d2f562 L"s1159") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000014) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf8c,00000002,77de0cd8,00000014,77a 6bf88) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=00000000 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf74,00000003,77a6beb0) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bfbc,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000003 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c178 "AM",ffffffff, 77de163c,0000000c) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000003 ret=77613c33 0009:Call kernel32.GetLocaleInfoA(00000409,00000029,77a6c178,00000200) ret=77613 c0e 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf9c) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf94,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf9c,000f003f,77a6bfa0,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf8c,77d2f56e L"s2359") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000c) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf8c,00000002,77de0cb8,0000000c,77a 6bf88) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=80000005 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000008) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77c942db 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.RtlOpenCurrentUser(000f003f,77a6bf9c) ret=77ca0d9d 0009:Ret ntdll.RtlOpenCurrentUser() retval=00000000 ret=77ca0d9d 0009:Call ntdll.RtlInitUnicodeString(77a6bf94,77d2f740 L"Control Panel\Internat ional") ret=77ca0ded 0009:Ret ntdll.RtlInitUnicodeString() retval=00000038 ret=77ca0ded 0009:Call ntdll.NtCreateKey(77a6bf9c,000f003f,77a6bfa0,00000000,00000000,0000000 0,00000000) ret=77ca0e20 0009:Ret ntdll.NtCreateKey() retval=00000000 ret=77ca0e20 0009:Call ntdll.NtClose(00000124) ret=77ca0e37 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0e37 0009:Call ntdll.RtlInitUnicodeString(77a6bf8c,77d2f56e L"s2359") ret=77ca0e5a 0009:Ret ntdll.RtlInitUnicodeString() retval=0000000c ret=77ca0e5a 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000014) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.NtQueryValueKey(00000128,77a6bf8c,00000002,77de0cd8,00000014,77a 6bf88) ret=77ca0ebe 0009:Ret ntdll.NtQueryValueKey() retval=00000000 ret=77ca0ebe 0009:Call ntdll.NtClose(00000128) ret=77ca0f1f 0009:Ret ntdll.NtClose() retval=00000000 ret=77ca0f1f 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6bfc4) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6bf74,00000003,77a6beb0) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6bfbc,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.GetLocaleInfoA() retval=00000003 ret=77613c0e 0009:Call kernel32.MultiByteToWideChar(00000000,00000001,77a6c178 "PM",ffffffff, 77de1654,0000000c) ret=77613c33 0009:Ret kernel32.MultiByteToWideChar() retval=00000003 ret=77613c33 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77de163c L"AM",00000004 ,00000000,00000000,00000000,77a6c360) ret=776138bd 0009:Ret kernel32.WideCharToMultiByte() retval=00000004 ret=776138bd 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77de1654 L"PM",00000004 ,00000000,00000000,00000000,77a6c360) ret=776138ea 0009:Ret kernel32.WideCharToMultiByte() retval=00000004 ret=776138ea 0009:Call kernel32.TlsGetValue(00000001) ret=7760dbef 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dbef 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc1a 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc1a 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=77735d57 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=77735d57 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000004) ret=77735d9c 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cb8 ret=77735d9c 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=77735e48 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=77735e48 0009:Call kernel32.TlsGetValue(00000001) ret=7760dbef 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dbef 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc1a 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc1a 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=77735d57 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=77735d57 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,00000004) ret=77735d9c 0009:Ret ntdll.RtlAllocateHeap() retval=77de0cd8 ret=77735d9c 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=77735e48 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=77735e48 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77de163c L"AM",00000004 ,77de0cb8,00000004,00000000,77a6c360) ret=77613936 0009:Ret kernel32.WideCharToMultiByte() retval=00000004 ret=77613936 0009:Call kernel32.WideCharToMultiByte(00000000,00000000,77de1654 L"PM",00000004 ,77de0cd8,00000004,00000000,77a6c360) ret=7761395b 0009:Ret kernel32.WideCharToMultiByte() retval=00000004 ret=7761395b 0009:Call kernel32.CompareStringA(00000409,00000001,77de0cb8 "AM",00000004,77de0 cd8 "PM",00000004) ret=7761397f 0009:Call ntdll.NtQueryDefaultLocale(00000001,77a6c190) ret=77ca0a55 0009:Ret ntdll.NtQueryDefaultLocale() retval=00000000 ret=77ca0a55 0009:Call ntdll.LdrFindResource_U(77c60000,77a6c140,00000003,77a6c07c) ret=77cc0 76a 0009:Ret ntdll.LdrFindResource_U() retval=00000000 ret=77cc076a 0009:Call ntdll.LdrAccessResource(77c60000,77d463c0,77a6c188,00000000) ret=77cc1 b0b 0009:Ret ntdll.LdrAccessResource() retval=00000000 ret=77cc1b0b 0009:Call ntdll.RtlAllocateHeap(77d50000,00000000,0000000a) ret=77c942db 0009:Ret ntdll.RtlAllocateHeap() retval=77dcc700 ret=77c942db 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77dcc700) ret=77c9431b 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77c9431b 0009:Ret kernel32.CompareStringA() retval=00000001 ret=7761397f 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc68 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc68 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc97 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc97 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=7773619e 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=7773619e 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cb8) ret=77736137 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77736137 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=777361fe 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=777361fe 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc68 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc68 0009:Call kernel32.TlsGetValue(00000001) ret=7760dc97 0009:Ret kernel32.TlsGetValue() retval=77de0d30 ret=7760dc97 0009:Call ntdll.RtlEnterCriticalSection(7776c744) ret=7773619e 0009:Ret ntdll.RtlEnterCriticalSection() retval=00000000 ret=7773619e 0009:Call ntdll.RtlFreeHeap(77d50000,00000000,77de0cd8) ret=77736137 0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77736137 0009:Call ntdll.RtlLeaveCriticalSection(7776c744) ret=777361fe 0009:Ret ntdll.RtlLeaveCriticalSection() retval=00000000 ret=777361fe 0009:Call kernel32.GetModuleHandleA(775e9098 "kernel32.dll") ret=775f3938 0009:Call ntdll.RtlInitAnsiString(77a6c234,775e9098 "kernel32.dll") ret=77c8a84f 0009:Ret ntdll.RtlInitAnsiString() retval=0000000d ret=77c8a84f 0009:Call ntdll.RtlAnsiStringToUnicodeString(77e84bf8,77a6c234,00000000) ret=77c 8a8be 0009:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=77c8a8be 0009:Call ntdll.RtlInitUnicodeString(77a6c238,77e84c00 L"kernel32.dll") ret=77ca 71ad 0009:Ret ntdll.RtlInitUnicodeString() retval=0000001a ret=77ca71ad 0009:Call ntdll.LdrGetDllHandle(00000000,00000000,77a6c238,77a6c234) ret=77ca71c d 0009:Ret ntdll.LdrGetDllHandle() retval=00000000 ret=77ca71cd 0009:Ret kernel32.GetModuleHandleA() retval=77c60000 ret=775f3938 0009:Call kernel32.GetProcAddress(77c60000,775e9068 "GetCalendarInfoA") ret=775f 3953 0009:Call ntdll.RtlInitAnsiString(77a6c244,775e9068 "GetCalendarInfoA") ret=77ca 7cc6 0009:Ret ntdll.RtlInitAnsiString() retval=00000011 ret=77ca7cc6 0009:Call ntdll.LdrGetProcedureAddress(77c60000,77a6c244,00000000,77a6c240) ret= 77ca7ce2 0009:Ret ntdll.LdrGetProcedureAddress() retval=00000000 ret=77ca7ce2 0009:Ret kernel32.GetProcAddress() retval=77d3c320 ret=775f3953 0009:Call kernel32.InterlockedExchange(7766f7ac,77d3c320) ret=775f395f 0009:Ret kernel32.InterlockedExchange() retval=00000000 ret=775f395f 0009:Call kernel32.GetCalendarInfoA(00000409,00000001,20000030,00000000,00000000 ,77a6c388) ret=775f39ad 0009:fixme:time:GetCalendarInfoA (00000409,00000001,20000030 (nil),0,0x77a6c388) : quarter-stub 0009:fixme:time:GetCalendarInfoW (00000409,00000001,20000030 (nil),0,0x77a6c388) : quarter-stub
On Sun, 16 Jan 2005 23:00:42 +0200, Antti Mäkelä wrote:
Without any debugs and native oleaut32 I now get:
bash-2.05b$ wine fwprint fixme:ole:StdMarshalImpl_MarshalInterface table marshalling unimplemented fixme:time:GetCalendarInfoA (00000409,00000001,20000030,(nil),0,0x77a6c718): quarter-stub fixme:time:GetCalendarInfoW (00000409,00000001,20000030,(nil),0,0x77a6c718): quarter-stub
I'm not sure. Your best bet is to try calling the functions in your own mini test programs in the same way that Fotowire does until you find something that doesn't work right.
thanks -mike
On Monday 17 January 2005 20:00, Mike Hearn wrote:
I'm not sure. Your best bet is to try calling the functions in your own mini test programs in the same way that Fotowire does until you find something that doesn't work right.
Well, that's not something I probably can do as I don't have *any* experience regarding Win32 system calls. Nor do I really have any tools to conduct such testing..All I really have is a non-working application and I was hoping that with the right debug options the problem could be solved.
But what I understand from the errors is that GetCalendarinfo functions are not fully implemented (ie. that's why they are called stubs, right?), and return something like zero as a result. I got that error with 20041201 even without using the native oleaut32. Now I need the native oleaut32 to get that far (so maybe the builtin oleaut32 somehow got broken between releases?). Anyhow, the real problem is still with the CalendarInfo's as I hardly cannot replace the kernel32 with native one... (or can I, at least partially?)
If there is some easy way to get a bit more "verbose" view on what the program was exactly trying to do with the Calendarinfo call, that might be something I could at least *try* to patch up myself. At least if it's something simple.
Thanks for trying, anyway..
On Mon, 17 Jan 2005 20:15:35 +0200, Antti Mäkelä wrote:
If there is some easy way to get a bit more "verbose" view on what the program was exactly trying to do with the Calendarinfo call, that might be something I could at least *try* to patch up myself. At least if it's something simple.
Your best bet is to put some ERR statements (so they are always printed) in the stub code itself. You're right, kernel32 functions are trickier to test, you need to install the mingw cross compiler (RPMs are available somewhere, I forget where) then cross-compile a test case that can be run on any random Windows box.
thanks -mike
Mike Hearn wrote:
On Mon, 17 Jan 2005 20:15:35 +0200, Antti Mäkelä wrote:
If there is some easy way to get a bit more "verbose" view on what the program was exactly trying to do with the Calendarinfo call, that might be something I could at least *try* to patch up myself. At least if it's something simple.
Your best bet is to put some ERR statements (so they are always printed) in the stub code itself. You're right, kernel32 functions are trickier to test, you need to install the mingw cross compiler (RPMs are available somewhere, I forget where) then cross-compile a test case that can be run on any random Windows box.
But if you write the test to rely on that the test will fail on Win98.
regards, Jakob
On Friday 14 January 2005 23:31, Antti Mäkelä wrote:
I'm trying to get a (Win or Mac) software from my local photo printing to work.
Interesting. The software works perfectly with Crossover office. So at least it is *possible* to get it running under Linux :)