aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2004-03-01 10:09:42 +0000
committerDanny Smith <dannysmith@users.sourceforge.net>2004-03-01 10:09:42 +0000
commitf397868443ac498aad3dee06eb14f69b23444e55 (patch)
tree0feb0f922cc6a0083e409a1219f1f1f3edcfc3ea
parent07bc9e41fbab2916a80741d60996cbff00d0a068 (diff)
downloadnewlib-f397868443ac498aad3dee06eb14f69b23444e55.zip
newlib-f397868443ac498aad3dee06eb14f69b23444e55.tar.gz
newlib-f397868443ac498aad3dee06eb14f69b23444e55.tar.bz2
2004-03-01 Martin Fuchs <martin-fuchs@gmx.net>
* include/oaidl.h (FADF_*) Define missing constants. (IDispatch_*): Define COBJ macros. (VARIANT): Add missing union members llVal and ullVal. (wireVARIANT): Likewise. (ITypeinfo_*): Define COBJ macros. * include/oleauto.h (Var*FromDisp): Correct parameter type from LPDISPATCH* to LPDISPATCH. (VARCMP_*, VAR_LOCALBOOL, LOCALE_USE_NLS, VARIANT_*, VAR_CALENDAR_*): Add missing constants. (SafeArray[Get/Set]*): Add prototypes. (Var*From*): Add missing prototypes. (NUMPRS_*): Add defines. (NUMPARSE): Define structure. (VarParseNumFromStr,VarNumFromParseNum): Add prototypes. * include/winerror.h (DISP_E_DIVBYZERO): Define constant. * include/winuser.h (COLOR_*): Define missing constants. * include/wtypes.h (enum VARENUM) Add VT_INT_PTR, VT_UINT_PTR. (VT_INT_PTR, VT_UINT_PTR): Remove macro definitions.
-rw-r--r--winsup/w32api/ChangeLog21
-rw-r--r--winsup/w32api/include/oaidl.h44
-rw-r--r--winsup/w32api/include/oleauto.h317
-rw-r--r--winsup/w32api/include/winerror.h1
-rw-r--r--winsup/w32api/include/wtypes.h9
5 files changed, 375 insertions, 17 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index a60d34c..bbc3f84 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,3 +1,24 @@
+2004-03-01 Martin Fuchs <martin-fuchs@gmx.net>
+
+ * include/oaidl.h (FADF_*) Define missing constants.
+ (IDispatch_*): Define COBJ macros.
+ (VARIANT): Add missing union members llVal and ullVal.
+ (wireVARIANT): Likewise.
+ (ITypeinfo_*): Define COBJ macros.
+ * include/oleauto.h (Var*FromDisp): Correct parameter type from
+ LPDISPATCH* to LPDISPATCH.
+ (VARCMP_*, VAR_LOCALBOOL, LOCALE_USE_NLS, VARIANT_*,
+ VAR_CALENDAR_*): Add missing constants.
+ (SafeArray[Get/Set]*): Add prototypes.
+ (Var*From*): Add missing prototypes.
+ (NUMPRS_*): Add defines.
+ (NUMPARSE): Define structure.
+ (VarParseNumFromStr,VarNumFromParseNum): Add prototypes.
+ * include/winerror.h (DISP_E_DIVBYZERO): Define constant.
+ * include/winuser.h (COLOR_*): Define missing constants.
+ * include/wtypes.h (enum VARENUM) Add VT_INT_PTR, VT_UINT_PTR.
+ (VT_INT_PTR, VT_UINT_PTR): Remove macro definitions.
+
2004-02-23 Filip Navara <xnavara@volny.cz>
* include/ddk/video.h: Corrected packing.
diff --git a/winsup/w32api/include/oaidl.h b/winsup/w32api/include/oaidl.h
index 06c4116..544a352 100644
--- a/winsup/w32api/include/oaidl.h
+++ b/winsup/w32api/include/oaidl.h
@@ -31,11 +31,16 @@ extern "C" {
#define FADF_STATIC (2)
#define FADF_EMBEDDED (4)
#define FADF_FIXEDSIZE (16)
+#define FADF_RECORD (32)
+#define FADF_HAVEIID (64)
+#define FADF_HAVEVARTYPE (128)
#define FADF_BSTR (256)
#define FADF_UNKNOWN (512)
#define FADF_DISPATCH (1024)
#define FADF_VARIANT (2048)
#define FADF_RESERVED (0xf0e8)
+#define FADF_DATADELETED (0x1000)
+#define FADF_CREATEVECTOR (0x2000)
#define PARAMFLAG_NONE (0)
#define PARAMFLAG_FIN (1)
#define PARAMFLAG_FOUT (2)
@@ -192,6 +197,7 @@ typedef struct tagVARIANT {
WORD wReserved3;
_ANONYMOUS_UNION union {
long lVal;
+ LONGLONG llVal;
unsigned char bVal;
short iVal;
float fltVal;
@@ -223,6 +229,7 @@ typedef struct tagVARIANT {
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
+ ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL *pdecVal;
@@ -251,6 +258,7 @@ typedef struct _wireVARIANT {
USHORT wReserved3;
_ANONYMOUS_UNION union {
LONG lVal;
+ LONGLONG llVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
@@ -281,6 +289,7 @@ typedef struct _wireVARIANT {
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
+ ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL decVal;
@@ -470,6 +479,16 @@ DECLARE_INTERFACE_(IDispatch,IUnknown)
STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
};
+#ifdef COBJMACROS
+#define IDispatch_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDispatch_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDispatch_Release(p) (p)->lpVtbl->Release(p)
+#define IDispatch_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
+#define IDispatch_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
+#define IDispatch_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
+#define IDispatch_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
+#endif
+
#undef INTERFACE
#define INTERFACE IEnumVARIANT
DECLARE_INTERFACE_(IEnumVARIANT,IUnknown)
@@ -522,6 +541,31 @@ DECLARE_INTERFACE_(ITypeInfo,IUnknown)
STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE;
};
+#ifdef COBJMACROS
+#define ITypeInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ITypeInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ITypeInfo_Release(p) (p)->lpVtbl->Release(p)
+#define ITypeInfo_GetTypeAttr(p,a) (p)->lpVtbl->GetTypeAttr(p,a)
+#define ITypeInfo_GetTypeComp(p,a) (p)->lpVtbl->GetTypeComp(p,a)
+#define ITypeInfo_GetFuncDesc(p,a,b) (p)->lpVtbl->GetFuncDesc(p,a,b)
+#define ITypeInfo_GetVarDesc(p,a,b) (p)->lpVtbl->GetVarDesc(p,a,b)
+#define ITypeInfo_GetNames(p,a,b,c,d) (p)->lpVtbl->GetNames(p,a,b,c,d)
+#define ITypeInfo_GetRefTypeOfImplType(p,a,b) (p)->lpVtbl->GetRefTypeOfImplType(p,a,b)
+#define ITypeInfo_GetImplTypeFlags(p,a,b) (p)->lpVtbl->GetImplTypeFlags(p,a,b)
+#define ITypeInfo_GetIDsOfNames(p,a,b,c) (p)->lpVtbl->GetIDsOfNames(p,a,b,c)
+#define ITypeInfo_Invoke(p,a,b,c,d,e,f,g) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g)
+#define ITypeInfo_GetDocumentation(p,a,b,c,d,e) (p)->lpVtbl->GetDocumentation(p,a,b,c,d,e)
+#define ITypeInfo_GetDllEntry(p,a,b,c,d,e) (p)->lpVtbl->GetDllEntry(p,a,b,c,d,e)
+#define ITypeInfo_GetRefTypeInfo(p,a,b) (p)->lpVtbl->GetRefTypeInfo(p,a,b)
+#define ITypeInfo_AddressOfMember(p,a,b,c) (p)->lpVtbl->AddressOfMember(p,a,b,c)
+#define ITypeInfo_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
+#define ITypeInfo_GetMops(p,a,b) (p)->lpVtbl->GetMops(p,a,b)
+#define ITypeInfo_GetContainingTypeLib(p,a,b) (p)->lpVtbl->GetContainingTypeLib(p,a,b)
+#define ITypeInfo_ReleaseTypeAttr(p,a) (p)->lpVtbl->ReleaseTypeAttr(p,a)
+#define ITypeInfo_ReleaseFuncDesc(p,a) (p)->lpVtbl->ReleaseFuncDesc(p,a)
+#define ITypeInfo_ReleaseVarDesc(p,a) (p)->lpVtbl->ReleaseVarDesc(p,a)
+#endif
+
#undef INTERFACE
#define INTERFACE ITypeInfo2
DECLARE_INTERFACE_(ITypeInfo2,ITypeInfo)
diff --git a/winsup/w32api/include/oleauto.h b/winsup/w32api/include/oleauto.h
index d28067c..478eae2 100644
--- a/winsup/w32api/include/oleauto.h
+++ b/winsup/w32api/include/oleauto.h
@@ -81,6 +81,42 @@
#define V_DECIMALREF(X) V_UNION(X,pdecVal)
#define V_I1(X) V_UNION(X,cVal)
+#define VARCMP_LT 0
+#define VARCMP_EQ 1
+#define VARCMP_GT 2
+#define VARCMP_NULL 3
+
+#define VAR_LOCALBOOL 0x10
+
+#define LOCALE_USE_NLS 0x10000000
+
+#define VARIANT_NOUSEROVERRIDE 0x04
+#define VARIANT_CALENDAR_HIJRI 0x08
+#define VARIANT_CALENDAR_THAI 0x20
+#define VARIANT_CALENDAR_GREGORIAN 0x40
+#define VARIANT_USE_NLS 0x80
+
+#define VAR_CALENDAR_HIJRI 0x08
+#define VAR_CALENDAR_THAI 0x80
+#define VAR_CALENDAR_GREGORIAN 0x100
+
+#define NUMPRS_LEADING_WHITE 0x00001
+#define NUMPRS_TRAILING_WHITE 0x00002
+#define NUMPRS_LEADING_PLUS 0x00004
+#define NUMPRS_TRAILING_PLUS 0x00008
+#define NUMPRS_LEADING_MINUS 0x00010
+#define NUMPRS_TRAILING_MINUS 0x00020
+#define NUMPRS_HEX_OCT 0x00040
+#define NUMPRS_PARENS 0x00080
+#define NUMPRS_DECIMAL 0x00100
+#define NUMPRS_THOUSANDS 0x00200
+#define NUMPRS_CURRENCY 0x00400
+#define NUMPRS_EXPONENT 0x00800
+#define NUMPRS_USE_ALL 0x01000
+#define NUMPRS_STD 0x01FFF
+#define NUMPRS_NEG 0x10000
+#define NUMPRS_INEXACT 0x20000
+
#include <oaidl.h>
typedef enum tagREGKIND {
@@ -107,6 +143,15 @@ typedef struct tagINTERFACEDATA {
UINT cMembers;
} INTERFACEDATA,*LPINTERFACEDATA;
+typedef struct {
+ int cDig;
+ unsigned long dwInFlags;
+ unsigned long dwOutFlags;
+ int cchUsed;
+ int nBaseShift;
+ int nPwr10;
+} NUMPARSE;
+
WINOLEAUTAPI_(BSTR) SysAllocString(const OLECHAR*);
WINOLEAUTAPI_(int) SysReAllocString(BSTR*,const OLECHAR*);
WINOLEAUTAPI_(BSTR) SysAllocStringLen(const OLECHAR*,unsigned int);
@@ -139,6 +184,12 @@ WINOLEAUTAPI SafeArrayPutElement(SAFEARRAY*,long*,void*);
WINOLEAUTAPI SafeArrayCopy(SAFEARRAY*,SAFEARRAY**);
WINOLEAUTAPI SafeArrayPtrOfIndex(SAFEARRAY*,long*,void**);
WINOLEAUTAPI_(SAFEARRAY*) SafeArrayCreateVector(VARTYPE,LONG,UINT);
+WINOLEAUTAPI SafeArrayAllocDescriptorEx(VARTYPE,UINT,SAFEARRAY**);
+WINOLEAUTAPI SafeArrayGetVartype(SAFEARRAY*,VARTYPE*);
+WINOLEAUTAPI SafeArraySetRecordInfo(SAFEARRAY*,IRecordInfo*);
+WINOLEAUTAPI SafeArrayGetRecordInfo(SAFEARRAY*,IRecordInfo**);
+WINOLEAUTAPI SafeArraySetIID(SAFEARRAY*,REFGUID);
+WINOLEAUTAPI SafeArrayGetIID(SAFEARRAY*,GUID*);
WINOLEAUTAPI_(void) VariantInit(VARIANTARG*);
WINOLEAUTAPI VariantClear(VARIANTARG*);
WINOLEAUTAPI VariantCopy(VARIANTARG*,VARIANTARG*);
@@ -152,7 +203,7 @@ WINOLEAUTAPI VarUI1FromR8(double,unsigned char*);
WINOLEAUTAPI VarUI1FromCy(CY,unsigned char*);
WINOLEAUTAPI VarUI1FromDate(DATE,unsigned char*);
WINOLEAUTAPI VarUI1FromStr(OLECHAR*,LCID,unsigned long,unsigned char*);
-WINOLEAUTAPI VarUI1FromDisp(LPDISPATCH*,LCID,unsigned char*);
+WINOLEAUTAPI VarUI1FromDisp(LPDISPATCH,LCID,unsigned char*);
WINOLEAUTAPI VarUI1FromBool(VARIANT_BOOL,unsigned char*);
WINOLEAUTAPI VarI2FromUI1(unsigned char,short*);
WINOLEAUTAPI VarI2FromI4(long,short*);
@@ -161,7 +212,7 @@ WINOLEAUTAPI VarI2FromR8(double,short*);
WINOLEAUTAPI VarI2FromCy(CY cyIn,short*);
WINOLEAUTAPI VarI2FromDate(DATE,short*);
WINOLEAUTAPI VarI2FromStr(OLECHAR*,LCID,unsigned long,short*);
-WINOLEAUTAPI VarI2FromDisp(LPDISPATCH*,LCID,short*);
+WINOLEAUTAPI VarI2FromDisp(LPDISPATCH,LCID,short*);
WINOLEAUTAPI VarI2FromBool(VARIANT_BOOL,short*);
WINOLEAUTAPI VarI4FromUI1(unsigned char,long*);
WINOLEAUTAPI VarI4FromI2(short,long*);
@@ -170,7 +221,7 @@ WINOLEAUTAPI VarI4FromR8(double,long*);
WINOLEAUTAPI VarI4FromCy(CY,long*);
WINOLEAUTAPI VarI4FromDate(DATE,long*);
WINOLEAUTAPI VarI4FromStr(OLECHAR*,LCID,unsigned long,long*);
-WINOLEAUTAPI VarI4FromDisp(LPDISPATCH*,LCID,long*);
+WINOLEAUTAPI VarI4FromDisp(LPDISPATCH,LCID,long*);
WINOLEAUTAPI VarI4FromBool(VARIANT_BOOL,long*);
WINOLEAUTAPI VarR4FromUI1(unsigned char,float*);
WINOLEAUTAPI VarR4FromI2(short,float*);
@@ -179,7 +230,7 @@ WINOLEAUTAPI VarR4FromR8(double,float*);
WINOLEAUTAPI VarR4FromCy(CY,float*);
WINOLEAUTAPI VarR4FromDate(DATE,float*);
WINOLEAUTAPI VarR4FromStr(OLECHAR*,LCID,unsigned long,float*);
-WINOLEAUTAPI VarR4FromDisp(LPDISPATCH*,LCID,float*);
+WINOLEAUTAPI VarR4FromDisp(LPDISPATCH,LCID,float*);
WINOLEAUTAPI VarR4FromBool(VARIANT_BOOL,float*);
WINOLEAUTAPI VarR8FromUI1(unsigned char,double*);
WINOLEAUTAPI VarR8FromI2(short,double*);
@@ -188,7 +239,7 @@ WINOLEAUTAPI VarR8FromR4(float,double*);
WINOLEAUTAPI VarR8FromCy(CY,double*);
WINOLEAUTAPI VarR8FromDate(DATE,double*);
WINOLEAUTAPI VarR8FromStr(OLECHAR*,LCID,unsigned long,double*);
-WINOLEAUTAPI VarR8FromDisp(LPDISPATCH*,LCID,double*);
+WINOLEAUTAPI VarR8FromDisp(LPDISPATCH,LCID,double*);
WINOLEAUTAPI VarR8FromBool(VARIANT_BOOL,double*);
WINOLEAUTAPI VarR8FromDec(DECIMAL*,double*);
WINOLEAUTAPI VarDateFromUI1(unsigned char,DATE*);
@@ -198,7 +249,7 @@ WINOLEAUTAPI VarDateFromR4(float,DATE*);
WINOLEAUTAPI VarDateFromR8(double,DATE*);
WINOLEAUTAPI VarDateFromCy(CY,DATE*);
WINOLEAUTAPI VarDateFromStr(OLECHAR*,LCID,unsigned long,DATE*);
-WINOLEAUTAPI VarDateFromDisp(LPDISPATCH*,LCID,DATE*);
+WINOLEAUTAPI VarDateFromDisp(LPDISPATCH,LCID,DATE*);
WINOLEAUTAPI VarDateFromBool(VARIANT_BOOL,DATE*);
WINOLEAUTAPI VarCyFromUI1(unsigned char,CY*);
WINOLEAUTAPI VarCyFromI2(short,CY*);
@@ -207,7 +258,7 @@ WINOLEAUTAPI VarCyFromR4(float,CY*);
WINOLEAUTAPI VarCyFromR8(double,CY*);
WINOLEAUTAPI VarCyFromDate(DATE,CY*);
WINOLEAUTAPI VarCyFromStr(OLECHAR*,LCID,unsigned long,CY*);
-WINOLEAUTAPI VarCyFromDisp(LPDISPATCH*,LCID,CY*);
+WINOLEAUTAPI VarCyFromDisp(LPDISPATCH,LCID,CY*);
WINOLEAUTAPI VarCyFromBool(VARIANT_BOOL,CY*);
WINOLEAUTAPI VarBstrFromUI1(unsigned char,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBstrFromI2(short,LCID,unsigned long,BSTR*);
@@ -216,7 +267,7 @@ WINOLEAUTAPI VarBstrFromR4(float,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBstrFromR8(double,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBstrFromCy(CY,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBstrFromDate(DATE,LCID,unsigned long,BSTR*);
-WINOLEAUTAPI VarBstrFromDisp(LPDISPATCH*,LCID,unsigned long,BSTR*);
+WINOLEAUTAPI VarBstrFromDisp(LPDISPATCH,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBstrFromBool(VARIANT_BOOL,LCID,unsigned long,BSTR*);
WINOLEAUTAPI VarBoolFromUI1(unsigned char,VARIANT_BOOL*);
WINOLEAUTAPI VarBoolFromI2(short,VARIANT_BOOL*);
@@ -226,7 +277,7 @@ WINOLEAUTAPI VarBoolFromR8(double,VARIANT_BOOL*);
WINOLEAUTAPI VarBoolFromDate(DATE,VARIANT_BOOL*);
WINOLEAUTAPI VarBoolFromCy(CY,VARIANT_BOOL*);
WINOLEAUTAPI VarBoolFromStr(OLECHAR*,LCID,unsigned long,VARIANT_BOOL*);
-WINOLEAUTAPI VarBoolFromDisp(LPDISPATCH*,LCID,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDisp(LPDISPATCH,LCID,VARIANT_BOOL*);
WINOLEAUTAPI VarDecFromR8(double,DECIMAL*);
WINOLEAUTAPI_(ULONG) LHashValOfNameSysA(SYSKIND,LCID,const char*);
WINOLEAUTAPI_(ULONG) LHashValOfNameSys(SYSKIND,LCID,const OLECHAR*);
@@ -251,11 +302,259 @@ WINOLEAUTAPI CreateErrorInfo(LPCREATEERRORINFO*);
WINOLEAUTAPI_(unsigned long) OaBuildVersion(void);
WINOLEAUTAPI VectorFromBstr (BSTR, SAFEARRAY **);
WINOLEAUTAPI BstrFromVector (SAFEARRAY *, BSTR *);
+WINOLEAUTAPI VarParseNumFromStr(OLECHAR*,LCID,ULONG,NUMPARSE*,BYTE*);
+WINOLEAUTAPI VarNumFromParseNum(NUMPARSE*,BYTE*,ULONG,VARIANT*);
WINOLEAUTAPI VarAdd(LPVARIANT, LPVARIANT, LPVARIANT);
WINOLEAUTAPI VarSub(LPVARIANT, LPVARIANT, LPVARIANT);
WINOLEAUTAPI VarMul(LPVARIANT, LPVARIANT, LPVARIANT);
WINOLEAUTAPI VarDiv(LPVARIANT, LPVARIANT, LPVARIANT);
+
+WINOLEAUTAPI VarUI1FromI2(SHORT,BYTE*);
+WINOLEAUTAPI VarUI1FromI4(LONG,BYTE*);
+WINOLEAUTAPI VarUI1FromI8(LONG64,BYTE*);
+WINOLEAUTAPI VarUI1FromR4(FLOAT,BYTE*);
+WINOLEAUTAPI VarUI1FromR8(DOUBLE,BYTE*);
+WINOLEAUTAPI VarUI1FromDate(DATE,BYTE*);
+WINOLEAUTAPI VarUI1FromBool(VARIANT_BOOL,BYTE*);
+WINOLEAUTAPI VarUI1FromI1(signed char,BYTE*);
+WINOLEAUTAPI VarUI1FromUI2(USHORT,BYTE*);
+WINOLEAUTAPI VarUI1FromUI4(ULONG,BYTE*);
+WINOLEAUTAPI VarUI1FromUI8(ULONG64,BYTE*);
+WINOLEAUTAPI VarUI1FromStr(OLECHAR*,LCID,ULONG,BYTE*);
+WINOLEAUTAPI VarUI1FromCy(CY,BYTE*);
+WINOLEAUTAPI VarUI1FromDec(DECIMAL*,BYTE*);
+WINOLEAUTAPI VarUI1FromDisp(IDispatch*,LCID,BYTE*);
+
+WINOLEAUTAPI VarI2FromUI1(BYTE,SHORT*);
+WINOLEAUTAPI VarI2FromI4(LONG,SHORT*);
+WINOLEAUTAPI VarI2FromI8(LONG64,SHORT*);
+WINOLEAUTAPI VarI2FromR4(FLOAT,SHORT*);
+WINOLEAUTAPI VarI2FromR8(DOUBLE,SHORT*);
+WINOLEAUTAPI VarI2FromDate(DATE,SHORT*);
+WINOLEAUTAPI VarI2FromBool(VARIANT_BOOL,SHORT*);
+WINOLEAUTAPI VarI2FromI1(signed char,SHORT*);
+WINOLEAUTAPI VarI2FromUI2(USHORT,SHORT*);
+WINOLEAUTAPI VarI2FromUI4(ULONG,SHORT*);
+WINOLEAUTAPI VarI2FromUI8(ULONG64,SHORT*);
+WINOLEAUTAPI VarI2FromStr(OLECHAR*,LCID,ULONG,SHORT*);
+WINOLEAUTAPI VarI2FromCy(CY,SHORT*);
+WINOLEAUTAPI VarI2FromDec(DECIMAL*,SHORT*);
+WINOLEAUTAPI VarI2FromDisp(IDispatch*,LCID,SHORT*);
+
+WINOLEAUTAPI VarI4FromUI1(BYTE,LONG*);
+WINOLEAUTAPI VarI4FromI2(SHORT,LONG*);
+WINOLEAUTAPI VarI4FromI8(LONG64,LONG*);
+WINOLEAUTAPI VarI4FromR4(FLOAT,LONG*);
+WINOLEAUTAPI VarI4FromR8(DOUBLE,LONG*);
+WINOLEAUTAPI VarI4FromDate(DATE,LONG*);
+WINOLEAUTAPI VarI4FromBool(VARIANT_BOOL,LONG*);
+WINOLEAUTAPI VarI4FromI1(signed char,LONG*);
+WINOLEAUTAPI VarI4FromUI2(USHORT,LONG*);
+WINOLEAUTAPI VarI4FromUI4(ULONG,LONG*);
+WINOLEAUTAPI VarI4FromUI8(ULONG64,LONG*);
+WINOLEAUTAPI VarI4FromStr(OLECHAR*,LCID,ULONG,LONG*);
+WINOLEAUTAPI VarI4FromCy(CY,LONG*);
+WINOLEAUTAPI VarI4FromDec(DECIMAL*,LONG*);
+WINOLEAUTAPI VarI4FromDisp(IDispatch*,LCID,LONG*);
+
+WINOLEAUTAPI VarI8FromUI1(BYTE,LONG64*);
+WINOLEAUTAPI VarI8FromI2(SHORT,LONG64*);
+WINOLEAUTAPI VarI8FromI4(LONG,LONG64*);
+WINOLEAUTAPI VarI8FromR4(FLOAT,LONG64*);
+WINOLEAUTAPI VarI8FromR8(DOUBLE,LONG64*);
+WINOLEAUTAPI VarI8FromDate(DATE,LONG64*);
+WINOLEAUTAPI VarI8FromStr(OLECHAR*,LCID,ULONG,LONG64*);
+WINOLEAUTAPI VarI8FromBool(VARIANT_BOOL,LONG64*);
+WINOLEAUTAPI VarI8FromI1(signed char,LONG64*);
+WINOLEAUTAPI VarI8FromUI2(USHORT,LONG64*);
+WINOLEAUTAPI VarI8FromUI4(ULONG,LONG64*);
+WINOLEAUTAPI VarI8FromUI8(ULONG64,LONG64*);
+WINOLEAUTAPI VarI8FromDec(DECIMAL *pdecIn,LONG64*);
+WINOLEAUTAPI VarI8FromInt(INT intIn,LONG64*);
+WINOLEAUTAPI VarI8FromCy(CY,LONG64*);
+WINOLEAUTAPI VarI8FromDisp(IDispatch*,LCID,LONG64*);
+
+WINOLEAUTAPI VarR4FromUI1(BYTE,FLOAT*);
+WINOLEAUTAPI VarR4FromI2(SHORT,FLOAT*);
+WINOLEAUTAPI VarR4FromI4(LONG,FLOAT*);
+WINOLEAUTAPI VarR4FromI8(LONG64,FLOAT*);
+WINOLEAUTAPI VarR4FromR8(DOUBLE,FLOAT*);
+WINOLEAUTAPI VarR4FromDate(DATE,FLOAT*);
+WINOLEAUTAPI VarR4FromBool(VARIANT_BOOL,FLOAT*);
+WINOLEAUTAPI VarR4FromI1(signed char,FLOAT*);
+WINOLEAUTAPI VarR4FromUI2(USHORT,FLOAT*);
+WINOLEAUTAPI VarR4FromUI4(ULONG,FLOAT*);
+WINOLEAUTAPI VarR4FromUI8(ULONG64,FLOAT*);
+WINOLEAUTAPI VarR4FromStr(OLECHAR*,LCID,ULONG,FLOAT*);
+WINOLEAUTAPI VarR4FromCy(CY,FLOAT*);
+WINOLEAUTAPI VarR4FromDec(DECIMAL*,FLOAT*);
+WINOLEAUTAPI VarR4FromDisp(IDispatch*,LCID,FLOAT*);
+
+WINOLEAUTAPI VarR8FromUI1(BYTE,double*);
+WINOLEAUTAPI VarR8FromI2(SHORT,double*);
+WINOLEAUTAPI VarR8FromI4(LONG,double*);
+WINOLEAUTAPI VarR8FromI8(LONG64,double*);
+WINOLEAUTAPI VarR8FromR4(FLOAT,double*);
+WINOLEAUTAPI VarR8FromDate(DATE,double*);
+WINOLEAUTAPI VarR8FromBool(VARIANT_BOOL,double*);
+WINOLEAUTAPI VarR8FromI1(signed char,double*);
+WINOLEAUTAPI VarR8FromUI2(USHORT,double*);
+WINOLEAUTAPI VarR8FromUI4(ULONG,double*);
+WINOLEAUTAPI VarR8FromUI8(ULONG64,double*);
+WINOLEAUTAPI VarR8FromStr(OLECHAR*,LCID,ULONG,double*);
+WINOLEAUTAPI VarR8FromCy(CY,double*);
+WINOLEAUTAPI VarR8FromDec(DECIMAL*,double*);
+WINOLEAUTAPI VarR8FromDisp(IDispatch*,LCID,double*);
+
+WINOLEAUTAPI VarDateFromUI1(BYTE,DATE*);
+WINOLEAUTAPI VarDateFromI2(SHORT,DATE*);
+WINOLEAUTAPI VarDateFromI4(LONG,DATE*);
+WINOLEAUTAPI VarDateFromI8(LONG64,DATE*);
+WINOLEAUTAPI VarDateFromR4(FLOAT,DATE*);
+WINOLEAUTAPI VarDateFromR8(DOUBLE,DATE*);
+WINOLEAUTAPI VarDateFromStr(OLECHAR*,LCID,ULONG,DATE*);
+WINOLEAUTAPI VarDateFromI1(signed char,DATE*);
+WINOLEAUTAPI VarDateFromUI2(USHORT,DATE*);
+WINOLEAUTAPI VarDateFromUI4(ULONG,DATE*);
+WINOLEAUTAPI VarDateFromUI8(ULONG64,DATE*);
+WINOLEAUTAPI VarDateFromBool(VARIANT_BOOL,DATE*);
+WINOLEAUTAPI VarDateFromCy(CY,DATE*);
+WINOLEAUTAPI VarDateFromDec(DECIMAL*,DATE*);
+WINOLEAUTAPI VarDateFromDisp(IDispatch*,LCID,DATE*);
+
+WINOLEAUTAPI VarCyFromUI1(BYTE,CY*);
+WINOLEAUTAPI VarCyFromI2(SHORT sIn,CY*);
+WINOLEAUTAPI VarCyFromI4(LONG,CY*);
+WINOLEAUTAPI VarCyFromI8(LONG64,CY*);
+WINOLEAUTAPI VarCyFromR4(FLOAT,CY*);
+WINOLEAUTAPI VarCyFromR8(DOUBLE,CY*);
+WINOLEAUTAPI VarCyFromDate(DATE,CY*);
+WINOLEAUTAPI VarCyFromStr(OLECHAR*,LCID,ULONG,CY*);
+WINOLEAUTAPI VarCyFromBool(VARIANT_BOOL,CY*);
+WINOLEAUTAPI VarCyFromI1(signed char,CY*);
+WINOLEAUTAPI VarCyFromUI2(USHORT,CY*);
+WINOLEAUTAPI VarCyFromUI4(ULONG,CY*);
+WINOLEAUTAPI VarCyFromUI8(ULONG64,CY*);
+WINOLEAUTAPI VarCyFromDec(DECIMAL*,CY*);
+WINOLEAUTAPI VarCyFromStr(OLECHAR*,LCID,ULONG,CY*);
+WINOLEAUTAPI VarCyFromDisp(IDispatch*,LCID,CY*);
+
+WINOLEAUTAPI VarBstrFromUI1(BYTE,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromI2(SHORT,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromI4(LONG,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromI8(LONG64,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromR4(FLOAT,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromR8(DOUBLE,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromDate(DATE,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromBool(VARIANT_BOOL,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromI1(signed char,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromUI2(USHORT,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromUI8(ULONG64,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromUI4(ULONG,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromCy(CY,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromDec(DECIMAL*,LCID,ULONG,BSTR*);
+WINOLEAUTAPI VarBstrFromDisp(IDispatch*,LCID,ULONG,BSTR*);
+
+WINOLEAUTAPI VarBoolFromUI1(BYTE,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI2(SHORT,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI4(LONG,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI8(LONG64,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromR4(FLOAT,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromR8(DOUBLE,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDate(DATE,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromStr(OLECHAR*,LCID,ULONG,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromI1(signed char,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromUI2(USHORT,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromUI4(ULONG,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromUI8(ULONG64,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromCy(CY,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDec(DECIMAL*,VARIANT_BOOL*);
+WINOLEAUTAPI VarBoolFromDisp(IDispatch*,LCID,VARIANT_BOOL*);
+
+WINOLEAUTAPI VarI1FromUI1(BYTE,signed char*);
+WINOLEAUTAPI VarI1FromI2(SHORT,signed char*);
+WINOLEAUTAPI VarI1FromI4(LONG,signed char*);
+WINOLEAUTAPI VarI1FromI8(LONG64,signed char*);
+WINOLEAUTAPI VarI1FromR4(FLOAT,signed char*);
+WINOLEAUTAPI VarI1FromR8(DOUBLE,signed char*);
+WINOLEAUTAPI VarI1FromDate(DATE,signed char*);
+WINOLEAUTAPI VarI1FromStr(OLECHAR*,LCID,ULONG,signed char*);
+WINOLEAUTAPI VarI1FromBool(VARIANT_BOOL,signed char*);
+WINOLEAUTAPI VarI1FromUI2(USHORT,signed char*);
+WINOLEAUTAPI VarI1FromUI4(ULONG,signed char*);
+WINOLEAUTAPI VarI1FromUI8(ULONG64,signed char*);
+WINOLEAUTAPI VarI1FromCy(CY,signed char*);
+WINOLEAUTAPI VarI1FromDec(DECIMAL*,signed char*);
+WINOLEAUTAPI VarI1FromDisp(IDispatch*,LCID,signed char*);
+
+WINOLEAUTAPI VarUI2FromUI1(BYTE,USHORT*);
+WINOLEAUTAPI VarUI2FromI2(SHORT,USHORT*);
+WINOLEAUTAPI VarUI2FromI4(LONG,USHORT*);
+WINOLEAUTAPI VarUI2FromI8(LONG64,USHORT*);
+WINOLEAUTAPI VarUI2FromR4(FLOAT,USHORT*);
+WINOLEAUTAPI VarUI2FromR8(DOUBLE,USHORT*);
+WINOLEAUTAPI VarUI2FromDate(DATE,USHORT*);
+WINOLEAUTAPI VarUI2FromStr(OLECHAR*,LCID,ULONG,USHORT*);
+WINOLEAUTAPI VarUI2FromBool(VARIANT_BOOL,USHORT*);
+WINOLEAUTAPI VarUI2FromI1(signed char,USHORT*);
+WINOLEAUTAPI VarUI2FromUI4(ULONG,USHORT*);
+WINOLEAUTAPI VarUI2FromUI8(ULONG64,USHORT*);
+WINOLEAUTAPI VarUI2FromCy(CY,USHORT*);
+WINOLEAUTAPI VarUI2FromDec(DECIMAL*,USHORT*);
+WINOLEAUTAPI VarUI2FromDisp(IDispatch*,LCID,USHORT*);
+
+WINOLEAUTAPI VarUI4FromStr(OLECHAR*,LCID,ULONG,ULONG*);
+WINOLEAUTAPI VarUI4FromUI1(BYTE,ULONG*);
+WINOLEAUTAPI VarUI4FromI2(SHORT,ULONG*);
+WINOLEAUTAPI VarUI4FromI4(LONG,ULONG*);
+WINOLEAUTAPI VarUI4FromI8(LONG64,ULONG*);
+WINOLEAUTAPI VarUI4FromR4(FLOAT,ULONG*);
+WINOLEAUTAPI VarUI4FromR8(DOUBLE,ULONG*);
+WINOLEAUTAPI VarUI4FromDate(DATE,ULONG*);
+WINOLEAUTAPI VarUI4FromBool(VARIANT_BOOL,ULONG*);
+WINOLEAUTAPI VarUI4FromI1(signed char,ULONG*);
+WINOLEAUTAPI VarUI4FromUI2(USHORT,ULONG*);
+WINOLEAUTAPI VarUI4FromUI8(ULONG64,ULONG*);
+WINOLEAUTAPI VarUI4FromCy(CY,ULONG*);
+WINOLEAUTAPI VarUI4FromDec(DECIMAL*,ULONG*);
+WINOLEAUTAPI VarUI4FromDisp(IDispatch*,LCID,ULONG*);
+
+WINOLEAUTAPI VarUI8FromUI1(BYTE,ULONG64*);
+WINOLEAUTAPI VarUI8FromI2(SHORT,ULONG64*);
+WINOLEAUTAPI VarUI8FromI4(LONG,ULONG64*);
+WINOLEAUTAPI VarUI8FromI8(LONG64,ULONG64*);
+WINOLEAUTAPI VarUI8FromR4(FLOAT,ULONG64*);
+WINOLEAUTAPI VarUI8FromR8(DOUBLE,ULONG64*);
+WINOLEAUTAPI VarUI8FromDate(DATE,ULONG64*);
+WINOLEAUTAPI VarUI8FromStr(OLECHAR*,LCID,ULONG,ULONG64*);
+WINOLEAUTAPI VarUI8FromBool(VARIANT_BOOL,ULONG64*);
+WINOLEAUTAPI VarUI8FromI1(signed char,ULONG64*);
+WINOLEAUTAPI VarUI8FromUI2(USHORT,ULONG64*);
+WINOLEAUTAPI VarUI8FromUI4(ULONG,ULONG64*);
+WINOLEAUTAPI VarUI8FromDec(DECIMAL*,ULONG64*);
+WINOLEAUTAPI VarUI8FromInt(INT,ULONG64*);
+WINOLEAUTAPI VarUI8FromCy(CY,ULONG64*);
+WINOLEAUTAPI VarUI8FromDisp(IDispatch*,LCID,ULONG64*);
+
+WINOLEAUTAPI VarDecFromUI1(BYTE,DECIMAL*);
+WINOLEAUTAPI VarDecFromI2(SHORT,DECIMAL*);
+WINOLEAUTAPI VarDecFromI4(LONG,DECIMAL*);
+WINOLEAUTAPI VarDecFromI8(LONG64,DECIMAL*);
+WINOLEAUTAPI VarDecFromR4(FLOAT,DECIMAL*);
+WINOLEAUTAPI VarDecFromR8(DOUBLE,DECIMAL*);
+WINOLEAUTAPI VarDecFromDate(DATE,DECIMAL*);
+WINOLEAUTAPI VarDecFromStr(OLECHAR*,LCID,ULONG,DECIMAL*);
+WINOLEAUTAPI VarDecFromBool(VARIANT_BOOL,DECIMAL*);
+WINOLEAUTAPI VarDecFromI1(signed char,DECIMAL*);
+WINOLEAUTAPI VarDecFromUI2(USHORT,DECIMAL*);
+WINOLEAUTAPI VarDecFromUI4(ULONG,DECIMAL*);
+WINOLEAUTAPI VarDecFromUI8(ULONG64,DECIMAL*);
+WINOLEAUTAPI VarDecFromCy(CY,DECIMAL*);
+WINOLEAUTAPI VarDecFromDisp(IDispatch*,LCID,DECIMAL*);
+
+WINOLEAUTAPI VarDecNeg(const DECIMAL*,DECIMAL*);
+
#pragma pack(pop)
#endif
diff --git a/winsup/w32api/include/winerror.h b/winsup/w32api/include/winerror.h
index 42e8bce..0a3193c 100644
--- a/winsup/w32api/include/winerror.h
+++ b/winsup/w32api/include/winerror.h
@@ -2096,6 +2096,7 @@
#define DISP_E_PARAMNOTOPTIONAL ((HRESULT)0x8002000FL)
#define DISP_E_BADCALLEE ((HRESULT)0x80020010L)
#define DISP_E_NOTACOLLECTION ((HRESULT)0x80020011L)
+#define DISP_E_DIVBYZERO ((HRESULT)0x80020012L)
#define TYPE_E_BUFFERTOOSMALL ((HRESULT)0x80028016L)
#define TYPE_E_INVDATAREAD ((HRESULT)0x80028018L)
#define TYPE_E_UNSUPFORMAT ((HRESULT)0x80028019L)
diff --git a/winsup/w32api/include/wtypes.h b/winsup/w32api/include/wtypes.h
index 612b8dc..85d1851 100644
--- a/winsup/w32api/include/wtypes.h
+++ b/winsup/w32api/include/wtypes.h
@@ -118,18 +118,11 @@ enum VARENUM {
VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
- VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT,
+ VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_INT_PTR=37,VT_UINT_PTR=38,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT,
VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
VT_TYPEMASK=0xfff
};
-#ifdef _WIN64
-#define VT_INT_PTR VT_I8
-#define VT_UINT_PTR VT_UI8
-#else
-#define VT_INT_PTR VT_I4
-#define VT_UINT_PTR VT_UI4
-#endif
typedef struct _BYTE_SIZEDARR {
unsigned long clSize;