There's two problems here:
1. There's some sort of interop problem you're hitting where the .Net
wrapper code that it's generating isn't coming out right for some reason;
maybe the typelibrary info in rule.dll is broken, maybe it's just .net
being unhappy. There's no good way around this other than doing the
IDispatch calls by hand.
2. rule.dll wraps Extended MAPI, and Extended MAPI and .Net don't mix
nicely, so even if you did get it to work, you could hit threading
problems, general runtime pain, etc:
http://support.microsoft.com/kb/813349
Solution: don't use a .Net language, use classic Visual
Basic/C++/Delphi/whatever.