I'm looking through the Windows 8.1 SDK and in UnknownBase.h I'm seeing things like
typedef interface IUnknown IUnknown;
I've never seen this interface
keyword before. Note that this is very definitely a .h
header, processed by cl.exe
. It's not IDL file, and it's not processed by midl.exe
.
I found this online: http://msdn.microsoft.com/en-us/library/50h7kwtb.aspx
But __interface
is not the same as interface
Can anyone clue me in here?
Microsoft has some compiler-specific extensions like the one you linked but interface
shouldn't be a native C++ compiler-specific keyword but rather a define which substitutes something (in BaseTyps.h it used to be defined as follows)
# define interface struct
Link here
If you want to verify this do a grep for such a definition and you should find something similar.
References: http://social.msdn.microsoft.com/forums/vstudio/en-US/06bf1dea-1d20-4ec3-b9a1-3d673d7fcd8d/what-is-the-interface-keyword-in-native-c