X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94113cc55572d23b2c86b9140543d32858c1eee6..ccdc11bbaf0310a474ad7b9d41413b31c3544356:/src/msw/ole/automtn.cpp?ds=sidebyside diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp index 2a64cb87c1..28464845af 100644 --- a/src/msw/ole/automtn.cpp +++ b/src/msw/ole/automtn.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: automtn.cpp +// Name: src/msw/ole/automtn.cpp // Purpose: OLE automation utilities // Author: Julian Smart // Modified by: @@ -13,17 +13,18 @@ #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__) +#ifndef WX_PRECOMP + #include "wx/log.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" @@ -90,7 +91,7 @@ bool wxAutomationObject::Invoke(const wxString& member, int action, { // 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; @@ -544,7 +545,7 @@ bool wxAutomationObject::CreateInstance(const wxString& classId) const } -bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) +WXDLLEXPORT bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) { ClearVariant(&oleVariant); if (variant.IsNull()) @@ -595,11 +596,11 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) { 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 @@ -666,7 +667,7 @@ bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) #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) { @@ -682,7 +683,7 @@ bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) unsigned short dosDate = 0; unsigned short dosTime = 0; VariantTimeToDosDateTime(oleVariant.date, & dosDate, & dosTime); - + long dosDateTime = (dosDate << 16) || dosTime; wxDateTime date; date.SetFromDOS(dosDateTime); @@ -851,9 +852,11 @@ static void ReleaseVariant(VARIANTARG *pvarg) 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; @@ -930,4 +933,3 @@ void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned in #endif #endif // wxUSE_OLE && !(defined(__BORLANDC__) && (__BORLANDC__ < 0x520)) && !defined(__CYGWIN10__) -