Upport scrolling changes and mouse wheel changes.
[wxWidgets.git] / wxPython / contrib / activex / wxie / wxactivex.cpp
index bef4563dc9df2cc0f083bd1b53f042eb78721c37..ed8b6df44f188b7e02379abc1523ceb3e4996e61 100644 (file)
@@ -622,9 +622,9 @@ bool MSWVariantToVariant(VARIANTARG& va, wxVariant& vx)
     case VT_I1:
     case VT_UI1:
         if (byRef)
-            vx = (char) *va.pbVal;
+            vx = (wxChar) *va.pbVal;
         else
-            vx = (char) va.bVal;
+            vx = (wxChar) va.bVal;
         return true;
 
     // 2 byte shorts
@@ -757,9 +757,9 @@ bool VariantToMSWVariant(const wxVariant& vx, VARIANTARG& va)
     case VT_I1:
     case VT_UI1:
         if (byRef)
-            *va.pbVal = (char) vx;
+            *va.pbVal = (wxChar) vx;
         else
-            va.bVal = (char) vx;
+            va.bVal = (wxChar) vx;
         return true;
 
     // 2 byte shorts
@@ -1170,9 +1170,35 @@ void wxActiveX::GetTypeInfo(ITypeInfo *ti, bool defInterface, bool defEventSink)
             ConnectAdvise(ta->guid, disp);
         };
 
+        // Get properties
+        // See bug #1280715 in the wxActiveX SF project
+        int i;
+        for (i = 0; i < ta->cVars; i++) {
+            VARDESC FAR *vd = NULL;
+
+            typeInfo->GetVarDesc(i, &vd) ;
+            BSTR bstrProperty = NULL;
+            typeInfo->GetDocumentation(vd->memid, &bstrProperty,
+                                       NULL, NULL, NULL);
+            wxString propName(bstrProperty);
+            m_props.push_back(PropX());
+            int idx = m_props.size() - 1;
+            m_propNames[propName] = idx;
+            m_props[idx].name = propName;
+            m_props[idx].memid = vd->memid;
+
+            ParamX param;
+            param.isSafeArray = false;
+            param.isPtr = false;
+            param.flags = vd->elemdescVar.idldesc.wIDLFlags;
+            param.vt = vd->elemdescVar.tdesc.vt;
+
+            m_props[idx].arg = param;
+            m_props[idx].type = param;
+        }        
 
         // Get Function Names
-        for (int i = 0; i < ta->cFuncs; i++)
+        for (i = 0; i < ta->cFuncs; i++)
         {
             FUNCDESC FAR *fd = NULL;
 
@@ -1680,7 +1706,6 @@ void wxActiveX::OnPaint(wxPaintEvent& event)
 {
     wxLogTrace(wxT(""),wxT("repainting activex win"));
     wxPaintDC dc(this);
-    dc.BeginDrawing();
     int w, h;
     GetSize(&w, &h);
     RECT posRect;
@@ -1705,7 +1730,6 @@ void wxActiveX::OnPaint(wxPaintEvent& event)
         dc.DrawRectangle(0, 0, w, h);
         dc.SetBrush(wxNullBrush);
     }
-    dc.EndDrawing();
 }