// Type for EP_MiscGetWatermark
typedef struct TWMContent {

    int   WMType;
    char* Name;
    int   NameLen;
    char* Text;
    int   TextLen;
    char* FileName;
    int   FileNameLen;
    char* AFile;
    int   AFileLen;

} TWMContent, *PWMContent;

// Enigma Registration API
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegSaveKey( char* Name, char* Key );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegLoadKey( char** Name, char** Key );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegCheckKey( char* Name, char* Key );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegDeleteKey();
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegLoadAndCheckKey();
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegCheckAndSaveKey( char* Name, char* Key );
extern "C" __declspec( dllimport ) __stdcall unsigned char EP_RegHardwareID();
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegKeyCreationDate( WORD* Year, WORD* Month, WORD* Day );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_RegKeyExpirationDate( WORD* Year, WORD* Month, WORD* Day );

// Enigma Trial API
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialExecutions( DWORD* Total, DWORD* Left );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialDays( DWORD* Total, DWORD* Left );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialExpirationDate( WORD* Year, WORD* Month, WORD* Day );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialDateTillDate( WORD* StartYear, WORD* StartMonth, WORD* StartDay, WORD* EndYear, WORD* EndMonth, WORD* EndDay );
extern "C" __declspec( dllimport ) __stdcall BOOL EP_TrialExecutionTime( DWORD* Total, DWORD* Left );

// Enigma Misc API
extern "C" __declspec( dllexport ) __stdcall int EP_MiscGetWatermark( int ID, PWMContent WM );

// Enigma Protection API
extern "C" __declspec( dllimport ) __stdcall int EP_ProtectedStringByID( int Total, char* Left, int Len);
extern "C" __declspec( dllimport ) __stdcall int EP_ProtectedStringByKey( char* Key, char* Left, int Len);
