Как поставить картинки на свою панель в Outlook'е
От: ernst_maurer  
Дата: 11.02.05 08:42
Оценка:
Задача такая — сделать в на своем CommandBar'e в Outlook'e картинки к кнопкам. Но не стандартные (т.е. через свойство FaceId) и не через буфер обмена (PasteFace). Как я понимаю остается один вариант — через свойство Picure, кстати это не будет работать в Outlook 2000 так? Вообщем, я пишу примерно такой код:

HICON hi = LoadIcon(_Module.GetModuleInstance(), MAKEINTRESOURCE(IDI_ICON1));
if (hi)
{
PICTDESC pd;
pd.cbSizeofstruct = sizeof(pd);
pd.picType = PICTYPE_ICON;
pd.icon.hicon = hi;
IPictureDispPtr spIPicture;
hr = OleCreatePictureIndirect(&pd, IID_IPictureDisp, FALSE, (void **)&spIPicture);
hr = spCmdButton->put_Picture(spIPicture);
}

В результате получается ошибка именно на установке свойства, т.е. при вызове put_Picture, ошибка : "Incorrect parameter". Вызов OleCreatePictureIndirect проходит без ошибок.

Может кто-нибудь помочь с этим?

Спасибо.
Эрнст.
Re: Как поставить картинки на свою панель в Outlook'е
От: Аноним  
Дата: 14.02.06 11:30
Оценка:
Здравствуйте, ernst_maurer,

а вот так не пробовал?



WTL::CBitmap hBmp; //this obj destroy OleCreatePictureIndirect
hBmp.LoadBitmap(uBMP);

PICTDESC PD;
PD.cbSizeofstruct = sizeof(PICTDESC);
PD.picType = PICTYPE_BITMAP;
PD.bmp.hbitmap = hBmp.m_hBitmap;

CComPtr<IPicture> pPicture;
::OleCreatePictureIndirect(&PD, IID_IPicture, FALSE, reinterpret_cast<void**>(&pPicture));

CComPtr<IPictureDisp> pPicDisp;
pPicture->QueryInterface(__uuidof(IPictureDisp), reinterpret_cast<void**>(&pPicDisp));
spCmdButton->put_Picture(pPicDisp);



Светлана.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.