How to use your own .NET DLLs in EnScript

My buddy Geoff Black has a good overview of how to create your own .Net DLLs so that you can use them in EnScript. He's also put the code on Github.

A couple of quick notes about COM support in EnScript:
  • stick to passing simple data types (ints, Strings, etc.)
  • APIs with COM events (i.e., callbacks) are not supported (e.g., Outlook's Find method)
  • to the best of my knowledge, an EnScript class cannot implement a COM interface
  • On one of the COM classes, call the static SetHaltException() method that appears in EnScript and pass it false. This will keep COM exceptions from propagating into EnScript; you can use SystemClass::LastError() to handle them instead.
    • Yes, this means you need to call LastError() after anything that could possibly fail
  • And, yes, you need to check every return value for nullity before de-referencing it
In general, I much prefer using command-line utilities from EnScript than writing tightly-integrated COM code.


For those who like short, great musics

Item: Geoff Black has started blogging.

Item: I keep looking up Peter Norvig's handy table of how long it takes a modern computer to do various things.

Item: I attended the ACM Northeast Forensic Exchange (NeFX) at Georgetown University this week. There's a vast, vast gulf between investigators and researchers, and they need to interact more. Fortunately, there are some ex-investigators-turned-researchers, like Nicole Beebe and Gilbert Peterson. I thought I was the only forensicator who knew the term "Latent Dirichlet Allocation," but turns out Dr. Beebe and Dr. Peterson are all over it, and schooled me appropriately at happy hour.

Item: EnCase eDiscovery v4 was released. Hopefully those responsible are getting some needed R&R, although I've heard that a search criteria wizard is still nowhere to be found. If I can make a corollary to Joel's Things You Should Never Do, it'd be, "when you find yourself in Borland's shoes, don't fire Dale Fuller."