Office automation through VC++ using MFC Class from TypeLib results into large number of compilation errors
When trying to Automate Excel, Word, etc using VC++ (MFC based application) in Visual Studio 2010 we generally perform the following steps –
1-Go to Visual Studio
2-Click New Project
3-Expand Visual C++ tree node
4-Choose MFC
5-Select MFC Application
6-Enter project name, click OK
7-Choose a dialog based project
8-Click Finish
9-The bare bone project is created
In order to add an MFC Class from Typelib, we do the following –
10-Right click project -> Add -> Class
11-Select “MFC Class from TypeLib” , say Add
12-In the list of available type libraries, choose Microsoft Excel 14.0 Object Library
13-Then choose the list of classes you are planning to use in
the project, eg, _Application, _Workbook etc
Once you are done, you will see the relevant header files
being added – eg- CApplication.h, CWorkbook.h etc
Now in order to automate, you will be required to include
the appropriate header file in your projects cpp file, eg, TestDlg.cpp
Eg, #include "CApplication.h"
#include "CWorkbook.h"
Now begins the trouble -
As soon as you include the respective header files, you will
be presented with a huge number of errors (300+ errors) being thrown during
compilation.
Some errors may appear like –
error C2011: 'Picture' : 'struct' type redefinition
syntax error : identifier 'MsoRGBType'
syntax error : '<L_TYPE_raw>'
etc, etc, etc
In order to resolve these mean errors, you need to do a small step –
Go to the top of each header file and locate the following
line
#import "C:\\Program Files(x86)\\Microsoft Office\\Office14\\EXCEL.EXE" no_namespace
Comment this line for each Excel(Office) related header files individually in order to get rid of the compilation errors.