Quote Originally Posted by Дмитро View Post

Code:
typedef GUID CLSID;
typedef CLSID *LPCLSID;
typedef IID *LPIID;
typedef IID *REFIID;
typedef CLSID *REFCLSID;
typedef GUID FMTID;
typedef FMTID *REFFMTID;
typedef unsigned long error_status_t;
#define uuid_t UUID
typedef unsigned long PROPID;

#ifndef _REFGUID_DEFINED
#if defined (__cplusplus) && !defined (CINTERFACE)
#define REFGUID const GUID&
#define REFIID const IID&
#define REFCLSID const CLSID&
#define REFFMTID const FMTID&
#else
#define REFGUID const GUID* const
#define REFIID const IID* const
#define REFCLSID const CLSID* const
#define REFFMTID const FMTID* const
#endif
#define _REFGUID_DEFINED
#define _REFIID_DEFINED
#define _REFCLSID_DEFINED
#define _REFFMTID_DEFINED
#endif
#ifndef GUID_SECTION

Here is part of the basetyps.h file

By the way, I do not understand this mutual macros ... and all one if I thought, Yab did not know what to rule.

Also, please put in the effort to spell things correctly. "Shelpi.h" should be "Shellapi.h". "Refiid" should be "REFIID".
Also, if you format your code right, it is, beautiful, easy to read, and appealing the eyes.