summaryrefslogtreecommitdiff
path: root/src/pal/inc/rt/oleauto.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pal/inc/rt/oleauto.h')
-rw-r--r--src/pal/inc/rt/oleauto.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/src/pal/inc/rt/oleauto.h b/src/pal/inc/rt/oleauto.h
new file mode 100644
index 0000000000..a8499f96d5
--- /dev/null
+++ b/src/pal/inc/rt/oleauto.h
@@ -0,0 +1,161 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+//
+
+//
+// ===========================================================================
+// File: oleauto.h
+//
+// ===========================================================================
+// simplified oleauto.h for PAL
+
+#ifndef _OLEAUTO_H_
+#define _OLEAUTO_H_
+#include "oaidl.h"
+
+#ifndef BEGIN_INTERFACE
+#define BEGIN_INTERFACE
+#define END_INTERFACE
+#endif
+
+// OleAut's VT_CY and VT_DECIMAL declarations required by System.Decimal and System.Currency
+
+typedef struct {
+ INT cDig;
+ ULONG dwInFlags;
+ ULONG dwOutFlags;
+ INT cchUsed;
+ INT nBaseShift;
+ INT nPwr10;
+} NUMPARSE;
+
+#define NUMPRS_STD 0x1FFF
+
+/* flags used by both dwInFlags and dwOutFlags:
+ */
+#define NUMPRS_LEADING_WHITE 0x0001
+#define NUMPRS_TRAILING_WHITE 0x0002
+#define NUMPRS_LEADING_PLUS 0x0004
+#define NUMPRS_TRAILING_PLUS 0x0008
+#define NUMPRS_LEADING_MINUS 0x0010
+#define NUMPRS_TRAILING_MINUS 0x0020
+#define NUMPRS_HEX_OCT 0x0040
+#define NUMPRS_PARENS 0x0080
+#define NUMPRS_DECIMAL 0x0100
+#define NUMPRS_THOUSANDS 0x0200
+#define NUMPRS_CURRENCY 0x0400
+#define NUMPRS_EXPONENT 0x0800
+#define NUMPRS_USE_ALL 0x1000
+
+/* flags used by dwOutFlags only:
+ */
+#define NUMPRS_NEG 0x10000
+#define NUMPRS_INEXACT 0x20000
+/* flags used by VarNumFromParseNum to indicate acceptable result types:
+ */
+#define VTBIT_I1 (1 << VT_I1)
+#define VTBIT_UI1 (1 << VT_UI1)
+#define VTBIT_I2 (1 << VT_I2)
+#define VTBIT_UI2 (1 << VT_UI2)
+#define VTBIT_I4 (1 << VT_I4)
+#define VTBIT_UI4 (1 << VT_UI4)
+#define VTBIT_I8 (1 << VT_I8)
+#define VTBIT_UI8 (1 << VT_UI8)
+#define VTBIT_R4 (1 << VT_R4)
+#define VTBIT_R8 (1 << VT_R8)
+#define VTBIT_CY (1 << VT_CY)
+#define VTBIT_DECIMAL (1 << VT_DECIMAL)
+
+#define LOCALE_NOUSEROVERRIDE 0x80000000 /* OR in to avoid user override */
+/*
+ * Use NLS functions to format date, currency, time, and number.
+ */
+#ifndef LOCALE_USE_NLS
+#define LOCALE_USE_NLS 0x10000000
+#endif
+
+// Compare results for VarDecCmp. These are returned as a SUCCESS HResult.
+// Subtracting one gives the usual values of -1 for Less Than,
+// 0 for Equal To, +1 for Greater Than.
+//
+#define VARCMP_LT 0
+#define VARCMP_EQ 1
+#define VARCMP_GT 2
+#define VARCMP_NULL 3
+
+#ifdef ENABLE_DOWNLEVEL_FOR_NLS
+STDAPI VarParseNumFromStr(OLECHAR * strIn, LCID lcid, ULONG dwFlags,
+ NUMPARSE * pnumprs, BYTE * rgbDig);
+
+STDAPI VarNumFromParseNum(NUMPARSE * pnumprs, BYTE * rgbDig,
+ ULONG dwVtBits, VARIANT * pvar);
+#endif
+
+STDAPI VariantChangeType(VARIANTARG * pvargDest,
+ VARIANTARG * pvarSrc, USHORT wFlags, VARTYPE vt);
+
+STDAPI VarCyFromR4(FLOAT fltIn, CY * pcyOut);
+STDAPI VarCyFromR8(DOUBLE dblIn, CY * pcyOut);
+STDAPI VarCyFromDec(DECIMAL *pdecIn, CY *pcyOut);
+STDAPI VarCyAdd(CY cyLeft, CY cyRight, LPCY pcyResult);
+STDAPI VarCySub(CY cyLeft, CY cyRight, LPCY pcyResult);
+STDAPI VarCyMul(CY cyLeft, CY cyRight, LPCY pcyResult);
+STDAPI VarCyInt(CY cyIn, LPCY pcyResult);
+STDAPI VarCyRound(CY cyIn, INT cDecimals, LPCY pcyResult);
+STDAPI VarCyFix(CY cyIn, LPCY pcyResult);
+
+STDAPI VarR8FromCy(CY cyIn, DOUBLE * pdblOut);
+STDAPI VarR4FromCy(CY cyIn, FLOAT * pfltOut);
+
+#ifdef ENABLE_DOWNLEVEL_FOR_NLS
+STDAPI VarBstrFromCy(CY cyIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromUI1(BYTE bVal, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromI2(SHORT iVal, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromI8(LONG64 i64In, LCID lcid, ULONG dwFlags, BSTR FAR* pbstrOut);
+STDAPI VarBstrFromR4(FLOAT fltIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromR8(DOUBLE dblIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut);
+STDAPI VarBstrFromI1(CHAR cIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut);
+STDAPI VarBstrFromUI2(USHORT uiIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut);
+STDAPI VarBstrFromUI4(ULONG ulIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut);
+STDAPI VarBstrFromUI8(ULONG64 ui64In, LCID lcid, ULONG dwFlags, BSTR FAR* pbstrOut);
+STDAPI VarBstrFromDec(DECIMAL *pdecIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut);
+#endif
+
+STDAPI VarDecFromR4(FLOAT fltIn, DECIMAL *pdecOut);
+STDAPI VarDecFromR8(DOUBLE dblIn, DECIMAL *pdecOut);
+STDAPI VarDecFromCy(CY cyIn, DECIMAL *pdecOut);
+STDAPI VarDecAdd(LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult);
+STDAPI VarDecSub(LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult);
+STDAPI VarDecMul(LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult);
+STDAPI VarDecDiv(LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult);
+STDAPI VarDecCmp(LPDECIMAL pdecLeft, LPDECIMAL pdecRight);
+STDAPI VarDecInt(LPDECIMAL pdecIn, LPDECIMAL pdecResult);
+STDAPI VarDecRound(LPDECIMAL pdecIn, INT cDecimals, LPDECIMAL pdecResult);
+STDAPI VarDecFix(LPDECIMAL pdecIn, LPDECIMAL pdecResult);
+STDAPI VarDecNeg(LPDECIMAL pdecIn, LPDECIMAL pdecResult);
+STDAPI VarDecFromI4(LONG I4in, DECIMAL *pdecOut);
+STDAPI VarDecFromUI4(ULONG UI4in, DECIMAL *pdecOut);
+
+STDAPI VarI1FromDec(DECIMAL *pdecIn, CHAR *pI1In);
+STDAPI VarUI1FromDec(DECIMAL *pdecIn, BYTE *pUI1In);
+STDAPI VarI2FromDec(DECIMAL *pdecIn, SHORT *pI2In);
+STDAPI VarUI2FromDec(DECIMAL *pdecIn, USHORT *pUI2In);
+STDAPI VarI4FromDec(DECIMAL *pdecIn, LONG *pI4In);
+STDAPI VarUI4FromDec(DECIMAL *pdecIn, ULONG *pUI4In);
+STDAPI VarR8FromDec(DECIMAL *pdecIn, DOUBLE *pdblOut);
+STDAPI VarR4FromDec(DECIMAL *pdecIn, FLOAT *pfltOut);
+
+#ifdef ENABLE_DOWNLEVEL_FOR_NLS
+STDAPI VarR8FromStr(OLECHAR *strin, LCID lcid, ULONG dwFlags, DOUBLE *pdblOut);
+#endif
+
+STDAPI VarI1FromR8(DOUBLE dblIn, CHAR *pcOut);
+STDAPI VarI2FromR8(DOUBLE dblIn, SHORT * psOut);
+STDAPI VarI4FromR8(DOUBLE dblIn, LONG * plOut);
+STDAPI VarUI1FromR8(DOUBLE dblIn, BYTE * pbOut);
+STDAPI VarUI2FromR8(DOUBLE dblIn, USHORT *puiOut);
+STDAPI VarUI4FromR8(DOUBLE dblIn, ULONG *pulOut);
+
+#endif // _OLEAUTO_H_