| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Mappings for the contents of OleAuto.h |
| use ctypes::{c_double, c_float, c_int, c_uint, c_void}; |
| use shared::basetsd::{LONG64, ULONG64}; |
| use shared::minwindef::{BYTE, DWORD, FLOAT, UINT, ULONG, USHORT, WORD}; |
| use shared::wtypes::{BSTR, DATE, DECIMAL, LPBSTR, LPDECIMAL, VARTYPE}; |
| use shared::wtypesbase::{DOUBLE, LPCOLESTR, LPOLESTR, OLECHAR}; |
| use um::minwinbase::LPSYSTEMTIME; |
| use um::oaidl::{ |
| DISPID_UNKNOWN, ICreateErrorInfo, IErrorInfo, ITypeLib, SAFEARRAY, VARIANT, VARIANTARG |
| }; |
| use um::winnt::{CHAR, HRESULT, INT, LCID, LONG, LPCSTR, SHORT}; |
| extern "system" { |
| pub fn SysAllocString( |
| psz: *const OLECHAR, |
| ) -> BSTR; |
| pub fn SysReAllocString( |
| pbstr: *mut BSTR, |
| psz: *const OLECHAR, |
| ) -> INT; |
| pub fn SysAllocStringLen( |
| strIn: *const OLECHAR, |
| ui: UINT, |
| ) -> BSTR; |
| pub fn SysReAllocStringLen( |
| pbstr: *mut BSTR, |
| psz: *const OLECHAR, |
| len: c_uint, |
| ) -> INT; |
| pub fn SysFreeString( |
| bstrString: BSTR, |
| ); |
| pub fn SysStringLen( |
| pbstr: BSTR, |
| ) -> UINT; |
| pub fn SysStringByteLen( |
| bstr: BSTR, |
| ) -> UINT; |
| pub fn SysAllocStringByteLen( |
| psz: LPCSTR, |
| len: UINT, |
| ) -> BSTR; |
| pub fn DosDateTimeToVariantTime( |
| wDosDate: USHORT, |
| wDosTime: USHORT, |
| pvtime: *mut DOUBLE, |
| ) -> INT; |
| pub fn VariantTimeToDosDateTime( |
| vtime: DOUBLE, |
| pwDosDate: *mut USHORT, |
| pwDosTime: *mut USHORT, |
| ) -> INT; |
| pub fn SystemTimeToVariantTime( |
| lpSystemTime: LPSYSTEMTIME, |
| pvtime: *mut DOUBLE, |
| ) -> INT; |
| pub fn VariantTimeToSystemTime( |
| vtime: DOUBLE, |
| lpSystemTime: LPSYSTEMTIME, |
| ) -> INT; |
| pub fn SafeArrayAccessData( |
| psa: *mut SAFEARRAY, |
| ppvData: *mut *mut c_void, |
| ) -> HRESULT; |
| pub fn SafeArrayUnaccessData( |
| psa: *mut SAFEARRAY, |
| ) -> HRESULT; |
| pub fn SafeArrayCreateVector( |
| vt: VARTYPE, |
| lLbound: LONG, |
| cElements: ULONG, |
| ) -> *mut SAFEARRAY; |
| pub fn SafeArrayGetLBound( |
| psa: *mut SAFEARRAY, |
| nDim: UINT, |
| plLbound: *mut LONG |
| ) -> HRESULT; |
| pub fn SafeArrayGetUBound( |
| psa: *mut SAFEARRAY, |
| nDim: UINT, |
| plUbound: *mut LONG |
| ) -> HRESULT; |
| pub fn SafeArrayDestroy( |
| psa: *mut SAFEARRAY |
| ) -> HRESULT; |
| pub fn VariantInit( |
| pvarg: *mut VARIANTARG, |
| ); |
| pub fn VariantClear( |
| pvarg: *mut VARIANTARG, |
| ) -> HRESULT; |
| pub fn VariantCopy( |
| pvargDest: *mut VARIANTARG, |
| pvargSrc: *const VARIANTARG, |
| ) -> HRESULT; |
| pub fn VariantCopyInd( |
| pvarDest: *mut VARIANT, |
| pvargSrc: *const VARIANTARG, |
| ) -> HRESULT; |
| pub fn VariantChangeType( |
| pvargDest: *mut VARIANTARG, |
| pvarSrc: *const VARIANTARG, |
| wFlags: USHORT, |
| vt: VARTYPE, |
| ) -> HRESULT; |
| pub fn VariantChangeTypeEx( |
| pvargDest: *mut VARIANTARG, |
| pvarSrc: *const VARIANTARG, |
| lcid: LCID, |
| wFlags: USHORT, |
| vt: VARTYPE, |
| ) -> HRESULT; |
| pub fn VarUI1FromI2( |
| sIn: SHORT, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromI4( |
| lIn: LONG, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromI8( |
| i64In: LONG64, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromR4( |
| fltIn: FLOAT, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromR8( |
| dblIn: DOUBLE, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromDate( |
| dateIn: DATE, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromI1( |
| cIn: CHAR, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromUI2( |
| uiIn: USHORT, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromUI4( |
| ulIn: ULONG, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromUI8( |
| ui64In: ULONG64, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarUI1FromDec( |
| pdecIn: *const DECIMAL, |
| pbOut: *mut BYTE, |
| ); |
| pub fn VarI2FromUI1( |
| bIn: BYTE, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromI4( |
| lIn: LONG, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromI8( |
| i64In: LONG64, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromR4( |
| fltIn: FLOAT, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromR8( |
| dblIn: DOUBLE, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromDate( |
| dateIn: DATE, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromI1( |
| cIn: CHAR, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromUI2( |
| uiIn: USHORT, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromUI4( |
| ulIn: ULONG, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromUI8( |
| ui64In: ULONG64, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI2FromDec( |
| pdecIn: *const DECIMAL, |
| psOut: *mut SHORT, |
| ); |
| pub fn VarI4FromUI1( |
| bIn: BYTE, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromI2( |
| sIn: SHORT, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromI8( |
| i64In: LONG64, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromR4( |
| fltIn: FLOAT, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromR8( |
| dblIn: DOUBLE, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromDate( |
| dateIn: DATE, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromI1( |
| cIn: CHAR, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromUI2( |
| uiIn: USHORT, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromUI4( |
| ulIn: ULONG, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromUI8( |
| ui64In: ULONG64, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI4FromDec( |
| pdecIn: *const DECIMAL, |
| plOut: *mut LONG, |
| ); |
| pub fn VarI8FromUI1( |
| bIn: BYTE, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromI2( |
| sIn: SHORT, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromR4( |
| fltIn: FLOAT, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromR8( |
| dblIn: DOUBLE, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromDate( |
| dateIn: DATE, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromI1( |
| cIn: CHAR, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromUI2( |
| uiIn: USHORT, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromUI4( |
| ulIn: ULONG, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromUI8( |
| ui64In: ULONG64, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarI8FromDec( |
| pdecIn: *const DECIMAL, |
| pi64Out: *mut LONG64, |
| ); |
| pub fn VarR4FromUI1( |
| bIn: BYTE, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromI2( |
| sIn: SHORT, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromI4( |
| lIn: LONG, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromI8( |
| i64In: LONG64, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromR8( |
| dblIn: DOUBLE, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromDate( |
| dateIn: DATE, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromI1( |
| cIn: CHAR, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromUI2( |
| uiIn: USHORT, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromUI4( |
| ulIn: ULONG, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromUI8( |
| ui64In: ULONG64, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR4FromDec( |
| pdecIn: *const DECIMAL, |
| pfltOut: *mut FLOAT, |
| ); |
| pub fn VarR8FromUI1( |
| bIn: BYTE, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromI2( |
| sIn: SHORT, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromI4( |
| lIn: LONG, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromI8( |
| i64In: LONG64, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromR4( |
| fltIn: FLOAT, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromDate( |
| dateIn: DATE, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromI1( |
| cIn: CHAR, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromUI2( |
| uiIn: USHORT, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromUI4( |
| ulIn: ULONG, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromUI8( |
| ui64In: ULONG64, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarR8FromDec( |
| pdecIn: *const DECIMAL, |
| pdblOut: *mut DOUBLE, |
| ); |
| pub fn VarDateFromUI1( |
| bIn: BYTE, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromI2( |
| sIn: SHORT, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromI4( |
| lIn: LONG, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromI8( |
| i64In: LONG64, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromR4( |
| fltIn: FLOAT, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromR8( |
| dblIn: DOUBLE, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromI1( |
| cIn: CHAR, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromUI2( |
| uiIn: USHORT, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromUI4( |
| ulIn: ULONG, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromUI8( |
| ui64In: ULONG64, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarDateFromDec( |
| pdecIn: *const DECIMAL, |
| pdateOut: *mut DATE, |
| ); |
| pub fn VarBstrFromUI1( |
| bVal: BYTE, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromI2( |
| iVal: SHORT, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromI4( |
| lIn: LONG, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromI8( |
| i64In: LONG64, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromR4( |
| fltIn: FLOAT, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromR8( |
| dblIn: DOUBLE, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromDate( |
| dateIn: DATE, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromI1( |
| cIn: CHAR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromUI2( |
| uiIn: USHORT, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromUI4( |
| ulIn: ULONG, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromUI8( |
| ui64In: ULONG64, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarBstrFromDec( |
| pdecIn: *const DECIMAL, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pbstrOut: *mut BSTR, |
| ); |
| pub fn VarUI2FromUI1( |
| bIn: BYTE, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromI2( |
| uiIn: SHORT, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromI4( |
| lIn: LONG, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromI8( |
| i64In: LONG64, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromR4( |
| fltIn: FLOAT, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromR8( |
| dblIn: DOUBLE, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromDate( |
| dateIn: DATE, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromI1( |
| cIn: CHAR, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromUI4( |
| ulIn: ULONG, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromUI8( |
| i64In: ULONG64, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI2FromDec( |
| pdecIn: *const DECIMAL, |
| puiOut: *mut USHORT, |
| ); |
| pub fn VarUI4FromUI1( |
| bIn: BYTE, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromI2( |
| uiIn: SHORT, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromI4( |
| lIn: LONG, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromI8( |
| i64In: LONG64, |
| plOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromR4( |
| fltIn: FLOAT, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromR8( |
| dblIn: DOUBLE, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromDate( |
| dateIn: DATE, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromI1( |
| cIn: CHAR, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromUI2( |
| uiIn: USHORT, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromUI8( |
| ui64In: ULONG64, |
| plOut: *mut ULONG, |
| ); |
| pub fn VarUI4FromDec( |
| pdecIn: *const DECIMAL, |
| pulOut: *mut ULONG, |
| ); |
| pub fn VarUI8FromUI1( |
| bIn: BYTE, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromI2( |
| sIn: SHORT, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromI4( |
| lIn: LONG, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromI8( |
| ui64In: LONG64, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromR4( |
| fltIn: FLOAT, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromR8( |
| dblIn: DOUBLE, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromDate( |
| dateIn: DATE, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromI1( |
| cIn: CHAR, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromUI2( |
| uiIn: USHORT, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromUI4( |
| ulIn: ULONG, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarUI8FromDec( |
| pdecIn: *const DECIMAL, |
| pi64Out: *mut ULONG64, |
| ); |
| pub fn VarDecFromUI1( |
| bIn: BYTE, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromI2( |
| uiIn: SHORT, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromI4( |
| lIn: LONG, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromI8( |
| i64In: LONG64, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromR4( |
| fltIn: FLOAT, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromR8( |
| dblIn: DOUBLE, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromDate( |
| dateIn: DATE, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromStr( |
| strIn: LPCOLESTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromI1( |
| cIn: CHAR, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromUI2( |
| uiIn: USHORT, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromUI4( |
| ulIn: ULONG, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecFromUI8( |
| ui64In: ULONG64, |
| pdecOut: *mut DECIMAL, |
| ); |
| pub fn VarDecAdd( |
| pdecLeft: LPDECIMAL, |
| pdecRight: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecDiv( |
| pdecLeft: LPDECIMAL, |
| pdecRight: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecMul( |
| pdecLeft: LPDECIMAL, |
| pdecRight: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecSub( |
| pdecLeft: LPDECIMAL, |
| pdecRight: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecAbs( |
| pdecIn: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecFix( |
| pdecIn: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecInt( |
| pdecIn: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecNeg( |
| pdecIn: LPDECIMAL, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecRound( |
| pdecIn: LPDECIMAL, |
| cDecimals: c_int, |
| pdecResult: LPDECIMAL, |
| ); |
| pub fn VarDecCmp( |
| pdecLeft: LPDECIMAL, |
| pdecRight: LPDECIMAL, |
| ); |
| pub fn VarDecCmpR8( |
| pdecLeft: LPDECIMAL, |
| dblRight: c_double, |
| ); |
| pub fn VarBstrCat( |
| bstrLeft: BSTR, |
| bstrRight: BSTR, |
| pbstrResult: LPBSTR, |
| ); |
| pub fn VarBstrCmp( |
| bstrLeft: BSTR, |
| bstrRight: BSTR, |
| lcid: LCID, |
| dwFlags: ULONG, |
| ); |
| pub fn VarR8Pow( |
| dblLeft: c_double, |
| dblRight: c_double, |
| pdblResult: *mut c_double, |
| ); |
| pub fn VarR4CmpR8( |
| fltLeft: c_float, |
| dblRight: c_double, |
| ); |
| pub fn VarR8Round( |
| dblIn: c_double, |
| cDecimals: c_int, |
| pdblResult: *mut c_double, |
| ); |
| pub fn GetAltMonthNames( |
| lcid: LCID, |
| prgp: *mut LPOLESTR, |
| ); |
| } |
| pub type DISPID = LONG; |
| pub type MEMBERID = DISPID; |
| pub const MEMBERID_NIL: MEMBERID = DISPID_UNKNOWN; |
| pub const DISPATCH_METHOD: WORD = 0x1; |
| pub const DISPATCH_PROPERTYGET: WORD = 0x2; |
| pub const DISPATCH_PROPERTYPUT: WORD = 0x4; |
| pub const DISPATCH_PROPERTYPUTREF: WORD = 0x8; |
| ENUM!{enum REGKIND { |
| REGKIND_DEFAULT = 0, |
| REGKIND_REGISTER, |
| REGKIND_NONE, |
| }} |
| extern "system" { |
| pub fn LoadTypeLibEx( |
| szFile: LPCOLESTR, |
| regkind: REGKIND, |
| pptlib: *mut *mut ITypeLib, |
| ) -> HRESULT; |
| pub fn RevokeActiveObject( |
| dwRegister: DWORD, |
| pvReserved: *mut c_void, |
| ); |
| pub fn SetErrorInfo( |
| dwReserved: ULONG, |
| perrinfo: *mut IErrorInfo, |
| ) -> HRESULT; |
| pub fn GetErrorInfo( |
| dwReserved: ULONG, |
| pperrinfo: *mut *mut IErrorInfo, |
| ) -> HRESULT; |
| pub fn CreateErrorInfo( |
| pperrinfo: *mut *mut ICreateErrorInfo, |
| ) -> HRESULT; |
| pub fn OaBuildVersion() -> ULONG; |
| pub fn OaEnablePerUserTLibRegistration(); |
| } |