HOME
Home
Virus
Noticias
Downloads
Fórum
Livros de Outlook
Eventos
Software / Add-ins
Formação
Blog
Livro de visitas
Inquéritos
Exchange Server

OUTLOOK ARTICLES

Apresentação
Ricardo Silva [MVP]
Marcelo Thalenberg
Clube Hardware
Thomas Quester
Especialistas em Vírus
Artigos de Outlook Express
Microsoft Office

TÓPICOS
Principiantes
Intermédio
Avançado
Microsoft

PESQUISA
Pesquisa:
 
Procura no site

Mapa do site
Pesquisa na Web


CONTACTOS
Contacte-nos
Histórico do site
Site na Imprensa
Questões frequentes
Newsletters

Subscrever Newsletter:
 
Subscrever

Como desenvolver um COM Add-in
 

COM Add-in

Os COM add-in são novidade desde a versão do Office 2000, e fornecem uma forma fácil e segura para desenvolver e distribuir software para o Outlook.
Como o código dos COM add-in é compilado em ficheiros .dll (melhor performance) ou .exe torna-se mais seguro que o código VBA que é distribuído como código fonte.

Para além de segurança, os COM add-in também são mais fáceis de distribuir do que o código VBA.

Este tipo de software pode ser desenvolvido com diversas ferramentas: Delphi, VC++, VB5, VB6, .NET e com o Office Developer Edition.

Neste artigo vou falar sobre o desenvolvimento de ficheiros .dll com o VB6 (sim, ainda desenvolvo com o VB6).

O VB6 inclui auto-registo no Registry do Windows e também os Designers.

Os Designers são class module especiais que nos permitem seleccionar as propriedades do Com Add-in através de uma user interface e também são o repositório para a implementação do código para a biblioteca de objectos do IDTExtensibility2.

 

Esta biblioteca de objectos permite ao COM add-in ligar-se à aplicação host. A sua interface gráfica consiste em duas páginas de propriedades General e Advanced. As propriedades definidas nestas duas páginas são a base de criação que o VB necessita para criar o add-in e registá-lo automaticamente no Registry quando é instalado.

 

O projecto

Criar um botão nas mensagens e o respectivo código para criar uma nova mensagem e populá-la com alguma informação.

Isto é uma operação muito simples mas serve para exemplificar.

 

Criar o COM Add-in

Para criar um novo projecto COM add-in no VB6, escolha New Project > Add-in.

Surge o designer Connect (e um form – frmAddIn – que pode remover).

Deve então preencher o nome do Add-in em Addin Display Name, colocar uma pequena descrição em Addin Description, escolher a Application como sendo o Microsoft Outlook, a Application Version (eu estou a usar o Microsoft Outlook 9.0) e o Initial Load Behaviour para Startup.

Estas opções ficarão gravadas no Registry como no exemplo.

Como este código é para utilizar com o Outlook deve colocar uma referência à biblioteca de objectos do Microsoft Outlook, como na figura.

Código

As aplicações do Office utilizam a interface do IDTExtensibility2 para informar o add-in que está a ser activado, actualizado e desactivado. Para ser um add-in do Office o componente tem que implementar todos os métodos do IDTEntexsibility2.

Evento IDTExtensibility2

OnAddInsUpdate

OnBeginShutdown

OnConnection

OnDisconnection

OnStartupComplete

Nota, mesmo que não utilize código para alguns dos métodos estes têm que estar presentes, se não surgem erros na compilação da aplicação.

Option Explicit

 

' IDTExtensibility2 a interface que liga o COM addin ao Outlook

Implements IDTExtensibility2

 

' principal objecto da aplicação – é passado pelo Outlook no método OnConnection

Dim goOutlook As Outlook.Application

 

' lidar com os eventos inspector para detector quando um utilizador está a criar uma mensagem

Public WithEvents goInspectors As Outlook.Inspectors

 

