[RFH] _FORCENAMELESSUNION

Dimitrie O. Paun dpaun at rogers.com
Sun Dec 22 01:48:49 CST 2002


Folks,

Why do we need to define _FORCENAMELESSUNION to get nameless unions
in oleauto.h? Is this a standard feature, or is it just another Wine
extension? Can someone please check the Windows headers to see how
struct tagVARIANT is defined? Our is as follows:

struct tagVARIANT
{
    union
    {
        struct __tagVARIANT
        {
            VARTYPE vt;
            WORD wReserved1;
            WORD wReserved2;
            WORD wReserved3;
            union /* DUMMYUNIONNAME */
            {
                /* By value. */
                CHAR cVal;
                USHORT uiVal;
                ULONG ulVal;
                INT intVal;
                UINT uintVal;
                BYTE bVal;
                short iVal;
                long lVal;
                float fltVal;
                double dblVal;
                VARIANT_BOOL boolVal;
                SCODE scode;
                DATE date;
                BSTR bstrVal;
                CY cyVal;
                IUnknown* punkVal;
                IDispatch* pdispVal;
                SAFEARRAY* parray;

                /* By reference */
                CHAR* pcVal;
                USHORT* puiVal;
                ULONG* pulVal;
                INT* pintVal;
                UINT* puintVal;
                BYTE* pbVal;
                short* piVal;
                long* plVal;
                float* pfltVal;
                double* pdblVal;
                VARIANT_BOOL* pboolVal;
                SCODE* pscode;
                DATE* pdate;
                BSTR* pbstrVal;
                VARIANT* pvarVal;
                PVOID byref;
                CY* pcyVal;
                DECIMAL* pdecVal;
                IUnknown** ppunkVal;
                IDispatch** ppdispVal;
                SAFEARRAY** pparray;
            } __VARIANT_NAME_3;
        } __VARIANT_NAME_2;
        DECIMAL decVal;
    } __VARIANT_NAME_1;
};



-- 
Dimi.




More information about the wine-devel mailing list