]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/oleauto/oleauto.cpp
Fix a crash in wxExecute() in wxMSW too.
[wxWidgets.git] / samples / oleauto / oleauto.cpp
index 18a83c83598b08a6f1420bf0bb7705a360dbf00c..1bd9e97b6b8552d3e300045b5c3faff7e19bd998 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "wx/msw/ole/automtn.h"
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__
 #error "Sorry, this sample works under Windows only."
 #endif
 
@@ -40,7 +40,7 @@
 // ressources
 // ----------------------------------------------------------------------------
 // the application icon
-#if !defined(__WXMSW__) && !defined(__WXPM__)
+#ifndef wxHAS_IMAGES_IN_RESOURCES
     #include "../sample.xpm"
 #endif
 
@@ -132,10 +132,8 @@ bool MyApp::OnInit()
     MyFrame *frame = new MyFrame(wxT("OleAuto wxWidgets App"),
                                  wxPoint(50, 50), wxSize(450, 340));
 
-    // Show it and tell the application that it's our main window
-    // @@@ what does it do exactly, in fact? is it necessary here?
+    // Show it
     frame->Show(true);
-    SetTopWindow(frame);
 
     // success: wxApp::OnRun() will be called which will enter the main message
     // loop and the application will run. If we returned false here, the
@@ -158,7 +156,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     wxMenu *menuFile = new wxMenu;
 
     menuFile->Append(OleAuto_Test, wxT("&Test Excel Automation..."));
-    menuFile->Append(OleAuto_About, wxT("&About..."));
+    menuFile->Append(OleAuto_About, wxT("&About"));
     menuFile->AppendSeparator();
     menuFile->Append(OleAuto_Quit, wxT("E&xit"));
 
@@ -196,28 +194,26 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
  */
 void MyFrame::OnTest(wxCommandEvent& WXUNUSED(event))
 {
-    wxMessageBox(wxT("Please ensure Excel is running, then press OK.\nThe active cell should then say 'wxWidgets automation test!' in bold."));
+    wxMessageBox(wxT("Excel will be started if it is not running after you have pressed OK button.")
+        wxT("\nThe active cell should then say 'wxWidgets automation test!' in bold."),
+        wxT("Excel start"));
 
-    wxAutomationObject excelObject, rangeObject;
-    if (!excelObject.GetInstance(wxT("Excel.Application")))
+    wxAutomationObject excelObject;
+    if ( !excelObject.GetInstance(wxT("Excel.Application")) )
     {
-        // Start Excel if it is not running
-        if (!excelObject.CreateInstance(wxT("Excel.Application")))
-        {
-            wxMessageBox(wxT("Could not create Excel object."));
-            return;
-        }
+        wxLogError(wxT("Could not create Excel object."));
+        return;
     }
 
     // Ensure that Excel is visible
     if (!excelObject.PutProperty(wxT("Visible"), true))
     {
-        wxMessageBox(wxT("Could not make Excel object visible"));
+        wxLogError(wxT("Could not make Excel object visible"));
     }
     const wxVariant workbooksCountVariant = excelObject.GetProperty(wxT("Workbooks.Count"));
     if (workbooksCountVariant.IsNull())
     {
-        wxMessageBox(wxT("Could not get workbooks count"));
+        wxLogError(wxT("Could not get workbooks count"));
         return;
     }
     const long workbooksCount = workbooksCountVariant;
@@ -226,19 +222,19 @@ void MyFrame::OnTest(wxCommandEvent& WXUNUSED(event))
         const wxVariant workbook = excelObject.CallMethod(wxT("Workbooks.Add"));
         if (workbook.IsNull())
         {
-            wxMessageBox(wxT("Could not create new Workbook"));
+            wxLogError(wxT("Could not create new Workbook"));
             return;
         }
     }
 
     if (!excelObject.PutProperty(wxT("ActiveCell.Value"), wxT("wxWidgets automation test!")))
     {
-        wxMessageBox(wxT("Could not set active cell value."));
+        wxLogError(wxT("Could not set active cell value."));
         return;
     }
     if (!excelObject.PutProperty(wxT("ActiveCell.Font.Bold"), wxVariant(true)) )
     {
-        wxMessageBox(wxT("Could not put Bold property to active cell."));
+        wxLogError(wxT("Could not put Bold property to active cell."));
         return;
     }
 }