This was the process necessary to create the specialization:
- Investigate ALL the uses of
HashKey
forGUID
- Check what is using or expecting
The conclusion was that the original version in MFC 6.0 used the first element of the GUID
structure
(with a very very nasty conversion). The first element of the GUID
is a long
type so the casting was all right.
Thus we create the following specialization IN THE PROJECT and not in the MFC libraries:
template<>
AFX_INLINE UINT AFXAPI HashKey<GUID>(GUID key)
{
return key.Data1>>4;
}
Which is how the HashKey
is being used in the project.