http://bugs.winehq.org/show_bug.cgi?id=34584
Bug #: 34584 Summary: thai2english not working at all may ole32 related Product: Wine Version: 1.7.2 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ole32 AssignedTo: wine-bugs@winehq.org ReportedBy: genrobgen5@gmail.com Classification: Unclassified
Hi
linux distr debian wheezy (recently updated) gcc version 4.6.3 (Debian 4.6.3-14) thai2english-setup-2.3.4233.exe http://www.thai2english.com/downloading/thai2english-setup-2.3.4233.exe
started with wine '/root/.wine/drive_c/Program Files/Thai2English/thai2english.exe'
wine version 1.7.2 with wine.git-87c459ab2359784f238c30073b1adc0111876987.patch
I tried the patch mplementing VarDecRound (wine.git-87c459ab2359784f238c30073b1adc0111876987.patch) in wine-1.7.2, unfortunately it does not seem to have helped with [Bug 34463] thai2english.
I think there is going to be more than one bug. A visable bug at the moment is CoGetContextToken apartment not initialised (see attached log log-initial in attachment). I did a
WINEDEBUG=+ole,+relay wine '/root/.wine/drive_c/Program Files/Thai2English/thai2english.exe' 2>log+ole,+relay
followed by
grep 'CoGetContextToken' log+ole,+relay
to give
002c:Call ole32.CoGetContextToken(030be730) ret=791f525b trace:ole:CoGetContextToken (0x30be730) err:ole:CoGetContextToken apartment not initialised 002c:Ret ole32.CoGetContextToken() retval=800401f0 ret=791f525b 002d:Call ole32.CoGetContextToken(045be790) ret=791f525b trace:ole:CoGetContextToken (0x45be790) 002d:Ret ole32.CoGetContextToken() retval=00000000 ret=791f525b 0030:Call ole32.CoGetContextToken(046be710) ret=791f525b trace:ole:CoGetContextToken (0x46be710) trace:ole:CoGetContextToken apt->context_token=0x188750 0030:Ret ole32.CoGetContextToken() retval=00000000 ret=791f525b
(see log+ole+relay-greped in attachment)
retval=800401f0 refers to return CO_E_NOTINITIALIZED in CoGetContextToken in wine-1.7.2/dlls/ole32/compobj.c so apartment_find_multi_threaded() fails.
I suspect the following bit of code fails
LIST_FOR_EACH( cursor, &apts ) { struct apartment *apt = LIST_ENTRY( cursor, struct apartment, entry ); if (apt->multi_threaded) { result = apt; apartment_addref(result); break; } }
this piece of code looks for a struct apartment in &apts (or possibly it might create one if none exists)
&apts created by
static struct list apts = LIST_INIT( apts ); /* protected by csApartment */
however there does not appear to be any struct apartment or an appropriate pointer in struct list
I am not sure how the program is supposed to work but there is a problem here.
By the way thai2english does not work at all I am not just making it up or something. If the bug is not worth dealing with then that is not a problem to me as I can us virtualbox however wine is a neater solution.
Rob