Здравствуйте, zxcvb, Вы писали:
Z>Почитал про ITypeInfo и всетаки остался непонятный момент. Предположим что интерфейс имеет таблицу виртуальных функций, и у меня есть тот набор данных что я описал в первом посте, могу ли я с этой таблицей работать просто как с массивом указателей, или я должен обязательно вычислять адресс метода в ней при помощи id и ITypeInfo::AddressOfMember. MSDN почему-то этот момент туманно описывает.
Честно говоря, я не уверен, что ITypeInfo::AddressOfMember вернет что-то осмысленное для виртуальных функций. Хотя кто знает...
Z>То есть верно ли мое утверждение о том, что указатели в таблице будут идти строго друг за другом в том же порядке, который указан в midl файле?
Это утверждение верно, потому что виртуальная таблица формируется по такой же стратегией, что и компилятор С++ при обработке класса с виртуальными функциями.
PS
У ITypeInfo есть метод Invoke, который умеет вызывать виртуальные функции. Может и не стоит заморачиваться со смещениями?