Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ribbon в MS OutLook, На кнопку не срабатывает CallBack 
:(
    Опции темы
cemick
Дата 11.8.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 6



У меня Add-ins к Outlook, добавляю на Ribbon кнопку и устанавливаю CallBack, при нажатии на кнопку процедура обратного вызова не срабатывает. В чем может быть проблема?

Код

  IDTExtensibility2 = interface(IDispatch)
    ['{B65AD801-ABAF-11D0-BB8B-00A0C90F2744}']
    procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode; 
                           const AddInInst: IDispatch; var custom: PSafeArray); safecall;
    procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall;
    procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
    procedure OnStartupComplete(var custom: PSafeArray); safecall;
    procedure OnBeginShutdown(var custom: PSafeArray); safecall;
    procedure DoAction(const Control: IRibbonControl); safecall;
  end;

   IRibbonControl = interface(IDispatch)
   ['{000C0395-0000-0000-C000-000000000046}']
   function Get_Id: WideString; safecall;
   function Get_Context: IDispatch; safecall;
   function Get_Tag: WideString; safecall;
   property Id: WideString read Get_Id;
   property Context: IDispatch read Get_Context;
   property Tag: WideString read Get_Tag;
 end;

  IRibbonExtensibility = interface(IDispatch)
    ['{000C0396-0000-0000-C000-000000000046}']
    function GetCustomUI(const RibbonID: WideString): WideString; safecall;
  end;

 TgsOfficeAddIn = class(TAutoObject, IgsOfficeAddIn, IDTExtensibility2,
                          IRibbonExtensibility)
  private
     procedure OnConnection(const Application: IDispatch; ConnectMode:
      ext_ConnectMode; const AddInInst: IDispatch; var custom: PSafeArray);
      safecall;
    procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom:
      PSafeArray); safecall;
    procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
    procedure OnStartupComplete(var custom: PSafeArray); safecall;
    procedure OnBeginShutdown(var custom: PSafeArray); safecall;
  protected
    function GetCustomUI(const RibbonID: WideString): WideString; safecall;
  public
    procedure DoAction(const Control: IRibbonControl);  safecall;
  end;


function TgsOfficeAddIn.GetCustomUI(
  const RibbonID: WideString): WideString;
begin
 Result :=
   '<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">'+
   '  <ribbon>' +
   '     <tabs> ' +
   '     <tab idMso="TabNewMailMessage"> ' +
   '       <group id="btkGlobal" label="Global">'+
   '         <button ' +
   '             id="btkChooseRecipient"'+
   '             label="Выбрать получателей" size="large"'+
   '             imageMso ="AccountMenu" onAction="DoAction" /> '+
   '        </group>'+
   '      </tab>'+
   ' </tabs>'+
   '  </ribbon>'+
   '</customUI>';
end;




procedure TgsOfficeAddIn.DoAction(const Control: IRibbonControl);
begin
 MessageBox(0, 'Hello, World', 'Information', MB_ICONINFORMATION);
end;

initialization
  TAutoObjectFactory.Create(ComServer, TgsOfficeAddIn, CLASS_gsOfficeAddIn_,
    ciMultiInstance, tmApartment);

end.


Судя вот из этого поста http://www.delphimaster.ru/cgi-bin/forum.p...0216320&n=8, все должно работать, однако, кнопка добавляется, а по нажатию ничего не происходит.


Это сообщение отредактировал(а) cemick - 11.8.2009, 14:56
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0375 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.