internal unsafe Normalization(NormalizationForm form, String strDataFile)
{
// Remember which form we are
this.normalizationForm = form;
// Load the DLL
if (!nativeLoadNormalizationDLL())
{
// Unable to load the normalization DLL!
throw new ArgumentException(
Environment.GetResourceString("Argument_InvalidNormalizationForm"));
}
// Tell the DLL where to find our data
byte* pTables = GlobalizationAssembly.GetGlobalizationResourceBytePtr(
typeof(Normalization).Assembly, strDataFile);
if (pTables == null)
{
// Unable to load the specified normalizationForm,
// tables not loaded from file
throw new ArgumentException(
Environment.GetResourceString("Argument_InvalidNormalizationForm"));
}
// All we have to do is let the .dll know how to load it, then
// we can ignore the returned pointer.
byte* objNorm = nativeNormalizationInitNormalization(form, pTables);
if (objNorm == null)
{
// Unable to load the specified normalizationForm
// native library class not initialized correctly
throw new OutOfMemoryException(
Environment.GetResourceString("Arg_OutOfMemoryException"));
}
}