X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b6caf397b36152ac898a0e721baf53fd80a1fe0b..0b7e6e7da208b6a95fb23cb50286a09dc90d96d2:/src/msw/ole/automtn.cpp diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp index 4dad2d2c78..e29b9ab51e 100644 --- a/src/msw/ole/automtn.cpp +++ b/src/msw/ole/automtn.cpp @@ -25,10 +25,17 @@ #include #include +// Watcom C++ gives a linker error if this is compiled in. +#ifndef __WATCOMC__ + #include "wx/msw/ole/automtn.h" #include "wx/msw/private.h" +#include +#include +#include +#define _huge #include #include @@ -423,7 +430,7 @@ WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, i wxVariant retVariant; if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) { - if (retVariant.GetType() == _T("void*")) + if (retVariant.GetType() == wxT("void*")) { return (WXIDISPATCH*) retVariant.GetVoidPtr(); } @@ -463,19 +470,19 @@ bool wxAutomationObject::GetInstance(const wxString& classId) const if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) { - wxLogWarning(_T("Cannot obtain CLSID from ProgID")); + wxLogWarning(wxT("Cannot obtain CLSID from ProgID")); return FALSE; } if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) { - wxLogWarning(_T("Cannot find an active object")); + wxLogWarning(wxT("Cannot find an active object")); return FALSE; } if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) { - wxLogWarning(_T("Cannot find IDispatch interface")); + wxLogWarning(wxT("Cannot find IDispatch interface")); return FALSE; } @@ -495,14 +502,14 @@ bool wxAutomationObject::CreateInstance(const wxString& classId) const if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) { - wxLogWarning(_T("Cannot obtain CLSID from ProgID")); + wxLogWarning(wxT("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(_T("Cannot start an instance of this class.")); + wxLogWarning(wxT("Cannot start an instance of this class.")); return FALSE; } @@ -521,17 +528,17 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) wxString type(variant.GetType()); - if (type == _T("long")) + if (type == wxT("long")) { oleVariant.vt = VT_I4; oleVariant.lVal = variant.GetLong() ; } - else if (type == _T("double")) + else if (type == wxT("double")) { oleVariant.vt = VT_R8; oleVariant.dblVal = variant.GetDouble(); } - else if (type == _T("bool")) + else if (type == wxT("bool")) { oleVariant.vt = VT_BOOL; // 'bool' required for VC++ 4 apparently @@ -541,13 +548,15 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) oleVariant.boolVal = variant.GetBool(); #endif } - else if (type == _T("string")) + else if (type == wxT("string")) { wxString str( variant.GetString() ); oleVariant.vt = VT_BSTR; oleVariant.bstrVal = ConvertStringToOle(str); } - else if (type == _T("date")) +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) + else if (type == wxT("date")) { wxDate date( variant.GetDate() ); oleVariant.vt = VT_DATE; @@ -556,7 +565,7 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) 0, 0, 0, oleVariant.date)) return FALSE; } - else if (type == _T("time")) + else if (type == wxT("time")) { wxTime time( variant.GetTime() ); oleVariant.vt = VT_DATE; @@ -565,12 +574,13 @@ bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date)) return FALSE; } - else if (type == _T("void*")) +#endif + else if (type == wxT("void*")) { oleVariant.vt = VT_DISPATCH; oleVariant.pdispVal = (IDispatch*) variant.GetVoidPtr(); } - else if (type == _T("list") || type == _T("stringlist")) + else if (type == wxT("list") || type == wxT("stringlist")) { oleVariant.vt = VT_VARIANT | VT_ARRAY; @@ -663,7 +673,7 @@ bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) case VT_BOOL: { -#if defined(__WATCOMC__) || (defined(_MSC_VER) && (_MSC_VER <= 1000)) //GC +#if defined(__WATCOMC__) || (defined(_MSC_VER) && (_MSC_VER <= 1000) && !defined(__MWERKS__) ) //GC #ifndef HAVE_BOOL // Can't use bool operator if no native bool type variant = (long) (oleVariant.bool != 0); #else @@ -724,7 +734,7 @@ bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) } default: { - wxLogError(_T("wxAutomationObject::ConvertOleToVariant: Unknown variant value type")); + wxLogError(wxT("wxAutomationObject::ConvertOleToVariant: Unknown variant value type")); return FALSE; } } @@ -1057,7 +1067,7 @@ static void ReleaseVariant(VARIANTARG *pvarg) } else { - wxLogWarning(_T("ReleaseVariant: Array contains non-variant type")); + wxLogWarning(wxT("ReleaseVariant: Array contains non-variant type")); } // Free the array itself. @@ -1084,7 +1094,7 @@ static void ReleaseVariant(VARIANTARG *pvarg) break; default: - wxLogWarning(_T("ReleaseVariant: Unknown type")); + wxLogWarning(wxT("ReleaseVariant: Unknown type")); break; } } @@ -1155,3 +1165,5 @@ void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned in #endif +#endif // __WATCOMC__ +