[PATCH] ole2disp: Implement VariantInit()

Alexandre Julliard julliard at winehq.org
Mon Nov 30 21:55:56 CST 2015


Nikolay Sivov <nsivov at 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.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list