Здравствуйте, Left2, Вы писали:
L>#import никак не оборачивает вызовы Invoke. Смысл выделенного непонятен. Может, ты путаешь с MFC? Её визард генерил обёртки именно так как ты рассказываешь...
Если #import обнаруживает custom или dual интерфейс, то формируется вызовы через vtable, т.е. осуществляя раннее связывание:
BSTR _result;
HRESULT _hr = get_Name(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _bstr_t(_result, false);
Если #import обнаруживает dispinterface (редкость, согласен), то формируется вызов через Invoke, т.е. осуществляя позднее связывание:
VARIANT _result;
_com_dispatch_method(this, 0x225, DISPATCH_METHOD, VT_VARIANT, (void*)&_result, L"\x080c", &Index);
return _variant_t(_result, false);