1 #ifndef IMMMODEL_H 2 #define IMMMODEL_H 3 4 #include <windows.h> 5 #include <immdev.h> 6 #include "ExtraStructs.h" 7 8 class ImmModel 9 { 10 public: 11 static ImmModel* open(HIMC h); 12 static void close(void); 13 14 LPINPUTCONTEXT getIMC(void); 15 LPCOMPOSITIONSTRING getCompStr(void); 16 LPMYPRIVATE getMyPrivate(void); 17 18 protected: 19 ImmModel(HIMC h); 20 ~ImmModel(void); 21 22 private: 23 static ImmModel* m_self; 24 25 static HIMC m_hIMC; 26 27 static LPINPUTCONTEXT m_lpIMC; 28 static LPCOMPOSITIONSTRING m_lpCompStr; 29 static LPMYPRIVATE m_lpMyPrivate; 30 31 LPINPUTCONTEXT lockIMC(void); 32 LPCOMPOSITIONSTRING lockCompStr(void); 33 LPMYPRIVATE lockMyPrivate(void); 34 35 void unlockIMC(void); 36 void unlockCompStr(void); 37 void unlockMyPrivate(void); 38 }; 39 40 #endif 41