includes: Fix IsEqualPropertyKey definitions

Maarten Lankhorst m.b.lankhorst at gmail.com
Mon Feb 22 11:17:58 CST 2010


Hi AJ,

2010/2/22 Alexandre Julliard <julliard at winehq.org>:
> Maarten Lankhorst <m.b.lankhorst at gmail.com> writes:
>
>> @@ -48,7 +48,11 @@
>>  #endif
>>
>>  #ifndef IsEqualPropertyKey
>> +#ifdef __cplusplus
>>  #define IsEqualPropertyKey(a,b) (((a).pid == (b).pid) && IsEqualIID((a).fmtid,(b).fmtid))
>> +#else
>> +#define IsEqualPropertyKey(a,b) (((a)->pid == (b)->pid) && IsEqualIID(&(a)->fmtid,&(b)->fmtid))
>> +#endif
>
> This doesn't match the PSDK. Where does this come from?
In C, REFPROPERTYKEY becomes PROPERTYKEY*, in C++ it's PROPERTYKEY &,
so IsEqualPropertyKey will need a different macro. The psdk doesn't
define this properly for the C case, but since I need it in C code I
need it defined, unless you want me to do IsEqualPropertyKey(*key1,
*key2), but even that wouldn't work because of the IsEqualIID..

Cheers,
Maarten.



More information about the wine-devel mailing list