Значок кнопки на панели инструментов Outlook - PullRequest
0 голосов
/ 26 февраля 2011


У меня есть следующий старый рабочий код VB6 для добавления пользовательской кнопки (на новой панели инструментов) в Outlook

Dim oApp As Object
Dim objIns As Object
Dim objCBar As Object
Dim lpobjButton As Object

Set oApp = CreateObject("Outlook.Application")
Set objIns = oApp.ActiveExplorer
Set objCBar = objIns.CommandBars.Add(barra)

Set lpobjButton = objCBar.Controls.Add()
With lpobjButton
    .Caption = "myLabel"
    .HyperlinkType = 1
    .ToolTipText = "myLink"
End With

I 'я пытаюсь добавить изображение к кнопке, но когда я выполняю следующее

Dim oApp As Object
Dim objIns As Object
Dim objCBar As Object
Dim lpobjButton As Object

Dim picPicture As IPictureDisp

Set oApp = CreateObject("Outlook.Application")
Set objIns = oApp.ActiveExplorer
Set objCBar = objIns.CommandBars.Add(barra)
Set picPicture = stdole.StdFunctions.LoadPicture(App.Path & "\myimage.bmp")

Set lpobjButton = objCBar.Controls.Add()
With lpobjButton
    .Caption = "myLabel"
    .Picture = picPicture  '<--- runtime error 8000ffff here
    .HyperlinkType = 1
    .ToolTipText = "myLink"
End With

, я получаю ошибку во время выполнения

(8000ffff) when assigning picPicture to .Picture. 
myimage.bmp is a 16x16 image (256 color)
  • Я также пытался с 32x32 пикселей (256цвет) но не повезло.Я использую OL 2007

Есть идеи?

спасибо

1 Ответ

1 голос
/ 01 марта 2011

Измените свой код, чтобы использовать метод PasteFace, который копирует изображение из буфера обмена. Конечно, это означает, что вы должны сначала поместить свою фотографию в буфер обмена.

With lpobjButton
    .Caption = "myLabel"
    Clipboard.Clear
    Clipboard.SetData picPicture, vbCFBitmap
    .PasteFace
    ''.Picture = picPicture  '<--- runtime error 8000ffff here
    .HyperlinkType = 1
    .ToolTipText = "myLink"
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...