[PATCH] ole2disp: Implement VariantInit()

Nikolay Sivov nsivov at codeweavers.com
Mon Nov 30 15:35:35 CST 2015


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---

For https://bugs.winehq.org/show_bug.cgi?id=22581

 dlls/ole2disp.dll16/ole2disp.c          |  9 ++++++++
 dlls/ole2disp.dll16/ole2disp.dll16.spec |  2 +-
 dlls/ole2disp.dll16/ole2disp.h          | 39 +++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/dlls/ole2disp.dll16/ole2disp.c b/dlls/ole2disp.dll16/ole2disp.c
index 1850346..43336c4 100644
--- a/dlls/ole2disp.dll16/ole2disp.c
+++ b/dlls/ole2disp.dll16/ole2disp.c
@@ -276,3 +276,12 @@ HRESULT WINAPI SetErrorInfo16(ULONG dwReserved, IErrorInfo *perrinfo)
         FIXME("stub: (%d, %p)\n", dwReserved, perrinfo);
         return E_INVALIDARG;
 }
+
+/******************************************************************************
+ * VariantInit [OLE2DISP.8]
+ */
+void WINAPI VariantInit16(VARIANTARG16 *v)
+{
+    TRACE("(%p)\n", v);
+    v->vt = VT_EMPTY;
+}
diff --git a/dlls/ole2disp.dll16/ole2disp.dll16.spec b/dlls/ole2disp.dll16/ole2disp.dll16.spec
index 2cf6784..e4655f0 100644
--- a/dlls/ole2disp.dll16/ole2disp.dll16.spec
+++ b/dlls/ole2disp.dll16/ole2disp.dll16.spec
@@ -5,7 +5,7 @@
 5 pascal SysReAllocStringLen(ptr str word) SysReAllocStringLen16
 6 pascal SysFreeString(segstr)		SysFreeString16
 7 pascal SysStringLen(segstr)		SysStringLen16
-8 stub VARIANTINIT
+8 pascal VariantInit(ptr) VariantInit16
 9 stub VARIANTCLEAR
 10 stub VARIANTCOPY
 11 stub VARIANTCOPYIND
diff --git a/dlls/ole2disp.dll16/ole2disp.h b/dlls/ole2disp.dll16/ole2disp.h
index 7804c82..76d09af 100644
--- a/dlls/ole2disp.dll16/ole2disp.h
+++ b/dlls/ole2disp.dll16/ole2disp.h
@@ -39,4 +39,43 @@ INT16  WINAPI SysReAllocString16(LPBSTR16,LPCOLESTR16);
 int    WINAPI SysReAllocStringLen16(BSTR16*, const char*,  int);
 int    WINAPI SysStringLen16(BSTR16);
 
+typedef struct tagVARIANT16 {
+    VARTYPE vt;
+    WORD wReserved1;
+    WORD wReserved2;
+    WORD wReserved3;
+    union {
+        BYTE bVal;
+        SHORT iVal;
+        LONG lVal;
+        FLOAT fltVal;
+        DOUBLE dblVal;
+        VARIANT_BOOL boolVal;
+        SCODE scode;
+        DATE date;
+        BSTR16 bstrVal;
+        CY cyVal;
+        IUnknown *punkVal;
+        IDispatch *pdispVal;
+        SAFEARRAY *parray;
+        BYTE *pbVal;
+        SHORT *piVal;
+        LONG *plVal;
+        FLOAT *pfltVal;
+        DOUBLE *pdblVal;
+        VARIANT_BOOL *pboolVal;
+        SCODE *pscode;
+        DATE *pdate;
+        BSTR16 *pbstrVal;
+        struct tagVARIANT16 *pvarVal;
+        void *byref;
+        CY *pcyVal;
+        IUnknown **ppunkVal;
+        IDispatch **ppdispVal;
+        SAFEARRAY **pparray;
+    } u;
+} VARIANT16;
+
+typedef VARIANT16 VARIANTARG16;
+
 #endif /* !defined(__WINE_OLEAUT32_OLE2DISP_H) */
-- 
2.6.2




More information about the wine-patches mailing list