Пример #1
0
// Try to load a message DLL from a location, in a subdirectory of mine given by the LANGID
// passed in (or the same directory if -1). 
static HINSTANCE FindMessageDll(LANGID langid)
{

    WCHAR path[MAX_PATH];
    WCHAR * pEnd;

    if (!PAL_GetPALDirectoryW(path, lengthof(path)))
        return 0;

    pEnd = path + wcslen(path);

    // Append language ID
    if (langid != (LANGID)-1) {
        pEnd += _snwprintf(pEnd, lengthof(path) - (pEnd - path) - 1, L"%d\\", langid);
    }

    // Append message DLL name.
    if ((int) lengthof(MESSAGE_DLL) + pEnd - path > (int) lengthof(path) - 1)
        return 0;
    wcscpy(pEnd, MESSAGE_DLL);

    // Try to load it.
    return PAL_LoadSatelliteResourceW(path);

}
Пример #2
0
static HSATELLITE PAL_GetSatelliteResource()
{
    WCHAR szSatellitePath[MAX_PATH+1];
    WCHAR* pwzFileName;

    lstrcpyW(szSatellitePath, g_FusionDllPath);
    pwzFileName = PathFindFileName(szSatellitePath);
    ASSERT(pwzFileName);
    *pwzFileName = '\0';

    StrCatBuff(szSatellitePath, L"fusion.satellite", MAX_PATH);

    return PAL_LoadSatelliteResourceW(szSatellitePath);
}
Пример #3
0
static HSATELLITE LoadSatelliteResource()
{
    WCHAR path[MAX_PATH];
    WCHAR *pEnd, *pSlashEnd;

    if (!GetModuleFileNameW(NULL, path, MAX_PATH))
        return 0;

    pEnd = wcsrchr(path, L'\\');
    pSlashEnd = wcsrchr(path, L'/');
    if (pSlashEnd > pEnd)
        pEnd = pSlashEnd;
        
    if (!pEnd)
        return 0;
    ++pEnd;  // point just beyond.

    // Append message DLL name if it fits.
    if ((int) sizeof(MESSAGE_DLL) + (pEnd - path) * sizeof(WCHAR) > (int) sizeof(path) - 1)
        return 0;
    wcscpy(pEnd, MESSAGE_DLL);

    return PAL_LoadSatelliteResourceW(path);
}