Office 2000 COM 增益集以 Visual C++ 撰寫的範例: comaddin.exe

文章翻譯 文章翻譯
文章編號: 230689 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Comaddin.exe 是自動解壓縮的可執行檔,示範的 Office 2000 或 Office XP 元件物件模型 (COM) 增益集使用 Visual C++ 的建築。COM 增益集是特別設計的一或多個 Office 2000 或 Office XP 應用程式內容中執行的同處理序 COM 伺服器。COM 增益集提供靈活、 有效率,與一致的方法,擴充 Office 環境。

COM 增益集是使用任何程式設計語言,可以建立如 Visual Basic、 C/C + +、 C# 和 Office 2000 程式開發人員或 Office XP 程式開發人員版本的 Microsoft Visual Basic 的 COM 元件的應用程式 (VBA) 所建置的。

這個範例會示範如何建置一個 COM 增益集在 Visual C++ 中必要的步驟。範例會建立一個基本增益集殼層,您可以擴充建置您自己 Office 增益集。

其他相關資訊

下列檔案是可以從 Microsoft 下載中心 」 下載:
Comaddin.exe
發行日期: 1999 1999年 1 月 4日,

如需有關如何下載 Microsoft 支援檔案的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
119591如何從線上服務取得 Microsoft 支援檔案
Microsoft 已掃描這個檔案有無病毒。Microsoft 使用已張貼檔案的日期中的 [可用的最新病毒偵測軟體。檔案儲存在安全性強化的伺服器上,以避免任何未經授權的更改至檔案。

範例檔案資訊

Comaddin.exe 會解壓縮下列檔案至您所選擇的資料夾:
   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

會在一個 Office 新增位中的一個 COM] 物件它必須支援 IDTExensibility2 介面 [Microsoft 增益功能設計工具類型程式庫 (Msaddndr.dll) 中所述。這個介面已經宣告為您在 ComAddin.h 因此沒有匯入為必要。所有 COM 增益集從這個介面繼承和必須實作每五個的方法:
  • OnConnection
  • OnDisconnection
  • OnAddInsUpdate
  • OnStartupComplete
  • OnBeginShutdown
COM 增益集第一次載入時,IDTExtensibility2 提出 QueryInterface 呼叫。如果這個呼叫會失敗,增益集會被卸載。如果該呼叫成功,主機應用程式會使用參考傳回至增益集對其狀態變更通知。每一種方法的說明如下。

OnConnection

連線 COM 增益集時,就會引發 OnConnection 事件。增益集可能連接上啟動,結束] 使用者,或透過自動化。如果 OnConnection 傳回 S_OK,增益集就稱為載入。如果傳回任何其他值,則主應用程式將立即放開其增益集的參考並終結物件。

OnConnection 採用下列四個參數:
  • 應用程式-IDispatch 介面的主機應用程式 A 參考。
  • ConnectMode-指定增益集連接方式的常數。
    • ext_cm_AfterStartup-從 COM 增益集] 對話方塊的使用者入門。
    • ext_cm_CommandLine-已連線從命令列。
    • ext_cm_External-由 「 自動化 」 外部應用程式已連線。
    • ext_cm_Startup-由主應用程式在應用程式啟動時已啟動。這種行為可以由登錄中設定控制。
  • AddInInst-A COMAddIn 物件參照到這個增益集 COMAddIns 集合為主機應用程式中的參照。
  • 自訂-一個陣列變數可以保留使用者定義的資料。


OnDisconnection

當 COM 增益集已中斷連線並只在它從記憶體卸載之前,就會引發 OnDisconnection 事件。增益集應該在這個事件中執行任何清理資源,並還原對主應用程式所做的任何變更。

OnDisconnection 採用下列兩個參數:
  • RemoveMode-指定如何增益集已中斷連線的常數。
    • ext_dm_HostShutdown-已中斷連線,主機應用程式關閉時。
    • ext_dm_UserClosed-由一般使用者或自動化控制站已中斷連線。
  • 自訂-一個陣列變數可以保留使用者定義的資料。


OnAddInsUpdate

已註冊 COM 增益集的集合變更時,就會引發 OnAddInsUpdate 事件。亦即每次 COM 增益集是安裝或移除從主應用程式,會引發這個事件。


OnStartupComplete 和 OnBeginShutdown

當主應用程式已離開或正在進入的狀態,其中使用者互動應予以避免因為應用程式忙碌中載入或卸載本身從記憶體 OnStartupComplete 和 OnBeginShutdown 事件就會通知增益集。如果增益集已連接啟動,期間,而如果您的增益集已中斷連線由主應用程式在關機期間,只會引發 OnBeginShutdown,只會引發 OnStartupComplete。

因為這些事件引發時,主機應用程式使用者介面是完全使用中,它們可能會執行某些動作否則就無法從 OnConnection 和 OnDisconnection 使用唯一的方法。

正在註冊 COM 增益集

除了標準的 COM 登錄 COM 增益集需要使用於它可以安全地執行每個 Office 2000 應用程式登錄本身。使用特定的應用程式登錄本身,增益集建立子機碼,使用其 ProgID 當作機碼下下列位置的名稱:

HKEY_CURRENT_USER\Software\Microsoft\Office\<appname>\Addins\<addinprogid>
增益集可以提供易記顯示名稱和完整描述這個索引鍵位置的值。在另外增益集應該指定其您想要的載入行為使用 DWORD 值,稱為 「 LoadBehavior]。這個值會決定如何增益集將會載入在主應用程式,由下列值的組合所組成:
  • 0x00 = 中斷連線-不是已載入。
  • 0x01 = 已連線-是載入。
  • 0x02 = bootload-應用程式啟動上的負載。
  • 0x08 = demandLoad-只在使用者需要時才載入。
  • 0x16 = ConnectFirstTime-載入一次 (在下一個啟動)。
一般指定的值是 0x03 (已連線 | Bootload)。

增益集,實作 IDTExtensibility2 也應該指定一個 DWORD 值稱為"CommandLineSafe"來指示它們是否安全的作業,並不支援使用者介面。值為 0x00 False,表示 0x01 為 True。因為這個範例會顯示訊息方塊,這並不安全的命令列執行,因此會將值設定為 0x00。

[快速入門

若要瞭解如何開始撰寫增益集,編譯範例專案、 執行 regsvr32.exe 上建置的 DLL,然後啟動 [Microsoft Word、 Excel、 Powerpoint 和/或 Frontpage 2000]。您應該看到如取得載入增益集所作的那樣,開啟顯示"Hello",並且會告訴您它是在何種應用程式對話方塊。

(c) Microsoft Corporation 1999,保留所有的權限。由羅 r 鍵 Taylor,Microsoft Corporation 的貢獻。

屬性

文章編號: 230689 - 上次校閱: 2004年8月9日 - 版次: 5.4
這篇文章中的資訊適用於:
  • 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
關鍵字:?
kbmt kbdownload kbautomation kbfile kbinfo kbsample KB230689 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:230689
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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