1 #ifndef IVersionable_h__
2 #define IVersionable_h__ 1
39 template<
typename requestedInterface >
41 pvoid ptr = GetInterfacePointer( requestedInterface::GetInterfaceID(),
42 requestedInterface::GetInterfaceVersion() );
43 return static_cast< requestedInterface *
>( ptr );
52 template<
typename requestedInterface >
54 return const_cast< IVersionable *
>( this )->GetInterfacePointer< requestedInterface >();
60 virtual pvoid APICALL GetInterfacePointer(
uint64 interfaceID,
uint32 interfaceVersion ) = 0;
65 #ifdef FRIEND_CLASS_DECLARATION
66 FRIEND_CLASS_DECLARATION();
73 #endif // IVersionable_h__