P/Invoke调用SipEnumIM枚举SIP失败?


通过.NET CF本身提供的方法枚举设备中的所有SIP可以方便的完成这个问题。如下:
        //  定义一个InputPanel 
        private  InputPanel m_inputPanel  =   new  InputPanel();
        
        //  枚举SIP
        foreach  (InputMethod method  in  m_inputPanel.InputMethods)
        {
            
this .listBox.Items.Add(method.Name);
        }

通过上面的方式枚举设备所有SIP后,就可以选择自己需要的SIP了
         private   void  SetNewSIP( string  sipName)
        {
            
foreach  (InputMethod method  in  m_inputPanel.InputMethods)
            {
                
if  (sipName.Equals(method.Name))
                {
                    m_inputPanel.CurrentInputMethod 
=  method;
                    
break ;
                }
            }
        }
 




ASK:
    我想P/Invoke系统API来实现.NET CF为我们实现的枚举功能,如下代码,但是总是返回0,也就是没有枚举到,请问,是我的结构体参数设置错误还是其他呢?
     public   class  SIPManager
    {
        
public   delegate   int  IMENUMPROC( ref  IMENUMINFO IMinfo);
        [DllImport(
" coredll.dll " )]
        
public   static   extern   int  SipEnumIM(IMENUMPROC EnumIMProc);
        
private  List < IMENUMINFO >  SIPs  =   new  List < IMENUMINFO > ();

        
public   int  SipEnumIMProc( ref  IMENUMINFO IMinfo)
        {
            SIPs.Add(IMinfo);
            
return   1 ;
        }

        
public  List < IMENUMINFO >  GetSIPs()
        {
            
int  imcount  =  SipEnumIM(SipEnumIMProc);
            
return  SIPs;
        }

        
public   class  IMENUMINFO
        {
            
public  StringBuilder szName;
            
public  Guid clsid;
            
            
public  IMENUMINFO()
            {
                szName 
=   new  StringBuilder();
                clsid 
=   new  Guid();
            }
        }
    }


    
//  按照下面方式调用
    SIPManager sipmgr  =   new  SIPManager();
    List
< SIPManager.IMENUMINFO >  list  =   new  List < SIPManager.IMENUMINFO > ();
    list 
=  sipmgr.GetSIPs();

    
//  但是每次跟踪进GetSIPs之后,里面imcount返回值总为0,也就是表示失败







 

--------------------------------------------------

李森 – listen
E-mail:  lisencool@gmail.com

声明:
这里集中了在WinCEWindows Mobile开发中的一些基本常识。我很乐意和大家分享,也希望大家提出意见,并给我投稿,我会第一时间替您发表并署上您的大名!

Announce:
Here collects general knowledge on WinCE and Windows mobile. I 'm very glad to share them with all friends, and also hope you can share your problems and opinions and contribute articles to me to share with others. I'll publish your articles and sign your name at the first time.

  

转载于:https://www.cnblogs.com/Lisen/archive/2009/09/17/1568754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值