#ifndef ZNICUPDATE_EXPORTS_H
#define ZNICUPDATE_EXPORTS_H 4477

typedef enum _DYNDNS_RETCODE {
	RETCODE_UNKNOWN = -1,
	RETCODE_SUCCESS = 0,
	RETCODE_BADAUTH,
	RETCODE_BADAGENT,
	RETCODE_NOT_DONATOR,
	RETCODE_NOT_FQDN,
	RETCODE_NO_HOST,
	RETCODE_NOT_YOURS,
	RETCODE_NUMHOST,
	RETCODE_ABUSE,
	RETCODE_DNSERR,
	RETCODE_911,
	RETCODE_MEMFULL_ERR,
	RETCODE_NOT_CONFIGURED
} DYNDNS_RETCODE;

// Démarrage/Arrêt de la mise à jour auto
int ZNICUpdateAuto(void);

// Thread de mise à jour auto
DWORD WINAPI ZNICUpdateAutoThread(LPVOID dummy);

// Fait la mise à jour d'un sous domaine de zmws.net
int ZNICUpdate(void);

// Fait la mise à jour d'un sous domaine de zmws.net sans interface
int ZNICUpdateNoUI(void);

// Informe la dll si elle doit ou non écrire la config lors du déchargement
void ZNICUpdateWriteConfigFileOnUnload(BOOL WriteIt);

// Présente le dialogue de configuration
int ZNICUpdateOptionsDialog(void);

// Configure ZazouNICUpdate
int ZNICUpdateConfigure(const char* domain, const char* login, const char* passwd);

// Récupère l'IP courante
unsigned long ZNICUpdateGetCurrentIP (void);

// Récupère l'IP externe connue
unsigned long ZNICUpdateGetLastIP (void);

// Récupère l'heure de dernière mise à jour sur serveur
unsigned long ZNICUpdateGetLastIPAge (void);

// Récupère le dernier message du serveur
const char* ZNICUpdateGetServerMessage (void);

// Récupère le sous domaine actuel
const char* ZNICUpdateGetConfiguredDomain (void);

// Récupère le login actuel
const char* ZNICUpdateGetConfiguredLogin (void);

// Récupère le mot de passe actuel
const char* ZNICUpdateGetConfiguredPassword (void);

#endif