[Bug 11751] Intellicad 6.4 becomes unresponsive when adding text (mtext command in icad console)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Dec 28 12:31:48 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=11751

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                URL|http://www.4msa.com/downloa |http://www.brothersoft.com/
                   |ds/SetupICADClassic64_E.exe |intellicad-professional-266
                   |                            |095.html
                 CC|                            |focht at gmx.net
            Summary|Intellicad - endless loop   |Intellicad 6.4 becomes
                   |when editing rich text      |unresponsive when adding
                   |(user32 SendMessageA)       |text (mtext command in icad
                   |                            |console)
     Ever Confirmed|0                           |1

--- Comment #8 from Anastasius Focht <focht at gmx.net> 2011-12-28 12:31:48 CST ---
Hello,

confirming, still present.

Download link is busted but I found another product "Autodsys IntelliCAD 6
Standard" which seems to be created from same code base?

https://members.intellicad.org/members/products.php

Download:

http://www.brothersoft.com/intellicad-professional-266095.html

Endless looping after entering text and clicking "ok":

--- snip ---
...
0024:Call user32.SendMessageA(00000000,00000146,00000000,00000000) ret=005b5561
0024:Ret  user32.SendMessageA() retval=00000000 ret=005b5561
0024:Call user32.SendMessageA(00000000,00000150,ffffffff,00000000) ret=005b5585
0024:Ret  user32.SendMessageA() retval=00000000 ret=005b5585
0024:Call user32.SendMessageA(00000000,00000148,ffffffff,0032caf4) ret=005b55ae
0024:Ret  user32.SendMessageA() retval=00000000 ret=005b55ae
0024:Call user32.SendMessageA(00000000,00000150,fffffffe,00000000) ret=005b5585
0024:Ret  user32.SendMessageA() retval=00000000 ret=005b5585
0024:Call user32.SendMessageA(00000000,00000150,fffffffd,00000000) ret=005b5585 
...
--- snip ---

The problem seems to be a missing window/dialog control.
Pseudo code sequence made up from disassembly (might not be 100% accurate):

--- snip ---
double dbl;
LRESULT count = SendMessageA( hwnd, CB_GETCOUNT, 0, 0);

while (--count)
{
   LRESULT lResult = SendMessage( hwnd, CB_GETITEMDATA, count, 0);
   if (lResult >= 0)
   {
      lResult = SendMessage( hwnd, CB_GETLBTEXT, count, buffer);
      if (lResult != CB_ERR)
      {
           dbl = strtod( buffer, NULL);
      }
   }
}
--- snip ---

Due to non-existing window/control (NULL hwnd) the SendMessage( CB_GETCOUNT)
fails, returning 0.
There is no error check and the loop is a (pre)decrementing loop -> -1, -2 ... 

It's difficult to guess which control is actually missing here because the
whole window/control hierarchy is hidden behind C++ class member data (maps to
win32 handles).

One approach could be to run this app in Windows along with a Window/Message
spy tool like "Winspector" or "Spy++" to figure out the window/control
hierarchy.
Needs further investigation ...

$ sha1sum AutodsysIntelliCAD6.4.23.2ProfessionalEditiontrial.exe 
e16e0caaed3cc9cad05987100287e61c57afddc2 
AutodsysIntelliCAD6.4.23.2ProfessionalEditiontrial.exe

$ wine --version
wine-1.3.35-194-gedd5ca7

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list