benjaminemanuel13 Ответов: 1

Преобразование HBITMAP в вариант для надстройки excel (C++)


У меня есть растровое изображение ресурса, которое я хочу видеть на ленте в надстройке Excel.

Я не использую MFC или ATL.

Что я уже пробовал:

Я использую IDispatch Invoke для вызова getImage из XML-ленты.

Я могу вернуть строку (VARIANT - BStr), представляющую одно из встроенных изображений Excel, но вместо этого я хочу вернуть растровое изображение ресурса.

benjaminemanuel13

Спасибо, но это решение использует (Я думаю) MFC, а я использую raw c++.

Jochen Arndt

Пожалуйста, покажите декларацию / описание диспетчерской функции. Если это IPictureDisp
(см. https://msdn.microsoft.com/en-us/library/windows/desktop/ms680762(В=и 85).функция aspx-файл) обратного вызова, просто возвращает HBITMAP ручки методом литья на тип возвращаемого значения.

benjaminemanuel13

Действительно, я создаю IPictureDisp из растрового изображения, задайте тип вариант VT_DISPATCH, выберите вариант pdispVal, чтобы указать на картинку и вуаля, все работает! Большое спасибо!!

KarstenK

напишите это как ответ, чтобы закрыть вопрос и ответ

1 Ответов

Рейтинг:
12

benjaminemanuel13

Мне просто нужно было создать IPictureDisp из ресурсного растрового изображения и в Invoke установить возвращаемый тип VARIANT в VT_DISPATCH, установить значение VARIANT pdispVal в IPictureDisp и вернуть его для функции getImage.