00001 #ifndef _H_IID_H_
00002 #define _H_IID_H_ 1
00003
00004
00005 #include <string.h>
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifdef H_NO_IID
00023
00024 #define H_IID_IMPLEMENT( an_iid_name )
00025 #define H_IID_IS_EQUAL( x, y ) 1
00026 #define H_IID_IS_EQUAL0( x, y ) 1
00027
00028 #else
00029
00030 typedef const char * H_IID;
00031
00032 #define H_IID_IMPLEMENT( an_iid_name ) \
00033 virtual H_IID _class_name() const { return #an_iid_name; }
00034
00035 #define H_IID_IS_EQUAL( x, y ) \
00036 ( strcmp( x._class_name(), y._class_name() ) == 0 )
00037
00038 #define H_IID_IS_EQUAL0( x, y ) \
00039 ( strcmp( x, y ) == 0 )
00040
00041 #endif // H_NO_IID
00042
00043 #endif // _H_IID_H_
00044