X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b2cce0c4572a9c22c225a402d0d872f98d2e9293..23aa4f09d26bd1eb5df7f7170276744a293cbe19:/src/msw/ole/automtn.cpp diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp index f72ecea359..4dad2d2c78 100644 --- a/src/msw/ole/automtn.cpp +++ b/src/msw/ole/automtn.cpp @@ -21,17 +21,16 @@ #endif #include "wx/log.h" -#include "wx/msw/ole/automtn.h" -#include -#include -#include #include #include -#ifdef GetObject -#undef GetObject -#endif +#include "wx/msw/ole/automtn.h" + +#include "wx/msw/private.h" + +#include +#include // wrapper around BSTR type (by Vadim Zeitlin) @@ -81,9 +80,6 @@ static int rgMonthDays[13] = static BOOL OleDateFromTm(WORD wYear, WORD wMonth, WORD wDay, WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest); static BOOL TmFromOleDate(DATE dtSrc, struct tm& tmDest); -static void TmConvertToStandardFormat(struct tm& tmSrc); -static double DoubleFromDate(DATE dt); -static DATE DateFromDouble(double dbl); static void ClearVariant(VARIANTARG *pvarg) ; static void ReleaseVariant(VARIANTARG *pvarg) ; @@ -427,7 +423,7 @@ WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, i wxVariant retVariant; if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) { - if (retVariant.GetType() == "void*") + if (retVariant.GetType() == _T("void*")) { return (WXIDISPATCH*) retVariant.GetVoidPtr(); } @@ -463,23 +459,23 @@ bool wxAutomationObject::GetInstance(const wxString& classId) const CLSID clsId; IUnknown * pUnk = NULL; - BasicString unicodeName((const char*) classId); + BasicString unicodeName(classId.mb_str()); if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) { - wxLogWarning("Cannot obtain CLSID from ProgID"); + wxLogWarning(_T("Cannot obtain CLSID from ProgID")); return FALSE; } if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) { - wxLogWarning("Cannot find an active object"); + wxLogWarning(_T("Cannot find an active object")); return FALSE; } if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) { - wxLogWarning("Cannot find IDispatch interface"); + wxLogWarning(_T("Cannot find IDispatch interface")); return FALSE; } @@ -494,20 +490,19 @@ bool wxAutomationObject::CreateInstance(const wxString& classId) const return FALSE; CLSID clsId; - IUnknown * pUnk = NULL; - BasicString unicodeName((const char*) classId); + BasicString unicodeName(classId.mb_str()); if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) { - wxLogWarning("Cannot obtain CLSID from ProgID"); + wxLogWarning(_T("Cannot obtain CLSID from ProgID")); return FALSE; } // start a new copy of Excel, grab the IDispatch interface if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void**)&m_dispatchPtr))) { - wxLogWarning("Cannot start an instance of this class."); + wxLogWarning(_T("Cannot start an instance of this class.")); return FALSE; } @@ -526,32 +521,33 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) wxString type(variant.GetType()); - if (type == "long") + if (type == _T("long")) { oleVariant.vt = VT_I4; oleVariant.lVal = variant.GetLong() ; } - else if (type == "double") + else if (type == _T("double")) { oleVariant.vt = VT_R8; oleVariant.dblVal = variant.GetDouble(); } - else if (type == "bool") + else if (type == _T("bool")) { oleVariant.vt = VT_BOOL; -#ifdef __WATCOMC__ + // 'bool' required for VC++ 4 apparently +#if defined(__WATCOMC__) || (defined(__VISUALC__) && (__VISUALC__ <= 1000)) oleVariant.bool = variant.GetBool(); #else oleVariant.boolVal = variant.GetBool(); #endif } - else if (type == "string") + else if (type == _T("string")) { wxString str( variant.GetString() ); oleVariant.vt = VT_BSTR; oleVariant.bstrVal = ConvertStringToOle(str); } - else if (type == "date") + else if (type == _T("date")) { wxDate date( variant.GetDate() ); oleVariant.vt = VT_DATE; @@ -560,7 +556,7 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) 0, 0, 0, oleVariant.date)) return FALSE; } - else if (type == "time") + else if (type == _T("time")) { wxTime time( variant.GetTime() ); oleVariant.vt = VT_DATE; @@ -569,12 +565,12 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date)) return FALSE; } - else if (type == "void*") + else if (type == _T("void*")) { oleVariant.vt = VT_DISPATCH; oleVariant.pdispVal = (IDispatch*) variant.GetVoidPtr(); } - else if (type == "list" || type == "stringlist") + else if (type == _T("list") || type == _T("stringlist")) { oleVariant.vt = VT_VARIANT | VT_ARRAY; @@ -667,8 +663,12 @@ bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) case VT_BOOL: { -#ifdef __WATCOMC__ +#if defined(__WATCOMC__) || (defined(_MSC_VER) && (_MSC_VER <= 1000)) //GC +#ifndef HAVE_BOOL // Can't use bool operator if no native bool type + variant = (long) (oleVariant.bool != 0); +#else variant = (bool) (oleVariant.bool != 0); +#endif #else variant = (bool) (oleVariant.boolVal != 0); #endif @@ -724,7 +724,7 @@ bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) } default: { - wxLogError("wxAutomationObject::ConvertOleToVariant: Unknown variant value type"); + wxLogError(_T("wxAutomationObject::ConvertOleToVariant: Unknown variant value type")); return FALSE; } } @@ -741,7 +741,7 @@ static BSTR ConvertStringToOle(const wxString& str) for (i=0; i < len; i++) s[i*2] = str[i]; */ - BasicString bstr((const char*) str); + BasicString bstr(str.mb_str()); return bstr.Get(); } @@ -749,7 +749,7 @@ static wxString ConvertStringFromOle(BSTR bStr) { int len = SysStringLen(bStr) + 1; char *buf = new char[len]; - int i = wcstombs( buf, bStr, len); + (void)wcstombs( buf, bStr, len); wxString str(buf); delete[] buf; @@ -965,6 +965,8 @@ DoTime: return TRUE; } +// this function is not used +#if 0 void TmConvertToStandardFormat(struct tm& tmSrc) { // Convert afx internal tm to format expected by runtimes (_tcsftime, etc) @@ -997,6 +999,7 @@ DATE DateFromDouble(double dbl) double temp = floor(dbl); // dbl is now whole part return temp + (temp - dbl); } +#endif // 0 /* * ClearVariant @@ -1054,7 +1057,7 @@ static void ReleaseVariant(VARIANTARG *pvarg) } else { - wxLogWarning("ReleaseVariant: Array contains non-variant type"); + wxLogWarning(_T("ReleaseVariant: Array contains non-variant type")); } // Free the array itself. @@ -1081,7 +1084,7 @@ static void ReleaseVariant(VARIANTARG *pvarg) break; default: - wxLogWarning("ReleaseVariant: Unknown type"); + wxLogWarning(_T("ReleaseVariant: Unknown type")); break; } }