Programming note: PeekMessage

December 4, 2007

This posting is of  historical interest. It exists  to help other programmers who may come across a similar problem.

Read the rest of this entry »


Bug: no Help button in messages

December 3, 2007

Here is an error message from Cardbox running under Windows:

Windows error message

Here is the same message from Cardbox running under CrossOver Mac:

Mac error

This is an irritation because the user doesn’t know when extra help is available for a message. The help is still available by pressing the F1 key (or fn+F1, depending on how the Mac’s system preferences are set up).


This is probably a bug in the underlying Wine implementation. It appears that the MB_HELP option of the MessageBox() function is simply ignored.

Wine/CrossOver: our commitment

December 1, 2007

We aim to eliminate any bug that makes Cardbox behave badly under CrossOver or Wine. This means anything that makes Cardbox crash or even behave in an inconvenient way (for example, by not displaying the Help button in an error message that offers help).

To this end, we commit ourselves to running Cardbox on CrossOver Mac ourselves, and on Linux using Wine.

  • If we come across a problem then we will identify it.
  • If it is a bug in Cardbox, we will correct it.
  • If it is a problem with Wine that we can work round, we will work round it.
  • If it is a problem with Wine that we can’t work round, we will give a specific, accurate description to the CrossOver and Wine teams and work with them to find a correction to their bug.

Moreover, we will publish guides and instructions for using Cardbox with these programs, so that as many people as possible can benefit from the Cardbox experience.

In doing this, we have the tremendous advantage that we wrote the program ourselves. This means that we can investigate problems more deeply than an ordinary user, and that our bug reports can identify exactly what Windows functions are implemented incorrectly in Wine. It also means that we can modify Cardbox, if necessary, so that it runs better under Wine (without affecting its performance under Windows).


November 26, 2007

The perfect way to make it possible for people to use Cardbox on (say) the Macintosh would be to create a “Cardbox for Mac” just as we have created “Cardbox for Windows”. It would work exactly like any other Mac application. It would use the same menu bar, the same mouse gestures, the same keystrokes and shortcuts.

This is not a small task. Although the inner core of what a program does is the same on every operating system, the way it interacts with the user is unique. The biggest part of a modern application program is it interaction with the user, and it follows that “XXX for Windows” and “XXX for Mac” are really different programs. To give one example of the difference: Microsoft finds it worthwhile maintaining separate development teams for Microsoft Office for the Mac and for Windows.

We are not about to invest man-years of effort on the speculative development of a version of Cardbox that perhaps hardly anyone will end up using. Fortunately there is an alternative.

Read the rest of this entry »


November 26, 2007

For me, the sad thing about Cardbox has always been that not everyone can use it.

It is paradoxical that the Macintosh, in every way superior to Windows PCs, has the great drawback that Cardbox doesn’t run on it. For Mac users this is a hidden inconvenience because they don’t know what they’re missing (none of Apple’s built-in applications does anything close to what Cardbox does). For me personally it has been tragic: I’d have loved to move everything to a huge, beautiful, 24″ iMac, but my entire life – business and personal – depends on Cardbox databases and it would be impossible to live without them.

And then to look at Linux – when I see something like the Asus Eee appearing, surely the first of many tiny, cheap Linux laptops, I think of the millions of people who might be using Cardbox but can’t.

There are three reasons for wanting Cardbox to work on every computer and not just Windows ones:

  • It gives users of those computers the ability to use Cardbox and all its beautiful features.
  • It makes it possible to create shared Internet-based Cardbox databases that everyone can use and contribute to, without excluding anyone.
  • The best technical support comes from your friends and colleagues. If they all use Cardbox too, you’ll never need to open a manual or press F1; and you’ll never need to design a database format from scratch because the chances there are that someone you know will have one that you can borrow and adapt.

You’ll note that I haven’t mentioned money. Yes, loot is nice and it’s nice to have more of it, but in some of these untapped markets (such as Linux) there is little or no money to be made out of selling software. And we don’t care. We already have enough reasons to want Cardbox to work everywhere.