예제 #1
0
BOOL WINAPI ImeSelect(HIMC hIMC,BOOL fSelect)
{
	MyLoadCilentDLLFun();   // 在切换输入法时判断是否需要加载客户DLL

    if (!hIMC) {
        return (FALSE);
    }
	if (fSelect==TRUE && LoadNextWhenActive!=0)
	{
		//ActivateKeyboardLayout((HKL)HKL_NEXT,0);  // 不要在该接口中使用此函数切换到下一个输入法,否则函数返回时输入法又会切换回去
		MyGenerateMessage(hIMC,WM_INPUTLANGCHANGEREQUEST,1,(LPARAM)HKL_NEXT);
	}
    return TRUE;
}
예제 #2
0
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
   switch(fdwReason)
    {
      case DLL_PROCESS_ATTACH:
		  if(!ImeClass_Register(hinstDLL)) return FALSE;   // DLL加载时注册必须的UI基本窗口类
		  MyLoadCilentDLLFun();
		  break;
	  case DLL_THREAD_ATTACH:
		 break;
	  case DLL_THREAD_DETACH:
		 break;
      case DLL_PROCESS_DETACH:
		  ImeClass_Unregister(hinstDLL);  // DLL退出时注销注册的窗口类
		  if (CilentDLL!=NULL && OnloadDllWhenExit==0)
		  {
			  FreeLibrary(CilentDLL);    // 输入法退出时卸载客户DLL
		  }
        break;
      default:
        break;
    }
	return true;
}