Thanks for commenting~2014-09-19 2:09 GMT+08:00 Nikolay Sivov <nsivov@codeweavers.com>:
On 09/18/2014 08:46 PM, Shuai Meng wrote:
+ LONG total, color[3];//color[0] for red, color[1] for green, color[2] for blue.
This could be just 'int', as you use to_int().
static HRESULT return_int(VARIANT *res, int val)
{
- if((short)val == val)
- return return_short(res, val);
-
That's a questionable thing to do as it affects all other places where this helper is used.You are right, but I will check that whether all the functions who call to_int() use these codes, I think these are unnecessary, cause we should use to_int and to_short seperately in order to get return values of different types, i.e. VT_I2 and VT_I4, especially for the smaller numbers such as 0.
+ if(color[i] > 255)
+ color[i] = 255;
This needs a test too.
Yeah, good idea.+ total = color[0] + 256 * color[1] + 256 * 256 * color[2];
RGB() macro does the same thing.
I don't quite understand this line..will you explain it in detail please?