EXEMPLO: Comaddin.exe Office 2000 COM suplemento escrita no Visual C++

Traduções de Artigos Traduções de Artigos
Artigo: 230689 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Comaddin.exe é um executável de extracção automática que demonstra a construir um Office 2000 ou (Component Object Model) do Office XP suplemento utilizando o Visual C++. Um suplemento é um servidor de COM em processo concebido especificamente para ser executado no contexto das aplicações Office 2000 ou o Office XP. Suplementos fornecem um método flexível, eficaz e uniforme de expandir o ambiente do Office.

Suplementos COM são incorporados utilizar qualquer linguagem de programação que pode criar componentes COM, tais como Visual Basic, C/C ++, C# e a edição do Office 2000 Developer ou Office XP Developer do Visual Basic for Applications (VBA).

Este exemplo demonstra os passos necessários para criar um suplemento COM no Visual C++. O exemplo cria uma básica suplemento shell que pode expandir para criar o seus próprios suplemento do Office.

Mais Informação

O ficheiro seguinte está disponível para transferência a partir do Centro de transferências da Microsoft:
Comaddin.exe
Data de edição: 4 de Janeiro de 1999

Para obter informações adicionais sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
119591Como obter ficheiros de suporte da Microsoft a partir de serviços on-line
Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada que o ajudam a impedir alterações não autorizadas ao ficheiro.

Informações sobre os ficheiros exemplo

Comaddin.exe extrai os ficheiros seguintes para uma pasta à sua escolha:
   FileName                    Size
   ----------------------------------------
   
   TestAddin.dsw               541 bytes
   TestAddin.dsp               4.11 KB 
   ComAddin.h                  6.19 KB
   ComAddin.cpp                8.38 KB
   ComAddin.def                205 bytes
   MyAddin.cpp                 10.6 KB
   MyAddinCF.cpp               2.18 KB
   BttnHandler.cpp             6.27 KB

IDTExensibility2

Para um objecto COM seja um suplemento do Office, tem de suportar o interface IDTExensibility2 conforme descrito na biblioteca do Microsoft suplementos Designer tipo (Msaddndr.dll). Esta interface foi declarada para em ComAddin.h sendo não importar necessário. Todos os suplementos COM herdam desta interface e tem de implementar cada uma das respectivos cinco métodos:
  • OnConnection
  • OnDisconnection
  • OnAddInsUpdate
  • OnStartupComplete
  • OnBeginShutdown
Quando um suplemento é carregado em primeiro lugar, é efectuada uma chamada de QueryInterface para IDTExtensibility2. Se esta chamada falhar, o suplemento é carregado. Se a chamada tiver êxito, a aplicação utilizará a referência devolvida ao notificar o suplemento das alterações efectuadas ao respectivo estado. Segue-se uma descrição de cada método.

OnConnection

O evento OnConnection é accionado sempre que o suplemento está ligado. O suplemento a pode ser ligado no arranque, pelo utilizador final, ou através de automatização. Se OnConnection Devolve S_OK, diz-se o suplemento que está a carregar. Se for devolvido qualquer outro valor, a aplicação inicial imediatamente disponibilizará a referência do suplemento e o objecto será destruído.

OnConnection assume os quatro parâmetros seguintes:
  • Aplicação - uma referência para a interface IDispatch da aplicação anfitrião.
  • ConnectMode - constante que especifica como o suplemento estava ligado.
    • ext_cm_AfterStartup - iniciado pelo utilizador final da caixa de diálogo COM suplementos.
    • ext_cm_CommandLine - ligado na linha de comandos.
    • ext_cm_External - ligados por uma aplicação externa através de automatização.
    • ext_cm_Startup - iniciado pelo anfitrião no arranque da aplicação. Este comportamento pode ser controlado por uma definição no registo.
  • AddInInst - uma referência ao objecto COMAddIn que se refere este suplemento na colecção COMAddIns para a aplicação anfitrião.
  • Personalizada - uma matriz de variantes que pode conter dados definidos pelo utilizador.


