Hi,
In wine source code, NULL is defined as 0 in file dlls/windowscodecs/ungif.h, line 66. I have tried to write like this:
1260 if(V_VT(arg) == VT_NULL) {
1261 V_VT(res) = VT_NULL;
1262 V_NULL(res) = NULL;
1263 }
1264 else {
1265 hres = to_double(arg, &v);
1266 if (FAILED(hres))
1267 return hres;
1268
1269 if(res) {
1270 V_VT(res) = VT_R8;
1271 V_R8(res) = v >= 0 ? v : -v;
1272 }
1273 }
1274 return S_OK;
But apparently this makes no sense: V_NULL is defined in dlls/oleaut32/tests/vartest.c, not along with V_I2 in include/oleauto.h; I don't know how give res a "Null" value in C.