Xref: utzoo comp.windows.ms:4952 comp.os.msdos.apps:268 Path: utzoo!attcan!uunet!cs.utexas.edu!yale!cs.yale.edu!spolsky-joel From: spolsky-joel@cs.yale.edu (Joel Spolsky) Newsgroups: comp.windows.ms,comp.os.msdos.apps Subject: Re: Micrografx Designer 3.01 and Windows 3.0 Message-ID: <26026@cs.yale.edu> Date: 6 Sep 90 13:48:13 GMT References: <454@philpav.tds.philips.se> Sender: news@cs.yale.edu Followup-To: comp.windows.ms Organization: Yale University Computer Science Dept., New Haven, CT 06520-2158 Lines: 31 Nntp-Posting-Host: zoo-gw.cs.yale.edu Originator: spolsky@suned.CS.Yale.Edu In article <454@philpav.tds.philips.se> rzi@philpav.tds.philips.se (Roman Zielinski) writes: | We had discovered some problems with Micrografx Designer 3.01 running | under windows 3.0. If You create for example an organisational chart | (you know boxes with text inside) and then copy it to the clipboard | (default clipboard attributes) and try to exit Designer, you will get | an "Unexpected application error" (do you know about expected appl | errors :-> ). It is 100% reproducable. This is definitely a bug. I would give any odds that this is caused be delayed rendering. Delayed rendering means that when you put something in the clipboard, you don't actually put anything there, you just put a *promise* in there. Then when somebody tries to read the clipboard, Windows signals you to make good on your promise. This is useful when applications (e.g. Excel) have the ability to provide the same data in about 10 different formats. Instead of wasting memory by providing all 10 formats in the clipboard, you just issue 10 promises, and then you only have to render those formats that are needed. The catch is that when your application exits, windows will call in ALL the IOU's, because it knows that you won't be around to render them any more. So what is likely happening is that your application isn't correctly handling render requests. Call them up and yell at them; they will probably be glad for the bug report. Technically, by the way, an "Unexpected Application Error" is almost always a reference to a pointer that is outside of the program's segments (what VAX fans call a Segmentation Error). Somebody is using a bad pointer somewhere. Joel Spolsky spolsky@cs.yale.edu Talk Hard.