/////////////////////////////////////////////////////////////////////////////
-// Name: automtn.cpp
+// Name: src/msw/ole/automtn.cpp
// Purpose: OLE automation utilities
// Author: Julian Smart
// Modified by:
#include "wx/wxprec.h"
#if defined(__BORLANDC__)
-#pragma hdrstop
+ #pragma hdrstop
#endif
-#include "wx/defs.h"
-
-// Watcom C++ gives a linker error if this is compiled in.
// With Borland C++, all samples crash if this is compiled in.
-#if wxUSE_OLE && !(defined(__BORLANDC__) && (__BORLANDC__ < 0x520)) && !defined(__CYGWIN10__)
+#if (defined(__BORLANDC__) && (__BORLANDC__ < 0x520)) || defined(__CYGWIN10__)
+ #undef wxUSE_OLE_AUTOMATION
+ #define wxUSE_OLE_AUTOMATION 0
+#endif
+
+#if wxUSE_OLE_AUTOMATION
+
+#ifndef WX_PRECOMP
+ #include "wx/log.h"
+ #include "wx/math.h"
+#endif
#define _FORCENAMELESSUNION
-#include "wx/log.h"
#include "wx/msw/private.h"
#include "wx/msw/ole/oleutils.h"
#include "wx/msw/ole/automtn.h"
-#include "wx/math.h"
#ifdef __WXWINCE__
#include "wx/msw/wince/time.h"
{
// Use dot notation to get the next object
wxString member2(nonConstMember.Left((size_t) ch));
- wxString rest(nonConstMember.Right(nonConstMember.Length() - ch - 1));
+ wxString rest(nonConstMember.Right(nonConstMember.length() - ch - 1));
wxAutomationObject obj;
if (!GetObject(obj, member2))
return false;
}
-bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant)
+WXDLLEXPORT bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant)
{
ClearVariant(&oleVariant);
if (variant.IsNull())
{
wxDateTime date( variant.GetDateTime() );
oleVariant.vt = VT_DATE;
-
+
long dosDateTime = date.GetAsDOS();
- short dosDate = (dosDateTime & 0xFFFF0000) >> 16;
- short dosTime = dosDateTime & 0xFFFF;
-
+ short dosDate = short((dosDateTime & 0xFFFF0000) >> 16);
+ short dosTime = short(dosDateTime & 0xFFFF);
+
DosDateTimeToVariantTime(dosDate, dosTime, & oleVariant.date);
}
#endif
#define VT_TYPEMASK 0xfff
#endif
-bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
+WXDLLEXPORT bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
{
switch (oleVariant.vt & VT_TYPEMASK)
{
unsigned short dosDate = 0;
unsigned short dosTime = 0;
VariantTimeToDosDateTime(oleVariant.date, & dosDate, & dosTime);
-
+
long dosDateTime = (dosDate << 16) || dosTime;
wxDateTime date;
date.SetFromDOS(dosDateTime);
{
VARTYPE vt;
VARIANTARG _huge *pvargArray;
- long lLBound, lUBound, l;
+ LONG lLBound, lUBound, l;
vt = (VARTYPE)(pvarg->vt & 0xfff); // mask off flags
break;
case VT_I2:
+ case VT_I4:
case VT_BOOL:
case VT_R8:
case VT_ERROR: // to avoid erroring on an error return from Excel
+ case VT_EMPTY:
// no work for these types
break;
#endif
-#endif // wxUSE_OLE && !(defined(__BORLANDC__) && (__BORLANDC__ < 0x520)) && !defined(__CYGWIN10__)
-
+#endif // wxUSE_OLE_AUTOMATION