' esta linha é usada para detector se quando o nosso botão (commandbar) é clicado

Public WithEvents goButton As Office.CommandBarButton

 

' OnConnection – é activado pelo Outlook quando o addin é ligado pela primeira vez (loaded).

Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, _

    ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _

    ByVal AddInInst As Object, custom() As Variant)

   

    On Error GoTo Err_Handler

   

    ' guarda o objecto da aplicação de Outlook para utilizar mais tarde

    Set goOutlook = Application

   

    ' guarda o objecto inspectors para detectarmos quando o utilizador está a criar uma mensagem

    Set goInspectors = goOutlook.Inspectors

   

    Exit Sub

   

Err_Handler:

    ' lidar com os erros

   

End Sub

 

Private Sub goInspectors_NewInspector(ByVal inspector As Outlook.inspector)

   

    ' O Resume next vai resultar duma chamada do FindControl se o botão não for encontrado

    ‘Não queremos que vá para o final sem adicionaro botão à controlbar.

    On Error Resume Next

   

    ' ver se o botão já existe na commandbar

    Dim oBar As Office.CommandBar

    Set oBar = inspector.CommandBars("Standard")

    Set goButton = oBar.FindControl(Type:=msoControlButton, Id:=oBar.Controls("Criar Msg").Id)

       

    ' se não existir, adicionar à controlbar

    If goButton Is Nothing Then

        Set goButton = oBar.Controls.Add(1)

        goButton.Caption = "Criar Msg"

    End If

   

    ' utilizar o icone igual ao do botão Send para o nosso botão

    Dim oSendButton As Office.CommandBarButton

    Set oSendButton = oBar.FindControl(Type:=msoControlButton, Id:=oBar.Controls("Send").Id)

 

    ' apenas definir as propriedades se encontrar o botão

    If Not oSendButton Is Nothing Then

        goButton.Style = msoButtonIconAndCaption

        goButton.FaceId = oSendButton.FaceId

    End If

 

    ' apenas mostra o botão se for uma mensagem

    If inspector.CurrentItem.Class = olMail Then

        goButton.Visible = True

    Else

        goButton.Visible = False

    End If

 

End Sub

 

Private Sub goButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

   

    On Error GoTo Err_Handler

   

    ' seleccionar o objecto da mensagem, através da selecção do inspector

    ‘e depois os inspectors da mensagem

    Dim oInspector As inspector

    Set oInspector = goOutlook.ActiveInspector

 

    ' seleccionar o mail item corrente

    Dim oCurMail As Outlook.MailItem

    Set oCurMail = oInspector.CurrentItem

    

 'abre o formulário de Outlook "Reparação"

Dim OutMail As Outlook.MailItem
 

Set OutMail = gooutlook.CreateItem(olMailItem)

With OutMail

  .To = "teste@teste.pt"

  .Subject = "Isto é um teste " & Format$(DateAdd("m", -1, Date), "mmmm")

  .Body = "Isto é parte do corpo da mensagem.")

  .Display 'ou para enviar directo sem interface use .Send

End With

           

Err_Handler:

    ' error handling

   

End Sub

 

Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)

 

  On Error Resume Next

  'Este evento não funciona se

  'RemoveMode = ext_dm_HostShutdown

  'só funciona se RemoveMode = ext_dm_UserClosed

  If RemoveMode = ext_dm_UserClosed Then

    'Se UserClosed, então remove os botões adicionador

    'goButton.Delete

  End If

 

End Sub

 

Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)

 

Mesmo que não utilize código para alguns dos métodos estes têm que estar presentes,

 ‘se não surgem erros na compilação da aplicação

 

End Sub

 

Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)

 

Mesmo que não utilize código para alguns dos métodos estes têm que estar presentes,

 ‘se não surgem erros na compilação da aplicação

 

End Sub

 

Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)

 

Mesmo que não utilize código para alguns dos métodos estes têm que estar presentes,

 ‘se não surgem erros na compilação da aplicação

 

