Within MEDMEM_GenDriver.hxx : /* Modify the following line to add a new driver type (step 1) */ typedef enum { MED_DRIVER = 0, GIBI_DRIVER = 1, VTK_DRIVER = 254, NO_DRIVER = 255 } driverTypes; Note : MED Drivers with no Mesh or Field drivers must have a number of 255-i ! Within MEDMEM_Object.hxx // Add your personnal driver header & line (step 2) // At least one line must exist // You have to respect the syntax. #include "MEDMEM_TypeObjectDriver.hxx" friend class MED_OBJECT_RDONLY_DRIVER; friend class MED_OBJECT_WRONLY_DRIVER; friend class MED_OBJECT_RDWR_DRIVER; // Add a similar line for your personnal driver (step 3) static INSTANCE_DE inst_med ; Within MEDMEM_Object.cxx // Add a similar line for your personnal driver (step 3) static INSTANCE_DE inst_med ; // Add your own driver in the driver list (step 4) // Note the list must be coherent with the driver type list defined in MEDMEM_DRIVER.hxx. const OBJECT::INSTANCE * const OBJECT::instances[] = { &OBJECT::inst_med } ; Within MEDMEM_TypeObjectDriver.hxx (ypu can use MEDMEM_TypeObjectDriver.hxx as a pattern for your driver !) // Faux : you have to create at least create a TYPE_OBJECT_RDWR_DRIVER even if it only throw an exception // Faux : because RDONLY or WRONLY doesn't exists. Whatever is your driver : RDONLY,WRONLY,RDWR, you must inplement the write & read methods ( even if it only throw an exception) TODO : Gerer l'appartenance d'un driver type 3 Within l'objet Within les méthodes addDriver : driver = instances[driverType]->run(fileName, this) ; --> Il faut vérifier que le numéro auquel on accède existe !