On 11/02/12 10:49, Alistair Leslie-Hughes wrote: +static LONG create_hash_val(BSTR name) +{ + LONG hash = 0; + int len = SysStringLen(name); The hash should be unsigned.
+ if(V_VT(Key) != VT_R8) + hr = VariantChangeType(&real, Key, 0, VT_R8); I'm not sure if you want to use VariantChangeType here. I guess it's better to support few basic types and print a fixme message if type is not supported.
+ if(!isinf(fval)) Probably NaN is handled differently as well. port.h header is missing.
+ V_VT(&key) = VT_R8; + V_R8(&key) = INFINITE; You can't use INFINITE here.