End Sub

 

Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)

 

' Mesmo que não utilize código para alguns dos métodos estes têm que estar presentes,

 'se não surgem erros na compilação da aplicação

 

End Sub

 

Compilar o COM Add-in

Quando terminar o desenvolvimento do Add-in este tem que ser compilado para funcionar. Escolha File > Make <nomedoprojecto> para compilá-lo.

Ao compilar com o VB6 o add-in ficará automaticamente instalado e registado no seu computador. No entanto para distribuir para outros utilizadores tem que considerar criar um pacote para instalação.

 

Criar um pacote para instalação

Com o VB6 criar um pacote para instalação é muito simples, para esta função utiliza-se o Package and Deployment Wizard.

Para iniciar este processo, seleccione o menu Add-ins > Add-ins Manager e faça o Load do Package and Deployment Wizard. Assim vai surgir esta opção no menu Add-ins.

Quando inicia o Package and Deployment Wizard pode receber uma informação que é necessário gravar o projecto e também compilar o código.

Surgirá então a seguinte caixa de diálogo:

Neste caso vamos utilizar a opção Package. A seguir tem que seleccionar o  tipo de pacote. Escolha a opção Standard Setup Package.

Em seguida tem que indicar o local onde quer que o pacote seja armazenado.

Na caixa de diálogo seguinte surgem os ficheiros que serão incluídos no pacote. Nota: aqui deverá adicionar os ficheiros (ocx, dll, etc) relacionados com o add-in. Nota2: Por norma não adiciono ficheiros do tipo (MSO9.dll e MSOUTL9.OLB) já que estes se referem à versão do Office e Outlook que à partida os utilizadores já têm instalados na sua máquina.

Em seguida vai seleccionar se quer num ficheiro ou em vários. Seleccione Single cab.

Defina agora o nome da aplicação em Installation Title. Este é o nome que constará no Add/Remove Programs.

Seguidamente deve definir o local onde quer visualizar o programa.

Surge então a questão do local da instalação do seu software. Em Install Location deve definir onde quer que os seus ficheiros sejam instalados. Normalmente eu escolho $(AppPath).

Na caixa de diálogo Shared Files deve indicar se quer considerar os seus ficheiros como partilhados para serem utilizados por outras aplicações. Não seleccione nenhum dos ficheiros como na figura.

Em seguida defina o nome para o script que vai criar o pacote de instalação.

Clique em Finish e o Wizard vai produzir o seu pacote de instalação.

Surge o relatório da produção do pacote a indicar o local onde foi guardado e também que ficheiro executar no caso de querer recriar o pacote com alguma actualização de ficheiros (dll ou ocx).

Notas Finais

Depois de ter o pacote de instalação (ficheiros: setup.exe, setup.lst e respectivo ficheiro.cab) basta copiar estes 3 ficheiros para qualquer computador e instalar.

O Outlook deve estar encerrado quando faz a instalação de add-ins.

O COM Add-in em funcionamento

Para verificar o funcionamento do add-in execute o seu Outlook, numa mensagem existente ou numa nova mensagem surgirá o botão Criar Msg, faça clique e veja o resultado.

 

 

 
Copyright © 2004, rsoutlook.com. Todos os direitos reservados
CV | Parcerias | Publicidade no site

Livro

Já está à venda em várias livrarias do País

O meu segundo livro: "Domine a 110% o Outlook 2003"
da editora FCA. 

Tudo sobre o livro.

Leia o Press Release


(21-06-2004)

Dicas
Dicas de Outlook

Como desbloquear os anexos no Outlook

Configurar o Outlook e o Internet Explorer contra Vírus

Outras dicas...
Artigos + Visitados
Artigos considerados mais interessantes no site ou blog

Formulários de Outlook

Outlook VBA

Um programa está a tentar aceder...

O que há de novo no Outlook 2003 SP1

Enviar imagens como no Outlook Express