7#ifndef MI_BASE_INTERFACE_DECLARE_H 
    8#define MI_BASE_INTERFACE_DECLARE_H 
   41    , 
class I = IInterface>
 
   46    typedef Interface_declare<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,I> Self;
 
   49    typedef Uuid_t<id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11> IID;
 
   59        return I::compare_iid( iid);
 
   71        const Uuid& interface_id)
 
   73        if( interface_id == 
IID()) {
 
   74            const Self* self = 
static_cast<const Self *
>( iinterface);
 
   78        return I::get_interface_static( iinterface, interface_id);
 
   87    static IInterface* get_interface_static(
 
   88        IInterface* iinterface,
 
   89        const Uuid& interface_id)
 
   91        if( interface_id == 
IID()) {
 
   92            Self* self = 
static_cast<Self*
>( iinterface);
 
   96        return I::get_interface_static( iinterface, interface_id);
 
The basic extensible interface.
Definition: iinterface.h:103
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
Class template for a compile-time representation of universally unique identifiers (UUIDs or GUIDs).
Definition: uuid.h:122
Uuid_t< id1, ... > IID
Declares the interface ID (IID) of this interface.
Definition: interface_declare.h:49
Interface_declare< id1, ... > Self
Own type.
Definition: interface_declare.h:46
static bool compare_iid(const Uuid &iid)
Compares the interface ID iid against the interface ID of this interface and of its ancestors.
Definition: interface_declare.h:56
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
unsigned char Uint8
8-bit unsigned integer.
Definition: types.h:47
unsigned short Uint16
16-bit unsigned integer.
Definition: types.h:48
The basic extensible interface.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: math.h:22
A 128 bit representation of a universally unique identifier (UUID or GUID).
Definition: uuid.h:26
A 128 bit representation of a universally unique identifier (UUID or GUID).