⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputmethod.h

📁 简单的输入法 各位多多指教 简单的输入法 各位多多指教
💻 H
字号:
// InputMethod.h: interface for the CInputMethod class.
//
//////////////////////////////////////////////////////////////////////

#ifndef IMPUTMETHOD_H
#define IMPUTMETHOD_H

#include "stdafx.h"
#include "sip.h"
#include "IMWnd.h"


//-----------------------------------------------------------------
class CInputMethod : public IInputMethod
{
public:

	//IUnknown methods
	STDMETHODIMP_(ULONG) Release(THIS);
	STDMETHODIMP_(ULONG) AddRef(THIS);
	STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID *ppv);

	//IInputMethod
	HRESULT STDMETHODCALLTYPE SetImData (DWORD dwSize, void *pvImData);
	HRESULT STDMETHODCALLTYPE GetImData (DWORD dwSize, void *pvImData);
	HRESULT STDMETHODCALLTYPE RegisterCallback(IIMCallback *pIMCallback);
	HRESULT STDMETHODCALLTYPE ReceiveSipInfo(SIPINFO *psi);
	HRESULT STDMETHODCALLTYPE GetInfo(IMINFO *pimi);
	HRESULT STDMETHODCALLTYPE Hiding();
	HRESULT STDMETHODCALLTYPE Showing();
	HRESULT STDMETHODCALLTYPE Deselect();
	HRESULT STDMETHODCALLTYPE Select(HWND hWndSip);
	HRESULT STDMETHODCALLTYPE UserOptionsDlg (HWND hwndParent);
	CInputMethod(long *plDllCnt,HINSTANCE hInst);
	virtual ~CInputMethod();

protected:

	HINSTANCE m_hInst; //The dll instance
	long *m_plDllCnt;//point to the Global DLL reference count
	long m_lRef;




#ifdef IMWND_FROM_CODE
	CIMWnd *m_pIMWnd; //The input method window pointer
	#define GETINSTANCE()					(m_pIMWnd = CIMWnd::GetInstance())
	#define GETWINDOW()					(m_pIMWnd->GetWindow())
	#define SHOWUSEROPTIONSDLG(x,y)		(m_pIMWnd->ShowUserOptionsDlg(x,y))
	#define SHOWWINDOW(x)				(m_pIMWnd->ShowWindow(x))
	#define DESTROYWINDOW()				(m_pIMWnd->DestroyWindow())
	#define INITIALIZE(x,y)				(m_pIMWnd->Initialize(x,y))
#endif //#ifdef IMWND_FROM_CODE



#ifdef IMWND_FROM_DLL

	BOOL m_bLoadLib;

	//I don't need get instance from the dll.
	#define GETINSTANCE()

	typedef HWND (WINAPI *DLL_GETWINDOW)(void);	
	typedef void (WINAPI *DLL_SHOWUSEROPTIONSDLG)(HWND,HINSTANCE = NULL);
	typedef void (WINAPI *DLL_SHOWWINDOW)(BOOL);
	typedef void (WINAPI *DLL_DESTROYWINDOW)(void);
	typedef BOOL (WINAPI *DLL_INITIALIZE)(HINSTANCE,HWND);

	
	DLL_GETWINDOW				GETWINDOW;
	DLL_SHOWUSEROPTIONSDLG		SHOWUSEROPTIONSDLG;
	DLL_SHOWWINDOW				SHOWWINDOW;
	DLL_DESTROYWINDOW			DESTROYWINDOW;
	DLL_INITIALIZE				INITIALIZE;

#endif //#ifdef IMWND_FROM_DLL
};

//--------------------------------------------------------------------------------
#endif // IMPUTMETHOD_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -