コード例 #1
0
ファイル: hook_events.cpp プロジェクト: 0xmono/miranda-ng
int ModulesLoaded(WPARAM wParam, LPARAM lParam)
{
    LPCTSTR ptszEmptySting = _T("");

    // Заполняем конфигурационные строки из базы. Если их там нет - генерируем.
    for (int i = 0; i < bLayNum; i++) {
        LPTSTR ptszCurrLayout = GenerateLayoutString(hklLayouts[i]);
        LPSTR ptszTemp = GetNameOfLayout(hklLayouts[i]);
        ptrT tszValue(db_get_tsa(NULL, ModuleName, ptszTemp));
        if (tszValue == 0)
            ptszLayStrings[i] = ptszCurrLayout;
        else if (!_tcscmp(tszValue, ptszEmptySting))
            ptszLayStrings[i] = ptszCurrLayout;
        else {
            ptszLayStrings[i] = tszValue.detouch();
            if (!_tcscmp(ptszCurrLayout, ptszLayStrings[i]))
                db_unset(NULL, ModuleName, ptszTemp);
            mir_free(ptszCurrLayout);
        }
        mir_free(ptszTemp);
    }

    // Прочитаем основные настройки
    ReadMainOptions();

    // Прочитаем настройки попапов
    ReadPopupOptions();

    // Зарегим звук
    SkinAddNewSoundEx(SND_ChangeLayout, ModuleName, LPGEN("Changing Layout"));
    SkinAddNewSoundEx(SND_ChangeCase, ModuleName, LPGEN("Changing Case"));

    // Хук на нажатие клавиши
    kbHook_All = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)Keyboard_Hook, NULL, GetCurrentThreadId());

    hChangeLayout = CreateServiceFunction(MS_CKL_CHANGELAYOUT, APIChangeLayout);
    hGetLayoutOfText = CreateServiceFunction(MS_CKL_GETLAYOUTOFTEXT, APIGetLayoutOfText);
    hChangeTextLayout = CreateServiceFunction(MS_CKL_CHANGETEXTLAYOUT, APIChangeTextLayout);

    // IcoLib support
    Icon_Register(hInst, ModuleName, iconList, SIZEOF(iconList));

    HookEvent(ME_SKIN2_ICONSCHANGED, OnIconsChanged);

    OnIconsChanged(0, 0);
    RegPopupActions();

    db_set_dw(NULL, ModuleName, "CurrentVer", PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM));
    return 0;
}
コード例 #2
0
ファイル: main.cpp プロジェクト: tweimer/miranda-ng
int CMPlugin::Load()
{
	memset(hklLayouts, 0, sizeof(hklLayouts));
	bLayNum = GetKeyboardLayoutList(20, hklLayouts);
	if (bLayNum < 2)
		return 1;

	HookEvent(ME_OPT_INITIALISE, OnOptionsInitialise);
	HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);

	// IcoLib support
	g_plugin.registerIcon(MODULENAME, iconList);

	HookEvent(ME_SKIN2_ICONSCHANGED, OnIconsChanged);

	OnIconsChanged(0, 0);

	return 0;
}