如何调用api中的RasEnumConnections
2736 2005-11-24 02:38:26 对api不熟悉,请高手指点
代码如下:
[DllImport("rasapi32.dll", SetLastError=true,CharSet=CharSet.Auto)]
public static extern int RasEnumConnections(RASCONN lprasconn,int lpcb,int lpcConnections);
const int RAS_MaxDeviceType = 16;//设备类型名称长度
const int RAS_MaxEntryName = 256;//连接名称最大长度
const int RAS_MaxDeviceName = 128;//设备名称最大长度
const int RAS_MaxIpAddress = 15;//IP地址的最大长度
[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Auto)]
public struct RASCONN
{
public int dwSize;
public int hrasconn;
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=RAS_MaxEntryName + 1)]
public string szEntryName;
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=RAS_MaxDeviceType + 1)]
public string szDeviceType;
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=RAS_MaxDeviceName + 1)]
public string szDeviceName;
}
public Form1()
{
RASCONN lprasConnAA;
lprasConnAA.dwSize=412;
lprasConnAA.hrasconn=0;
lprasConnAA.szDeviceName="";
lprasConnAA.szDeviceType="";
lprasConnAA.szEntryName="";
int lpcb = 0;
lpcb=256*lprasConnAA.dwSize;
int lpcConnections = 0;
int nRet = 0;
//下面这一句通不过,请高手看看如何改
nRet = RasEnumConnections(lprasConnAA, lpcb,lpcConnections);
if(nRet != 0)
{
for (int i=0;i<lpcConnections;i++)
{
// RasHangUp(lprasConnAA.hrasconn);
}
}
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
}