Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.2 KiB

  1. #ifndef __C_IME_PAD_CALLBACK_FOR_UIM_H__
  2. #define __C_IME_PAD_CALLBACK_FOR_UIM_H__
  3. #include "cpadsvu.h"
  4. //----------------------------------------------------------------
  5. //990630:ToshiaK for #1327
  6. //----------------------------------------------------------------
  7. #define WM_USER_UPDATECONTEXT (WM_USER+400)
  8. class CImePadCallbackUIM;
  9. typedef CImePadCallbackUIM *LPCImePadCallbackUIM;
  10. class CImePadCallbackUIM :public IImePadCallback
  11. {
  12. public:
  13. HRESULT __stdcall QueryInterface(REFIID riid, void**ppv);
  14. ULONG __stdcall AddRef (void);
  15. ULONG __stdcall Release (void);
  16. virtual HRESULT STDMETHODCALLTYPE OnStart(
  17. /* [in] */ DWORD dwParam);
  18. virtual HRESULT STDMETHODCALLTYPE OnClose(
  19. /* [in] */ DWORD dwParam);
  20. virtual HRESULT STDMETHODCALLTYPE OnPing(
  21. /* [in] */ DWORD dwParam);
  22. virtual HRESULT STDMETHODCALLTYPE PassData(
  23. /* [in] */ long nSize,
  24. /* [size_is][in] */ byte __RPC_FAR *pByte,
  25. /* [out][in] */ DWORD __RPC_FAR *pdwCharID);
  26. virtual HRESULT STDMETHODCALLTYPE ReceiveData(
  27. /* [in] */ DWORD dwCmdID,
  28. /* [in] */ DWORD dwDataID,
  29. /* [out] */ long __RPC_FAR *pSize,
  30. /* [size_is][size_is][out] */ byte __RPC_FAR *__RPC_FAR *ppByte);
  31. public:
  32. CImePadCallbackUIM(HWND hwndIF, LPCImePadSvrUIM lpCImePadSvrUIM);
  33. ~CImePadCallbackUIM();
  34. VOID* operator new( size_t size );
  35. VOID operator delete( VOID *lp );
  36. private:
  37. LPCImePadSvrUIM m_lpCImePadSvrUIM;
  38. DWORD m_dwReg;
  39. HWND m_hwndIF;
  40. LONG m_cRef;
  41. };
  42. #ifndef __DEFINE_IMEPAD_IUNKNOWN_DUMMY__
  43. #define __DEFINE_IMEPAD_IUNKNOWN_DUMMY__
  44. #pragma pack(8)
  45. typedef struct IUnkDummyVtbl
  46. {
  47. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  48. IUnknown __RPC_FAR * This,
  49. /* [in] */ REFIID riid,
  50. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  51. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  52. IUnknown __RPC_FAR * This);
  53. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  54. IUnknown __RPC_FAR * This);
  55. }IUnkDummyVtbl;
  56. interface IUnkDummy
  57. {
  58. CONST_VTBL struct IUnkDummyVtbl __RPC_FAR *lpVtbl;
  59. };
  60. #pragma pack()
  61. #endif //__DEFINE_IMEPAD_IUNKNOWN_DUMMY__
  62. extern BOOL IsBadVtblUIM(IUnkDummy *lpIUnk);
  63. #endif //__C_IME_PAD_CALLBACK_FOR_UIM_H__