Platform SDK: Exchange Server

HrGetExportVector

The HrGetExportVector function simply returns a list of the other entry points in the DLL. The HrGetExportVector function can simply return the address of a static CONVDLLVECT structure, such as:

static CONVDLLVECT sExportedFuncs = 
{ 
    1,                       // version number 1 
    HrCnvQueryCapability,    // address of query capability function
    HrCnvConvert             // address of translation function
}; 

HrGetExportVector is the only function in the DLL that must be an entry point. The other functions must exist in the DLL, but do not have to be entry points because pointers to them are returned by HrGetExportVector.

Note that the entry point names in the .DEF file for a translation DLL are not required to have any particular value. Because the translation framework uses Windows NT Registry keys to locate the entry point names for translations, you can put multiple translations in a single translation DLL. Each translation in a DLL consists of an entry point which is the HrGetExportVector function for that translation, plus the corresponding HrCnvQueryCapability and HrCnvConvert functions, although clearly there is no requirement that your implementations of those functions use those function names. See Installing a Translation DLL for details about how Windows NT Registry keys are used to specify the entry point names for the HrGetExportVector functions within a translation DLL.

The IPM_IN and IPM_OUT sample translation DLLs, located in the \SAMPLES\DbMsg\EXCHANGE directory, contain examples of HrGetExportVector functions, as well as their definitions in the .DEF files for the DLLs.