Hermes has to be fully initialised before any conversion routines can be called. Otherwise error codes will be returned. All initialisation routines are reference counted, so feel free to call them repeatedly, they will only be initialised once (or if you closed it down and open it again).
Hermes_Init will initialise Hermes and return a non-zero status code on success. In detail, this is what happens:
Hermes_Done will decrease the reference count of HERMES and if it goes down to zero, it will deinitialise the library. That means it will get rid of all the converter routines, etc.
If the reference count ever falls below zero, this routine will return an error because you've done something wrong.