[racket] COM and MysterX

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Feb 20 10:51:54 EST 2012

As of recent nightly builds, Racket provides improved support for COM
on Windows, but ActiveX support has been removed due to a lack demand.

The main new libraries are `ffi/com' and `ffi/unsafe/com'. The old
MysterX implementation has been removed, and `mysterx' is now a thin
wrapper on `ffi/com'. Among the old MysterX DLLs, only "myssink.dll" is
still used (for COM event support), and it no longer needs to be

If you use MysterX:

 * Please try the nightly build,
   and let me know whether the new implementation works for you.

 * Consider porting from `mysterx' to `ffi/com'. The new API is a
   little cleaner, and it encourages you to work with ProgIDs or CLSIDs
   instead of "coclasses".

For new COM projects:

 * Use `ffi/com' for COM automation instead of `mysterx'.

 * For COM objects that don't support COM automation, the
   `ffi/unsafe/com' library provides a `define-com-interface' form to
   help you work with interfaces directly. The documentation shows an
   extended example using `ICatInformation'.

Posted on the users mailing list.