|
Office2000(2003) 下 outlook,word 的 com addin 之 delphi实现!(整理摸索)(7) aButton.Set_Tag('Manger'); FCommandBarButton := TCommandBarButton.Create(nil); FCommandBarButton.ConnectTo(aButton);//button关联 FCommandBarButton.OnClick := FClick;//响应事件的赋值 //第二个button aButton2 := aCommandBar.Controls.Add(msoControlButton, EmptyParam, EmptyParam, EmptyParam, True) as _CommandBarButton; aButton2.Set_Style(msoButtonIconAndCaption); aButton2.Set_Caption('SCP History'); CopyBitMapToClipBoard(YourBmpFile2); //这两句话是给按钮设定一个外部图标, aButton2.PasteFace; // aButton2.Set_Tag('History'); // 必须与其他button不同 FCommandBarButton2 := TCommandBarButton.Create(nil); FCommandBarButton2.ConnectTo(aButton2); FCommandBarButton2.OnClick := F2Click; //响应事件2 aCommandBar.Set_Visible(True); end; 在OnDisconnection写下面代码 procedure TMyOutlookAddIn.OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); begin FCommandBarButton.Disconnect; FCommandBarButton.Free; FCommandBarButton2.Disconnect; FCommandBarButton2.Free; end; //写Click事件(弹出一个dialog) procedure TMyOutlookAddIn.FClick(const Ctrl: OleVariant; var CancelDefault: OleVariant); begin ShowMessage('激活Manager按钮click事件'); end; //写Click事件(执行一个程序) procedure TMyOutlookAddIn.F2Click(const Ctrl: OleVariant; var CancelDefault: OleVariant); begin ShellExecute(NIL,'open','YourExePragram',NIL,NIL,SW_SHOW); end; 5, 最后编译注册。得打开RegEdit,像前面提到的那样写注册表。可以把它导出来,以后用到别的机器上的时候,直接合并就可以了。 6,运行Outlook2000或者2003,就可以看到效果。
|