Gah, finally figured out how to use what's in the IDL file.
First I was messing around with ActiveXObject() trying to create an instance, but it's much simpler.
For example,
code:
//IMPMsgPlus interface
[
uuid(45C2DA37-53C8-4497-9C87-9E6A6DFF2B7C),
helpstring("MPScript Messenger Plus! Interface")
]
interface _IMPMsgPlus : IUnknown
{
..snip..
HRESULT DisplayToast([in] BSTR sTitle, [in] BSTR sMessage, [in,optional] VARIANT sCallback, [in,optional] VARIANT vCallbackParam, [out,retval] VARIANT_BOOL *bDisplayed);
HRESULT DisplayToastContact([in] BSTR sTitle, [in] BSTR sContactName, [in] BSTR sMessage, [in,optional] VARIANT sCallback, [in,optional] VARIANT vCallbackParam, [out,retval] VARIANT_BOOL *bDisplayed);
}
You take the name, which in this case is IMPMsgPlus and remove the IMP, making it MsgPlus. Then to, say, call DisplayToast you would simply use MsgPlus.DisplayToast()