//+--------------------------------------------------------------------
//
//  Author: AdamEd
//  Date:   October 1998
//
//  Implementation of language support
//  in the Class Store interface module
//
//
//---------------------------------------------------------------------


#include "cstore.hxx"

LANGID gSystemLangId;


//+--------------------------------------------------------------------
//
// InitializeLanguageSupport
//
// Routine Description: 
//
//     Called at dll init to initialize globals necessary for
//     language support
//
// Arguments:
//
//     None.
//
// Return Value:
//
//     none
//---------------------------------------------------------------------
void InitializeLanguageSupport()
{
    gSystemLangId = GetSystemDefaultLangID();
}


DWORD GetLanguagePriority(LANGID PackageLangId, DWORD dwActFlags)
{
    //
    // If the activation flags indicate that we should always
    // match regardless of language, this package gets the highest
    // precedence
    //
    if (dwActFlags & ACTFLG_IgnoreLanguage) {
        return PRI_LANG_ALWAYSMATCH;
    }

    //
    // The ignore language flag was not specified by the admin,
    // so now we must examine the language id of the package to
    // determine its desirability.
    //

    //
    // First, match against the system locale's language --
    // exact matches get highest priority
    //
    if (gSystemLangId == PackageLangId)
    {
        return PRI_LANG_SYSTEMLOCALE;
    }

    //
    // Try English -- English should function on all systems
    //
    if (LANG_ENGLISH == PRIMARYLANGID(PackageLangId))
    {
        return PRI_LANG_ENGLISH;
    }

    //
    // If we couldn't get better matches, accept language neutral
    // packages as a last resort
    //
    if (LANG_NEUTRAL == PackageLangId) {
        return PRI_LANG_NEUTRAL;
    }

    //
    // We couldn't find a match -- return the smallest priority
    //

    return 0;
}







