• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            How to create an automation project using MFC and a type library

            This article was previously published under Q178749

            On This Page

            Expand all | Collapse all

            SUMMARY
            This article illustrates, in detail, how to automate component integration with...

            This article illustrates, in detail, how to automate component integration with COM-compliant applications such as the Microsoft Office applications.

            MORE INFORMATION
            The following section illustrates how you can create an MFC project. The example...

            The following section illustrates how you can create an MFC project. The example automates Microsoft Excel. You can use the first 8 steps for any project, and modify steps 9 through 15 when you work with another application.

            Create an automation project

            1. With Microsoft Developer Studio, start a new "MFC AppWizard (exe)" project named "AutoProject."
            2. In step 1 of the MFC AppWizard, choose "Dialog Based" for the application type and then click Finish.

              The New Project Information dialog box appears and indicates that the Classes to be created include:
                    Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
                                  Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
                                  
              Click OK to create the project.
            3. The Dialog box "IDD_AUTOPROJECT_DIALOG" opens in the Visual Studio design/edit area. Modify it according to the instructions in the next two steps.
            4. Remove the Label control (IDC_STATIC) and the Cancel button (IDCANCEL).
            5. Change the name of the OK button to "IDRUN" and the caption to "Run." Close the AutoProject.rc dialog box design form.
            6. Click ClassWizard on the View menu (or press CTRL+W).
            7. Select the Message Maps tab. Select IDRUN in the Object Ids list box and select "BN_CLICKED" in the Messages list box. Click Add Function and accept the function name "OnRun". Click OK to close the ClassWizard.

              NOTE: This step adds a declaration for the function member "OnRun();" to the header file named AutoProjectDLG.h. This step also adds an empty skeleton message handler function named CAutoProjectDlg::OnRun() to the file named AutoProjectDLG.cpp.
            8. Click ClassWizard on the View menu (or press CTRL+W).
            9. Select the Automation tab. Click Add Class and choose "From a type library." Navigate to select the object library for the application you wish to automate (for this example, if you are automating Excel 97, choose the Microsoft Excel 8.0 Object Library; the default location is C:\Program Files\Microsoft Office\Office\Excel8.olb).

              If you are automating Microsoft Excel 2000, choose Microsoft Excel 9.0 Object Library for which the default location is the C:\Program Files\Microsoft Office\Office\Excel9.olb.

              If you are automating Microsoft Excel 2002 and Microsoft Office Excel 2003, the object library is embedded in the file Excel.exe. The default location for Excel.exe in Office 2002 is C:\program Files\Microsoft Office\Office10\Excel.exe. The default location for Excel.exe in Office 2003 is C:\program Files\Microsoft Office\Office11\Excel.exe. Once you have selected the appropriate object library, click Open. Select all classes in the Confirm Classes list, and then click OK.

              NOTE: The list box in the Confirm Classes dialog box contains all of the IDispatch interfaces (which are virtually identical to classes) in the Microsoft Excel type library. In the lower half of the dialog box you will see that an Implementation file named Excel8.cpp contains generated class wrappers derived from ColeDispatchDriver(), and the appropriate declaration header file is named Excel8.h. (For Excel 2002 and Excel 2003, the files are named Excel.cpp and Excel.h.)
            10. Click OK to close the MFC ClassWizard dialog box.
            11. Add the following code to the CAutoProjectApp::InitInstance() function, which loads and enables the COM services library:
                    BOOL CAutoProjectApp::InitInstance()
                                  {
                                  if(!AfxOleInit())  // Your addition starts here
                                  {
                                  AfxMessageBox("Could not initialize COM dll");
                                  return FALSE;
                                  }                 // End of your addition
                                  AfxEnableControlContainer();
                                  .
                                  .
                                  .
                                  }
                                  
            12. Add the following line to the #include statements at the top of the AutoProject.cpp program file:
                    #include <afxdisp.h>
                                  
            13. Add the include statement for excel8.h after the include statement for stdafx.h at the top of the AutoProjectDlg.cpp program file:
                    #include "stdafx.h"
                                  #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
                                  
            14. Add automation code to the CAutoProjectDlg::OnRun() so that it appears as shown below:
                    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. Build and run the project. RESULTS: When you click the Run button in the dialog box, Microsoft Excel will be launched. Activate the Auto_Excel dialog box and dismiss the message box. Microsoft Excel will quit when the CAutoProjectDlg::OnRun() function ends because the application variable will have gone out of scope.

            Additional Notes

            Once you have added the classes from a type library to your project (as you did in step 9 above), you will notice that many classes have been added to the project. In ClassView, you can double-click a class to see the member functions of that class and then double-click the member function to view the definition of that function in the Excel8.cpp implementation file.

            You need to go to the definition of a member function if you wish to verify a return type or if you need to change a function's implementation. Any time you change a function definition, remember to change the declaration in the Excel8.h file. When doing so, be sure that you change the correct function declaration; sometimes, the same name is given to member functions of multiple classes--GetApplication() is one such example.

            Although the steps above illustrate how to automate Microsoft Excel, you can apply the same ideas to automating other applications. The list below contains the file names for the type libraries of the Microsoft Office applications:
               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
                            
            NOTE: The default location for these type libraries is C:\Program Files\Microsoft Office\Office (for Office 2002 the path is C:\...\Office10 and for Office 2003 the path is C:\...\Office11), except for Dao350.dll or Dao360.dll, and Microsoft Office 10(MSO.dll). The default location for Dao350.dll/Dao360.dll is C:\Program Files\Common Files\Microsoft Shared\Dao. The default location for MSO.dll is C:\Program Files\Common Files\Microsoft Shared\Office10 for Office 2002 and C:\Program Files\Common Files\Microsoft Shared\Office11 for Office 2003.

            REFERENCES
            This article presents a specific approach to building a dialog-box project. If y...

            This article presents a specific approach to building a dialog-box project. If you would like to see more general documentation about the process of building a VC++ project in the Microsoft Developer Studio environment, there is an excellent tutorial you can access by using Visual Studio InfoView. To access the tutorial, click Search on the Help menu. Click the index tab and type the following:
            working with projects
            Click List Topics. Select the topic "Home Page: Working With Projects" and click Display. For more information about the automation of Office applications, click the following article number to view the article in the Microsoft Knowledge Base:
            222101  (http://support.microsoft.com/kb/222101/ ) How to find and use Office object model documentation

            APPLIES TO
            • Microsoft Foundation Class Library 4.2, when used with:
              • Microsoft Visual C++ 5.0 Standard Edition
              • Microsoft Visual C++ 6.0 Service Pack 5
            • Microsoft Office XP Developer Edition
            • Microsoft Office 2000 Developer Edition

            posted on 2010-04-17 07:55 wrh 閱讀(1243) 評論(0)  編輯 收藏 引用

            導航

            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲va久久久久| 一级a性色生活片久久无| 国产高潮国产高潮久久久| a级成人毛片久久| 久久天天躁狠狠躁夜夜2020老熟妇| 一本一本久久a久久精品综合麻豆| 97久久国产综合精品女不卡| 九九99精品久久久久久| 久久久久久一区国产精品| 久久青青草原亚洲av无码app | 久久久久精品国产亚洲AV无码| 久久久久久亚洲AV无码专区 | 久久无码AV中文出轨人妻 | 91麻豆精品国产91久久久久久 | 久久久久亚洲AV无码专区桃色| 亚洲精品国产字幕久久不卡| 久久国产香蕉视频| 久久香蕉综合色一综合色88| 国产69精品久久久久观看软件| 91久久精品无码一区二区毛片| 囯产精品久久久久久久久蜜桃| 久久久久人妻一区精品| 久久成人国产精品二三区| 亚洲AV无码久久精品成人| 日本国产精品久久| 国产精自产拍久久久久久蜜| 国产一久久香蕉国产线看观看| 久久精品国产亚洲av麻豆小说| 久久婷婷午色综合夜啪| 色天使久久综合网天天| 久久www免费人成精品香蕉| 中文字幕一区二区三区久久网站| 日本久久久久亚洲中字幕| 久久久久久久久久久| 国产精品久久久久久久久久影院| 久久夜色精品国产亚洲av| 欧美激情精品久久久久久久九九九 | 中文字幕久久久久人妻| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 丰满少妇人妻久久久久久4| 日韩精品久久久久久|