Module: wine Branch: master Commit: 32bacc9c0b545f95f87a7d26145632bbc01b4cc9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=32bacc9c0b545f95f87a7d2614...
Author: Juan Lang juan.lang@gmail.com Date: Wed Feb 18 09:06:19 2009 -0800
oleaut32: Implement VarDecInt.
---
dlls/oleaut32/vartype.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c index 0b0ed28..6d972a2 100644 --- a/dlls/oleaut32/vartype.c +++ b/dlls/oleaut32/vartype.c @@ -5702,14 +5702,22 @@ HRESULT WINAPI VarDecFix(const DECIMAL* pDecIn, DECIMAL* pDecOut) */ HRESULT WINAPI VarDecInt(const DECIMAL* pDecIn, DECIMAL* pDecOut) { + double dbl; + HRESULT hr; + if (DEC_SIGN(pDecIn) & ~DECIMAL_NEG) return E_INVALIDARG;
if (!(DEC_SIGN(pDecIn) & DECIMAL_NEG) || !DEC_SCALE(pDecIn)) return VarDecFix(pDecIn, pDecOut); /* The same, if +ve or no fractionals */
- FIXME("semi-stub!\n"); - return DISP_E_OVERFLOW; + hr = VarR8FromDec(pDecIn, &dbl); + if (SUCCEEDED(hr)) { + LONGLONG rounded = dbl >= 0.0 ? dbl + 0.5 : dbl - 0.5; + + hr = VarDecFromI8(rounded, pDecOut); + } + return hr; }
/************************************************************************