如何建立使用 MFC 和型別程式庫的自動化專案

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:178749
本文已封存。本文係以「現狀」提供且不會再更新。
結論
本文將說明,在詳細資料,如何自動化與 COM 相容的應用程式,例如 Microsoft Office 應用程式的元件整合。
其他相關資訊
下一節將說明如何建立一個 MFC 專案。此範例會自動執行 Microsoft Excel。您可以用於任何專案的前 8 步驟並修改步驟 9 到 15,當您使用另一個應用程式。

建立自動化專案

  1. 與 Microsoft 開發 o 人 h 員 û 工 u 具 ã Studio 啟動新的 「 MFC AppWizard (exe)"專案名稱為"AutoProject]。
  2. 在 MFC AppWizard 步驟 1,為應用程式類型中選擇 [對話方塊架構 」,然後再按一下 [完成]。

    新的專案資訊] 對話方塊會隨即出現,並指出要建立類別包括:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp      Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp						
    按一下 [確定] 以建立專案。
  3. [對話方塊] IDD_AUTOPROJECT_DIALOG 」 會在 [Visual Studio 設計及編輯區域中開啟。根據要接下來的兩個步驟中指示修改它。
  4. 移除標籤控制項 (IDC_STATIC) 和 [取消] 按鈕 (IDCANCEL)。
  5. 將 [確定] 按鈕名稱變更為 IDRUN 」 及標題,以 [執行]。關閉 AutoProject.rc 對話方塊] 方塊中設計表單。
  6. 按一下 [檢視] 功能表上的 [ClassWizard (或按下 CTRL + W 鍵)。
  7. 選取訊息對應] 索引標籤選取 IDRUN 物件識別碼中清單方塊,並在郵件清單方塊中選取 BN_CLICKED 」。按一下 [加入函式,並接受函式名稱 OnRun 」。按一下 [確定] 以關閉 [ClassWizard。

    注意: 此步驟新增宣告為函式成員"OnRun()] ; 標頭檔命名 AutoProjectDLG.h。這個步驟也會加入空白的基本架構訊息處理常式函式命名 CAutoProjectDlg::OnRun() 到名為 AutoProjectDLG.cpp 檔案。
  8. 按一下 [檢視] 功能表上的 [ClassWizard (或按下 CTRL + W 鍵)。
  9. 選取 [自動化] 標籤,按一下 [加入類別,選擇 「 型別程式庫"。瀏覽至 [選取物件程式庫,為您想要自動化的應用程式 (如本範例會自動化 Excel 97 如果選擇 [Microsoft Excel 8.0 物件程式庫 ; 預設位置是 C:\Program Files\Microsoft Office\Office\Excel8.olb)。

    如果您自動化 Microsoft Excel 2000,選擇 Microsoft Excel 9.0 物件程式庫的預設位置是 C:\Program Files\Microsoft Office\Office\Excel9.olb。

    如果您自動化 Microsoft Excel 2002 和 Microsoft Office Excel 2003,物件程式庫被內嵌於檔案 Excel.exe。在 Office 2002 Excel.exe 預設的位置是您 C:\program Files\Microsoft Office\Office10\Excel.exe。在 Office 2003 Excel.exe 預設的位置是您 C:\program Files\Microsoft Office\Office11\Excel.exe。一旦選取適當的物件程式庫請按一下 [開啟]。選取 [確認中的所有類別類別清單,然後再按一下 [確定]。

    注意: 確認類別] 對話方塊中的清單方塊包含的所有 IDispatch 介面 (也就是幾乎完全相同的類別) 在 Microsoft Excel 的型別程式庫中。在 [] 對話方塊的下半部您會看到名為 Excel8.cpp 的實作檔包含] 方塊中產生 ColeDispatchDriver(),從衍生的類別包裝函式,適當的宣告標頭檔為 Excel8.h。(Excel 2002 及 Excel 2003,該檔案的命名 Excel.cpp 和 Excel.h)。
  10. 按一下 [確定] 以關閉 [MFC ClassWizard] 對話方塊。
  11. 加入下列程式碼,它會載入並可讓 COM CAutoProjectApp::InitInstance() 函式以服務程式庫:
          BOOL CAutoProjectApp::InitInstance()      {         if(!AfxOleInit())  // Your addition starts here         {            AfxMessageBox("Could not initialize COM dll");            return FALSE;         }                 // End of your addition         AfxEnableControlContainer();      .      .      .      }					
  12. 加入下列行,才能在 # 包括 AutoProject.cpp 程式檔案頂端的陳述式:
          #include <afxdisp.h>					
  13. 將包含陳述式的 excel8.h 為 stdafx.h 包含陳述式後面加入 AutoProjectDlg.cpp 程式檔案頂端:
          #include "stdafx.h"      #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.					
  14. 新增 [CAutoProjectDlg::OnRun() 的自動化程式碼,讓它出現如下所示:
          void CAutoProjectDlg::OnRun()      {          _Application app;  // app is the Excel _Application object          // Start Excel and get Application object...         if(!app.CreateDispatch("Excel.Application"))         {            AfxMessageBox("Couldn't start Excel.");         }         else         {            //Make Excel Visible and display a message          app.SetVisible(TRUE);          AfxMessageBox ("Excel is Running!");         }      }					
  15. 建置並執行專案。結果: 當您按一下 [執行] 對話方塊中的 Microsoft Excel 方塊中按鈕就會啟動。啟動 Auto_Excel] 對話方塊,並關閉訊息方塊。當 CAutoProjectDlg::OnRun() 函式結束,因為應用程式變數會具有超出範圍時,Microsoft Excel 將會結束。

額外的備忘稿

一旦您已加入類別從型別程式庫專案 (如您未在步驟 9 上面),您會注意到許多類別已經加入至專案。在 [ClassView,您可以連按兩下類別來查看該類別的成員函式,然後再連按兩下成員函式,以在 Excel8.cpp 實作檔中檢視該函式的定義。

您需要移至成員函式的定義,如果您想要確認傳回的型別,或者您需要變更函式的實作。每次您變更函式定義,請記得將變更 Excel8.h 檔案中的宣告。當這樣,是確定正確的函式宣告變更 ; 有時候,相同的名稱提供給的多個 classes--GetApplication() 成員函式是其中一個這類範例。

雖然上述步驟說明如何自動化 Microsoft Excel,您可以套用相同的想法來自動執行其他應用程式。下列清單包含型別程式庫,Microsoft Office 應用程式的檔案名稱:
   Application                           Type Library   --------------------------------------------------   Microsoft Access 97                   Msacc8.olb   Microsoft Jet Database 3.5            DAO350.dll   Microsoft Binder 97                   Msbdr8.olb   Microsoft Excel 97                    Excel8.olb   Microsoft Graph 97                    Graph8.olb   Microsoft Office 97                   Mso97.dll   Microsoft Outlook 97                  Msoutl97.olb   Microsoft PowerPoint 97               Msppt8.olb   Microsoft Word 97                     Msword8.olb   Microsoft Access 2000                 Msacc9.olb   Microsoft Jet Database 3.51           DAO360.dll   Microsoft Binder 2000                 Msbdr9.olb   Microsoft Excel 2000                  Excel9.olb   Microsoft Graph 2000                  Graph9.olb   Microsoft Office 2000                 Mso9.dll   Microsoft Outlook 2000                Msoutl9.olb   Microsoft PowerPoint 2000             Msppt9.olb   Microsoft Word 2000                   Msword9.olb    Microsoft Access 2002                 Msacc.olb   Microsoft Excel 2002                  Excel.exe   Microsoft Graph 2002                  Graph.exe    Microsoft Office 2002                 MSO.dll   Microsoft Outlook 2002                MSOutl.olb   Microsoft PowerPoint 2002             MSPpt.olb   Microsoft Word 2002                   MSWord.olb   Microsoft Office Access 2003          Msacc.olb   Microsoft Office Excel 2003           Excel.exe   Microsoft Graph 2003                  Graph.exe    Microsoft Office 2003                 MSO.dll   Microsoft Office Outlook 2003         MSOutl.olb   Microsoft Office PowerPoint 2003      MSPpt.olb   Microsoft Office Word 2003            MSWord.olb				
注意: 這些型別程式庫的預設位置是 C:\Program Files\Microsoft Office\Office (Office 2002 路徑是 C:\...\Office10 而 Office 2003 路徑是 C:\...\Office11),除非是針對 Dao350.dll 或 Dao360.dll,和 Microsoft Office 10(MSO.dll)。預設位置為 Dao350.dll/Dao360.dll 是 C:\Program Files\Common Files\Microsoft Shared\Dao。 MSO.dll 預設的位置是您的 Office 2002 C:\Program Files\Common Files\Microsoft Shared\Office10 和 Office 2003 的 C:\Program Files\Common Files\Microsoft Shared\Office11。
参考
本文介紹建置對話方塊專案特定的方式。如果您希望看到更一般有關的文件處理程序的建置 VC + + 專案在 Microsoft 開發 o 人 h 員 û 工 u 具 ã Studio 環境,沒有可以使用 Visual Studio InfoView 存取一個絕佳教學課程。若要存取本教學課程,按一下 [說明] 功能表上的 [搜尋]。按一下 [索引] 索引標籤,然後輸入下列:
使用專案
按一下 [列出主題]。選取 「 主題 」 首頁:: 工作與專案 」 然後按一下 [顯示]。 如 Office 應用程式自動化的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
222101如何尋找並使用 Office 物件模型文件
IDispatch OLE 自動化清單方塊

警告:本文為自動翻譯

內容

文章識別碼:178749 - 最後檢閱時間:12/05/2015 08:16:08 - 修訂: 4.3

Microsoft Foundation Class Library 4.2, Microsoft Office XP Developer Edition, Microsoft Office 2000 Developer Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto kbinterop KB178749 KbMtzh
意見反應