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.