OnDisconnection

O evento OnDisconnection é accionado quando o suplemento está desligado e antes de descarrega da memória. O suplemento deve efectuar qualquer limpeza de recursos neste caso e restaurar todas as alterações efectuadas a aplicação inicial.

OnDisconnection assume os dois parâmetros seguintes:
  • RemoveMode - constante que especifica como o suplemento foi desligado.
    • ext_dm_HostShutdown - desligado quando a aplicação inicial fechado.
    • ext_dm_UserClosed - desligado pelo utilizador final ou um controlador de automatização.
  • Personalizada - uma matriz de variantes que pode conter dados definidos pelo utilizador.


OnAddInsUpdate

O evento OnAddInsUpdate é accionado quando altera o conjunto de suplementos COM registados. Por outras palavras, sempre que um suplemento for instalado ou removido a aplicação inicial, este evento é accionado.


OnStartupComplete e OnBeginShutdown

Eventos de OnStartupComplete e OnBeginShutdown notificam o suplemento quando a aplicação inicial saiu ou está a entrar num estado onde interacção do utilizador deve ser evitada porque a aplicação está ocupada a carregar ou descarregar próprio da memória. OnStartupComplete irá lançar apenas se o suplemento foi ligado durante o arranque e OnBeginShutdown irá lançar apenas se o suplemento for desligado pelo anfitrião durante o encerramento.

Uma vez que a interface de utilizador para a aplicação inicial é totalmente activa quando estes eventos accionados, podem ser a única forma de efectuar determinadas acções que caso contrário, seriam indisponíveis OnConnection e OnDisconnection.

Registar o suplemento COM

Em além para registo COM normal, um suplemento tem registar-se com cada aplicação do Office 2000 no qual pode executar com segurança. Registar-se com uma determinada aplicação, o suplemento cria uma subchave, utilizar o ID de programa como o nome para a chave, na seguinte localização:

HKEY_CURRENT_USER\Software\Microsoft\Office\<appname>\Addins\<addinprogid>
O suplemento pode fornecer valores nesta localização chave para um nome amigável e uma descrição completa. Além disso, o suplemento deve especificar o comportamento de carregamento pretendida utilizando um valor DWORD denominado "LoadBehavior." Este valor determina como o suplemento será carregado pela aplicação de anfitrião e é constituído por uma combinação dos seguintes valores:
  • 0 x 00 = desligar - não é carregado.
  • 0 x 01 = ligado - É carregado.
  • 0 x 02 = bootload - carga na aplicação de arranque.
  • 0 x 08 = demandLoad - carregar apenas quando solicitado pelo utilizador.
  • 0x16 = ConnectFirstTime - carregar apenas uma vez (no próximo arranque).
O valor típico especificado é 0x03 (ligado | Bootload).

Suplementos que implementam IDTExtensibility2 também devem especificar uma DWORD valor denominado "CommandLineSafe" para indicar se é seguros para operações que não suportam uma interface de utilizador. Um valor de 0 x 00 significa FALSO, 0 x 01 é verdadeiro. Uma vez que este exemplo apresenta uma caixa de mensagem, não é seguro para a execução da linha de comandos e, por isso define o valor para 0 x 00.

Introdução

Para começar a escrever suplementos, compilar o projecto de exemplo, executar o regsvr32.exe na DLL incorporado e, em seguida, iniciar e/Microsoft Word, Excel, PowerPoint ou FrontPage 2000. Deverá ver uma caixa de diálogo Abrir o suplemento é carregado que indica "Olá" e indica que aplicação está a ser.

(c) 1999 Microsoft Corporation, todos os direitos reservados. Contribuições de Richard r. Taylor, Microsoft Corporation.

Propriedades

Artigo: 230689 - Última revisão: 9 de agosto de 2004 - Revisão: 5.4
A informação contida neste artigo aplica-se a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 2002 Standard Edition
Palavras-chave: 
kbmt kbdownload kbautomation kbfile kbinfo kbsample KB230689 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 230689

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com