Rasgetconnectstatus и .net

Тема в разделе ".NET", создана пользователем zilberman, 4 апр 2007.

Статус темы:
Закрыта.
  1. zilberman

    zilberman Гость

    Столкнулся с проблемой: вызываю RasGetConnectStatus(), а эта функция возвращает 632 ("An incorrect structure size was detected"). Код следующий:

    public class ConstProvider
    {
    public const int RAS_MaxEntryName = 256;
    public const int RAS_MaxDeviceType = 16;
    public const int RAS_MaxDeviceName = 128;
    public const int MAX_PATH = 260;
    public const int RAS_MaxPhoneNumber = 128;
    public const int RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
    public const int UNLEN = 256;
    public const int PWLEN = 256;
    public const int DNLEN = 15;
    public const int INFINITE = -1;
    }

    public class RAS
    {
    [DllImport("rasapi32.dll")]
    public static extern uint RasGetConnectStatus(
    [In]IntPtr hrasconn,
    [In, Out]ref RASCONNSTATUS lprasconnstatus
    );

    [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Auto)]
    public struct RASCONNSTATUS
    {
    public int dwSize;
    public int rasconnstate;
    public int dwError;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = ConstProvider.RAS_MaxDeviceType + 1)]
    public string szDeviceType;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = ConstProvider.RAS_MaxDeviceName + 1)]
    public string szDeviceName;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = ConstProvider.RAS_MaxPhoneNumber + 1)]
    public string szPhoneNumber;
    };
    }

    Далее: RAS.RASCONNSTATUS ConnStatus = new RAS.RASCONNSTATUS();
    ConnStatus.dwSize = Marshal.SizeOf(typeof(RAS.RASCONNSTATUS));
    nRet = RAS.RasGetConnectStatus(hRasConn, ref ConnStatus);
    В чем проблема?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей