www.pudn.com > SimpleInput.rar > InputMethod.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