Nikolay Sivov nsivov@codeweavers.com writes:
@@ -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;
The pointers should all be SEGPTR. Some of the existing definitions like BSTR16 probably need to be fixed too.
In any case this will have to wait until after code freeze.