diff --git a/include/wx/variant.h b/include/wx/variant.h index 4792253629..318a483144 100644 --- a/include/wx/variant.h +++ b/include/wx/variant.h @@ -570,7 +570,11 @@ bool classname##VariantData::Eq(wxVariantData& data) const \ var.GetWxObjectPtr() : NULL)); // Replacement for using wxDynamicCast on a wxVariantData object -#define wxDynamicCastVariantData(data, classname) dynamic_cast(data) +#ifndef wxNO_RTTI + #define wxDynamicCastVariantData(data, classname) dynamic_cast(data) +#endif + +#define wxStaticCastVariantData(data, classname) static_cast(data) extern wxVariant WXDLLIMPEXP_BASE wxNullVariant; diff --git a/src/msw/ole/oleutils.cpp b/src/msw/ole/oleutils.cpp index f6ec69f5f6..30623186cf 100644 --- a/src/msw/ole/oleutils.cpp +++ b/src/msw/ole/oleutils.cpp @@ -338,16 +338,16 @@ WXDLLEXPORT bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& ole if (type == wxT("errorcode")) { wxVariantDataErrorCode* const - ec = wxDynamicCastVariantData(variant.GetData(), - wxVariantDataErrorCode); + ec = wxStaticCastVariantData(variant.GetData(), + wxVariantDataErrorCode); oleVariant.vt = VT_ERROR; oleVariant.scode = ec->GetValue(); } else if (type == wxT("currency")) { wxVariantDataCurrency* const - c = wxDynamicCastVariantData(variant.GetData(), - wxVariantDataCurrency); + c = wxStaticCastVariantData(variant.GetData(), + wxVariantDataCurrency); oleVariant.vt = VT_CY; oleVariant.cyVal = c->GetValue(); }