mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
fix NAMELESSUNION support for struct DECIMAL
svn path=/trunk/; revision=8503
This commit is contained in:
@@ -17,8 +17,8 @@ C_SRCS = \
|
||||
hash.c \
|
||||
oleaut.c \
|
||||
olepicture.c \
|
||||
stubs.c \
|
||||
safearray.c \
|
||||
stubs.c \
|
||||
varformat.c \
|
||||
variant.c \
|
||||
vartype.c
|
||||
|
||||
@@ -2204,7 +2204,7 @@ HRESULT WINAPI VarNumFromParseNum(NUMPARSE *pNumprs, BYTE *rgbDig,
|
||||
ULONG64 tmp;
|
||||
DECIMAL* pDec = &V_DECIMAL(pVarDst);
|
||||
|
||||
DECIMAL_SETZERO(pDec);
|
||||
DECIMAL_SETZERO(*pDec);
|
||||
DEC_LO32(pDec) = 0;
|
||||
|
||||
if (pNumprs->dwOutFlags & NUMPRS_NEG)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#ifdef NONAMELESSUNION
|
||||
#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
|
||||
#define __VARIANT_NAME_1 n1
|
||||
#define __VARIANT_NAME_2 n2
|
||||
#define __VARIANT_NAME_3 n3
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define VAR_FORMAT_NOSUBSTITUTE 0x0020
|
||||
#define VAR_FOURDIGITYEARS 0x0040
|
||||
#define VAR_CALENDAR_THAI 0x0080
|
||||
#define VAR_CALENDAR_GREGORIAN 0x0100
|
||||
#define VAR_CALENDAR_GREGORIAN 0x0100
|
||||
#define MEMBERID_NIL DISPID_UNKNOWN
|
||||
#define ID_DEFAULTINST (-2)
|
||||
#define DISPATCH_METHOD 1
|
||||
@@ -34,9 +34,9 @@
|
||||
#define IsHashValCompatible(h1,h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2))))
|
||||
#define ACTIVEOBJECT_STRONG 0
|
||||
#define ACTIVEOBJECT_WEAK 1
|
||||
#ifdef NONAMELESSUNION
|
||||
#define V_UNION(X,Y) ((X)->n1.n2.n3.Y)
|
||||
#define V_VT(X) ((X)->n1.n2.vt)
|
||||
#if __STDC__ || defined(NONAMELESSUNION)
|
||||
#define V_UNION(X,Y) ((X)->__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.Y)
|
||||
#define V_VT(X) ((X)->__VARIANT_NAME_1.__VARIANT_NAME_2.vt)
|
||||
#else
|
||||
#define V_UNION(X,Y) ((X)->Y)
|
||||
#define V_VT(X) ((X)->vt)
|
||||
@@ -90,7 +90,7 @@
|
||||
#define V_ARRAYREF(X) V_UNION(X,pparray)
|
||||
#define V_BYREF(X) V_UNION(X,byref)
|
||||
#if (__STDC__ && !defined(_FORCENAMELESSUNION)) || defined(NONAMELESSUNION)
|
||||
#define V_DECIMAL(X) ((X)->n1.decVal)
|
||||
#define V_DECIMAL(X) ((X)->__VARIANT_NAME_1.decVal)
|
||||
#else
|
||||
#define V_DECIMAL(X) ((X)->decVal)
|
||||
#endif
|
||||
|
||||
@@ -11,19 +11,28 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define DEC_SIGN(d) ((d)->u.s.sign)
|
||||
#define DEC_SCALE(d) ((d)->u.s.scale)
|
||||
#define DEC_SIGNSCALE(d) ((d)->u.signscale)
|
||||
#define DEC_HI32(d) ((d)->Hi32)
|
||||
#ifdef NONAMELESSUNION
|
||||
#define DEC_SIGN(d) ((d)->DUMMYUNIONNAME.DUMMYSTRUCTNAME.sign)
|
||||
#define DEC_SCALE(d) ((d)->DUMMYUNIONNAME.DUMMYSTRUCTNAME.scale)
|
||||
#define DEC_SIGNSCALE(d) ((d)->DUMMYUNIONNAME.signscale)
|
||||
#define DEC_MID32(d) ((d)->DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.Mid32)
|
||||
#define DEC_LO32(d) ((d)->DUMMYUNIONNAME2.DUMMYSTRUCTNAME2.Lo32)
|
||||
#define DEC_LO64(d) ((d)->DUMMYUNIONNAME2.Lo64)
|
||||
#else
|
||||
#define DEC_SIGN(d) ((d)->sign)
|
||||
#define DEC_SCALE(d) ((d)->scale)
|
||||
#define DEC_SIGNSCALE(d) ((d)->signscale)
|
||||
#define DEC_MID32(d) ((d)->Mid32)
|
||||
#define DEC_LO32(d) ((d)->Lo32)
|
||||
#define DEC_LO64(d) ((d)->Lo64)
|
||||
#endif
|
||||
#define DEC_HI32(d) ((d)->Hi32)
|
||||
|
||||
#define IID_NULL GUID_NULL
|
||||
#define CLSID_NULL GUID_NULL
|
||||
#define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
|
||||
#define DECIMAL_NEG ((BYTE)0x80)
|
||||
#define DECIMAL_SETZERO(d) {DEC_LO64(d)=DEC_HI32(d)=DEC_SIGNSCALE(d)=0;}
|
||||
#define DECIMAL_SETZERO(d) {DEC_LO64(&d)=DEC_HI32(&d)=DEC_SIGNSCALE(&d)=0;}
|
||||
#define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x01
|
||||
#define ROTFLAGS_ALLOWANYCLIENT 0x02
|
||||
|
||||
|
||||
Reference in New Issue
Block a user