#include "wx/wx.h"
#endif
-#include <wx/msw/ole/automtn.h>
+#include "wx/msw/ole/automtn.h"
#ifndef __WXMSW__
#error "Sorry, this sample works under Windows only."
OleAuto_Test,
// controls start here (the numbers are, of course, arbitrary)
- OleAuto_Text = 1000,
+ OleAuto_Text = 1000
};
// ----------------------------------------------------------------------------
// `Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit()
{
+ if ( !wxApp::OnInit() )
+ return false;
+
// Create the main application window
MyFrame *frame = new MyFrame(_T("OleAuto wxWidgets App"),
wxPoint(50, 50), wxSize(450, 340));
wxAutomationObject excelObject, rangeObject;
if (!excelObject.GetInstance(_T("Excel.Application")))
{
+ // Start Excel if it is not running
if (!excelObject.CreateInstance(_T("Excel.Application")))
{
wxMessageBox(_T("Could not create Excel object."));
return;
}
}
+
+ // Ensure that Excel is visible
+ if (!excelObject.PutProperty(_T("Visible"), true))
+ {
+ wxMessageBox(_T("Could not make Excel object visible"));
+ }
+ const wxVariant workbooksCountVariant = excelObject.GetProperty(_T("Workbooks.Count"));
+ if (workbooksCountVariant.IsNull())
+ {
+ wxMessageBox(_T("Could not get workbooks count"));
+ return;
+ }
+ const long workbooksCount = workbooksCountVariant;
+ if (workbooksCount == 0)
+ {
+ const wxVariant workbook = excelObject.CallMethod(_T("Workbooks.Add"));
+ if (workbook.IsNull())
+ {
+ wxMessageBox(_T("Could not create new Workbook"));
+ return;
+ }
+ }
+
if (!excelObject.PutProperty(_T("ActiveCell.Value"), _T("wxWidgets automation test!")))
{
wxMessageBox(_T("Could not set active cell value."));
return;
}
}
-