using   System;  
  using   System.Windows.Forms;  
  using   System.Data;  
  using   System.Runtime.InteropServices;    
   
   
  //获得汉字拼音  
  class   class1  
  {  
  public   const   uint   IME_REGWORD_STYLE_USER_FIRST         =0x80000000;  
  private   string   result,srcstring="字";  
  public   delegate   void   Mycallback(string   lpszReading,uint   dwStyle,string   lpszString,object   o);  
  public   Mycallback   myc;  
   
  [DllImport("imm32.dll")]  
  public   static   extern   uint   ImmEnumRegisterWord(   uint   hkl,Mycallback   lpfnEnumProc,string   lpszReading, uint   dwStyle,string   lpszRegister,   object   o);  
   
  //Call   this   to   register   word  
  public   void   ImmCall(string[]   args)  
  {  
  myc=new   Mycallback(MyCBProc);  
  //注册回调函数,srcstring里面存储要查的汉字  
  uint   x=ImmEnumRegisterWord(0xE00E0804,myc,null,IME_REGWORD_STYLE_USER_FIRST+1,srcstring,null);  
  }  
  //callback函数,每次回调返回汉字的一个读音(多音字)  
  public   void     MyCBProc(string   lpszReading,uint   dwStyle,string   lpszString,object   o)  
  {  
  result+=lpszReading;  
  }  
  }