- Make IsEqualGUID typesafe for c++

[SHELL32]
- Properly call IsEqualIID in _ILIsControlPanel. Should fix CORE-8891.

svn path=/trunk/; revision=66938
This commit is contained in:
Giannis Adamopoulos 2015-03-28 21:11:42 +00:00
parent 3b87756ab2
commit 747bbec4bb
2 changed files with 8 additions and 4 deletions

View file

@ -332,12 +332,12 @@ HRESULT WINAPI CDrivesFolder::CreateViewObject(HWND hwndOwner, REFIID riid, LPVO
static BOOL _ILIsControlPanel(LPCITEMIDLIST pidl)
{
IID *iid = _ILGetGUIDPointer(pidl);
GUID *guid = _ILGetGUIDPointer(pidl);
TRACE("(%p)\n", pidl);
if (iid)
return IsEqualIID(iid, CLSID_ControlPanel);
if (guid)
return IsEqualIID(*guid, CLSID_ControlPanel);
return FALSE;
}

View file

@ -126,7 +126,11 @@ __inline int InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2)
((unsigned long *) &rguid1)[2] == ((unsigned long *) &rguid2)[2] &&
((unsigned long *) &rguid1)[3] == ((unsigned long *) &rguid2)[3]);
}
#define IsEqualGUID(rguid1, rguid2) (!memcmp(&(rguid1), &(rguid2), sizeof(GUID)))
__inline int IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
{
return !memcmp(&rguid1, &rguid2, sizeof(GUID));
}
#else /* defined(__cplusplus) && !defined(CINTERFACE) */