diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index a60d34c94..bbc3f8476 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,24 @@ +2004-03-01 Martin Fuchs + + * 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 * include/ddk/video.h: Corrected packing. diff --git a/winsup/w32api/include/oaidl.h b/winsup/w32api/include/oaidl.h index 06c4116ab..544a35260 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 d28067c7a..478eae2c5 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 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 42e8bce99..0a3193cdf 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 612b8dc97..85d1851a8 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;