Работая с Outlook object model я обнаружил при помощи профайлера что метод QueryInterface работает очень медленно, соизмеримо производительность метода ADODB::Command::Execute. Конткретно я преобразую IDispatch указатель возвращаемый для каждого Outlook Item в соответствющий тип, например Outlook::_MailItem. Затем ссохраняю свойства MailItem в BD. Так вот 40 процентов времени занимает именно выполнение QueryInterface. Как по мне это недопстимое расточительство всего лишь для приведения типа.