al>На пример кода на C++ посмотреть можно?
Простейший вариант:
#import "some.dll" no_namespace, named_guids, no_implementation, raw_interfaces_only
...
HRESULT hr = CoInitialize(NULL);
_MessagingPtr p;
hr = p.CreateInstance(CLSID_Messaging, NULL, CLSCTX_INPROC_SERVER);
if (SUCCEEDED(hr))
{
VARIANT_BOOL b;
hr = p->VerifyEmailAddress(_bstr_t("test@test.com"), (VARIANT_BOOL*) &b);
}
VerifyEmailAddress определена как:
virtual HRESULT __stdcall VerifyEmailAddress (
/*[in]*/ BSTR vEmail,
/*[out,retval]*/ VARIANT_BOOL * _arg2 ) = 0;
Этот самый код без студии — работает, под студией — нет.
Я уже пробовал даже чистый IDispatch::Invoke
Пробовал выделять память под VARIANT_BOOL через CoTaskMemAlloc
Пробовал разные варианты CoInitializeEx(NULL, ...)