]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/ole/oleutils.cpp
Added wxWrapperInputStream class.
[wxWidgets.git] / src / msw / ole / oleutils.cpp
index 2b10b4ae04376c879d9a4d12254098aa85d7713a..00de18484e28341d156f1a1016f1b9d3699ed1c3 100644 (file)
@@ -58,7 +58,7 @@
 // ============================================================================
 
 // return true if the iid is in the array
-bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount)
+WXDLLEXPORT bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount)
 {
   for ( size_t i = 0; i < nCount; i++ ) {
     if ( riid == *aIids[i] )
@@ -148,14 +148,18 @@ WXDLLEXPORT bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& ole
         oleVariant.vt = VT_I4;
         oleVariant.lVal = variant.GetLong() ;
     }
-    // cVal not always present
-#ifndef __GNUWIN32__
+#if wxUSE_LONGLONG
+    else if (type == wxT("longlong"))
+    {
+        oleVariant.vt = VT_I8;
+        oleVariant.llVal = variant.GetLongLong().GetValue();
+    }
+#endif
     else if (type == wxT("char"))
     {
         oleVariant.vt=VT_I1;            // Signed Char
         oleVariant.cVal=variant.GetChar();
     }
-#endif
     else if (type == wxT("double"))
     {
         oleVariant.vt = VT_R8;
@@ -164,12 +168,7 @@ WXDLLEXPORT bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& ole
     else if (type == wxT("bool"))
     {
         oleVariant.vt = VT_BOOL;
-        // 'bool' required for VC++ 4 apparently
-#if (defined(__VISUALC__) && (__VISUALC__ <= 1000))
-        oleVariant.bool = variant.GetBool();
-#else
-        oleVariant.boolVal = variant.GetBool();
-#endif
+        oleVariant.boolVal = variant.GetBool() ? VARIANT_TRUE : VARIANT_FALSE;
     }
     else if (type == wxT("string"))
     {
@@ -358,6 +357,12 @@ wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
 #endif // wxUSE_DATETIME
                 break;
 
+#if wxUSE_LONGLONG
+            case VT_I8:
+                variant = wxLongLong(oleVariant.llVal);
+                break;
+#endif // wxUSE_LONGLONG
+
             case VT_I4:
                 variant = (long) oleVariant.lVal;
                 break;
@@ -370,6 +375,10 @@ wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
                 variant = oleVariant.boolVal != 0;
                 break;
 
+            case VT_R4:
+                variant = oleVariant.fltVal;
+                break;
+
             case VT_R8:
                 variant = oleVariant.dblVal;
                 break;
@@ -404,7 +413,7 @@ wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant)
 
 #if wxUSE_DATAOBJ
 
-#if wxDEBUG_LEVEL && ( ( defined(__VISUALC__) && (__VISUALC__ > 1000) ) || defined(__MWERKS__) )
+#if wxDEBUG_LEVEL && (( defined(__VISUALC__) && (__VISUALC__ > 1000) ))
 static wxString GetIidName(REFIID riid)
 {
   // an association between symbolic name and numeric value of an IID
@@ -421,7 +430,7 @@ static wxString GetIidName(REFIID riid)
     ADD_KNOWN_IID(AdviseSink2),
     ADD_KNOWN_IID(BindCtx),
     ADD_KNOWN_IID(ClassFactory),
-#if ( !defined( __VISUALC__) || (__VISUALC__!=1010) ) && !defined(__MWERKS__)
+#if ( !defined( __VISUALC__) || (__VISUALC__!=1010) )
     ADD_KNOWN_IID(ContinueCallback),
     ADD_KNOWN_IID(EnumOleDocumentViews),
     ADD_KNOWN_IID(OleCommandTarget),
@@ -516,18 +525,18 @@ static wxString GetIidName(REFIID riid)
 #endif
 }
 
-void wxLogQueryInterface(const wxChar *szInterface, REFIID riid)
+WXDLLEXPORT void wxLogQueryInterface(const wxChar *szInterface, REFIID riid)
 {
   wxLogTrace(wxTRACE_OleCalls, wxT("%s::QueryInterface (iid = %s)"),
              szInterface, GetIidName(riid).c_str());
 }
 
-void wxLogAddRef(const wxChar *szInterface, ULONG cRef)
+WXDLLEXPORT void wxLogAddRef(const wxChar *szInterface, ULONG cRef)
 {
   wxLogTrace(wxTRACE_OleCalls, wxT("After %s::AddRef: m_cRef = %d"), szInterface, cRef + 1);
 }
 
-void wxLogRelease(const wxChar *szInterface, ULONG cRef)
+WXDLLEXPORT void wxLogRelease(const wxChar *szInterface, ULONG cRef)
 {
   wxLogTrace(wxTRACE_OleCalls, wxT("After %s::Release: m_cRef = %d"), szInterface, cRef - 1);
 }