diff --git a/dlls/ole2disp.dll16/ole2disp.c b/dlls/ole2disp.dll16/ole2disp.c index 1850346ebac..43336c47bc2 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 2cf6784a7e1..e4655f0c85d 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 7804c829128..d8ad6d13f78 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 */ SEGPTR bstrVal; + CY cyVal; +/* IUnknown* */ SEGPTR punkVal; +/* IDispatch* */ SEGPTR pdispVal; +/* SAFEARRAY* */ SEGPTR parray; +/* BYTE* */ SEGPTR pbVal; +/* SHORT* */ SEGPTR piVal; +/* LONG* */ SEGPTR plVal; +/* FLOAT* */ SEGPTR pfltVal; +/* DOUBLE* */ SEGPTR pdblVal; +/* VARIANT_BOOL* */ SEGPTR pboolVal; +/* SCODE* */ SEGPTR pscode; +/* DATE* */ SEGPTR pdate; +/* BSTR16* */ SEGPTR pbstrVal; +/* VARIANT16* */ SEGPTR pvarVal; +/* void* */ SEGPTR byref; +/* CY* */ SEGPTR pcyVal; +/* IUnknown** */ SEGPTR ppunkVal; +/* IDispatch** */ SEGPTR ppdispVal; +/* SAFEARRAY** */ SEGPTR pparray; + } u; +} VARIANT16; + +typedef VARIANT16 VARIANTARG16; + #endif /* !defined(__WINE_OLEAUT32_OLE2DISP_H) */