http://sourceforge.net/p/mariamole/code/2/tree/trunk/code/ma...
BTW, kudos to the OP for releasing this!
I've developed on Windows and for Windows for quite some time and I can tell you while it's not hard to make *nix code work on Windows, it can be devilishly complicated to make Windows code portable to anything else. Usually, the best strategy is to keep a very clear separation between core functionality and user interface code and forget about making the UI portable unless you use absolutely nothing Windows-specific.
It's almost as if it's done on purpose. Microsoft gains very little from making code written originally for Windows portable to other platforms and a lot from making it next to impossible to port your code away from Windows once you get it running on it.