Initializing DLL extensions

INVOICES programs usually use DLL extensions internally, so normally you do not need to use this feature.

When a DLL extension is loaded, then the C function specified in the DLLEntryPoint setting in Eilocal.ini is called.

The C function must have the signature shown below. The function must return non-zero if successful, or 0 if there was an error.

#pragma pack(8)

typedef struct

{

DWORD dwStructSize; // Size, in bytes, of the structure

DWORD dwEHVersion; // INVOICES application version

DWORD dwEHFamily; // Product family, from the EEH_AppFamily enum

DWORD dwEHApplicationID; // Application identifier, from the EEH_AppID enum, or product family specific

void *pApplicationObject; // Pointer to INVOICES C++ application object

LPWSTR szIniFile; // Name of Eilocal.ini file, in UNICODE

LPWSTR szIniSection; // Name of section in Eilocal.ini file, in UNICODE

DWORD dwPluginInfo; // INVOICES plugin-specific information

void *pPluginData; // Pointer to INVOICES plugin-specific information

} EHC_DLLPluginEnv_t;

extern "C" DWORD EHPluginEntry( EHC_DLLPluginEnv_t *pEnvironment );

Initializing INVOICES extensions

Using an ActiveX object as an INVOICES extension