青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

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 閱讀(1265) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲人成人99网站| 欧美综合国产| 欧美在线精品一区| 亚洲欧美激情一区二区| 欧美日韩国产大片| 亚洲精品久久久久久久久久久久久| 国内精品模特av私拍在线观看| 亚洲欧美国产另类| 欧美在线国产精品| 国产精品视频yy9299一区| 宅男噜噜噜66一区二区66| 亚洲图色在线| 国产精品剧情在线亚洲| 亚洲视屏一区| 欧美一区二区三区视频在线 | 99视频一区二区| 欧美精品高清视频| 欧美亚一区二区| 亚洲日本免费电影| 国产九九精品视频| 午夜影院日韩| 久久午夜精品一区二区| 国产综合在线看| 久久精品最新地址| 欧美成人黑人xx视频免费观看| 在线观看一区视频| 欧美激情亚洲激情| 一区二区三区四区五区精品视频| 午夜精品久久久久久久久| 国产亚洲精品bt天堂精选| 久久久久欧美精品| 亚洲三级视频| 香蕉久久一区二区不卡无毒影院 | 狂野欧美性猛交xxxx巴西| 欧美激情视频一区二区三区在线播放 | 亚洲国产精品va在看黑人| 日韩午夜激情电影| 欧美午夜久久| 久久国产手机看片| 亚洲精品美女久久久久| 午夜日韩av| 在线欧美影院| 欧美三级中文字幕在线观看| 欧美亚洲免费电影| 亚洲激情偷拍| 久久九九全国免费精品观看| 亚洲国产一区二区a毛片| 欧美日韩免费精品| 久久久91精品国产| 一区二区三区欧美视频| 久久亚洲影院| 亚洲永久网站| 亚洲国产第一页| 国产精品一区在线观看| 男同欧美伦乱| 欧美一区二区三区视频免费播放| 亚洲电影专区| 亚洲欧美在线一区二区| 亚洲激情小视频| 欧美一区二区视频网站| 一本色道久久综合亚洲精品婷婷| 国产精品亚洲网站| 男女激情视频一区| 亚洲欧美日韩第一区| 亚洲国产成人久久综合| 久久久精彩视频| 亚洲一区二区欧美日韩| 在线看无码的免费网站| 国产精品日韩| 欧美日韩亚洲免费| 米奇777在线欧美播放| 校园春色国产精品| 99热免费精品在线观看| 欧美高清视频一区二区| 久久国产天堂福利天堂| 亚洲一区二区三区四区视频| 亚洲激情成人| 一区久久精品| 国产在线视频欧美| 国产精品丝袜91| 欧美日韩国产精品| 免费欧美日韩国产三级电影| 久久gogo国模裸体人体| 亚洲一区二区四区| 一区二区av| 99re8这里有精品热视频免费 | 一区在线播放| 国产性色一区二区| 国产精品久久久久久久久久免费 | 欧美+亚洲+精品+三区| 久久成人av少妇免费| 亚洲一级影院| 亚洲婷婷综合色高清在线| 亚洲精品久久久蜜桃| 亚洲高清在线播放| 欧美国产日韩精品| 欧美第一黄网免费网站| 女女同性精品视频| 欧美成人精品一区二区| 嫩草国产精品入口| 亚洲欧美国产精品专区久久| 久久视频在线看| 久久久成人精品| 久久精品人人做人人爽| 久久大香伊蕉在人线观看热2| 午夜伦理片一区| 久久狠狠亚洲综合| 久久久精品2019中文字幕神马| 久久国产毛片| 另类国产ts人妖高潮视频| 裸体一区二区| 亚洲国产aⅴ天堂久久| 亚洲高清视频在线观看| 最新国产拍偷乱拍精品| 亚洲免费观看高清在线观看| 亚洲毛片在线观看.| 这里只有视频精品| 午夜精品免费视频| 久久精品国产综合| 欧美 日韩 国产在线| 欧美高清视频一区| 欧美色播在线播放| 国产日韩av高清| 伊人夜夜躁av伊人久久| 久久精品国产综合精品| 久久久久久9999| 国产伪娘ts一区| 国产精品最新自拍| 激情五月综合色婷婷一区二区| 樱桃成人精品视频在线播放| 91久久精品一区二区别| 一区二区三区高清在线观看| 亚洲欧美国产精品va在线观看| 欧美在线不卡| 欧美不卡视频一区| 一本大道久久a久久综合婷婷| 亚洲综合999| 免费av成人在线| 国产精品久久国产精品99gif| 国产主播在线一区| 亚洲精品视频在线播放| 午夜精品久久久久久久久| 狂野欧美一区| 日韩一级视频免费观看在线| 欧美亚洲综合在线| 欧美激情一区二区| 国产亚洲欧洲| 亚洲深夜福利| 麻豆精品视频在线| 一区二区三区高清在线观看| 欧美资源在线| 欧美三级小说| 亚洲国产美女精品久久久久∴| 这里是久久伊人| 免费成人你懂的| 亚洲一区二区三区四区五区黄| 久久―日本道色综合久久| 欧美性猛交视频| 亚洲欧洲精品一区| 久久久水蜜桃| 亚洲综合精品四区| 欧美日韩国产色视频| 在线成人国产| 欧美影院一区| 亚洲免费观看| 免费不卡在线视频| 国产一区二区黄色| 亚洲免费视频在线观看| 亚洲第一福利社区| 久久黄金**| 国产精品免费福利| 在线亚洲精品| 亚洲精品久久久蜜桃| 老牛影视一区二区三区| 国户精品久久久久久久久久久不卡 | 午夜日韩电影| 亚洲夫妻自拍| 午夜久久美女| 欧美另类99xxxxx| 亚洲第一精品影视| 国产精品成人一区二区三区吃奶| 欧美日韩三级视频| 亚洲人成艺术| 欧美成人69| 久久久久久亚洲精品杨幂换脸 | 99视频超级精品| 欧美精品国产一区| 亚洲精品自在在线观看| 老司机67194精品线观看| 午夜精品一区二区三区在线视| 国产精品播放| 制服丝袜亚洲播放| 亚洲精品一区二| 欧美日韩国产一区精品一区| 日韩亚洲欧美一区二区三区| 亚洲激情成人| 欧美精品午夜| 亚洲少妇诱惑| 亚洲视频免费在线| 国产欧美日韩在线|