Modem連接用到的幾個結構類型

 

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]  
        private struct RASDIALPARAMS  
        {  
            internal int dwSize;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x101)]  
            internal string szEntryName;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x81)]  
            internal string szPhoneNumber;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x81)]  
            internal string szCallbackNumber;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x101)]  
            internal string szUserName;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x101)]  
            internal string szPassword;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x10)]  
            internal string szDomain;  
        }  
 
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]  
        private struct RASENTRYNAME  
        {  
            internal int dwSize;  
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x101)]  
            internal string szEntryName;  
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        private struct RASCONN
        {
            internal int dwSize;
            internal int hrasconn;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x101)]
            internal string szEntryName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x11)]
            internal string szDeviceType;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x81)]
            internal string szDeviceName;
        }

        private enum RASCONNSTATE
        {
            RASCS_AllDevicesConnected = 4,
            RASCS_AuthAck = 12,
            RASCS_AuthCallback = 8,
            RASCS_AuthChangePassword = 9,
            RASCS_Authenticate = 5,
            RASCS_Authenticated = 14,
            RASCS_AuthLinkSpeed = 11,
            RASCS_AuthNotify = 6,
            RASCS_AuthProject = 10,
            RASCS_AuthRetry = 7,
            RASCS_CallbackSetByCaller = 0x1002,
            RASCS_ConnectDevice = 2,
            RASCS_Connected = 0x2000,
            RASCS_DeviceConnected = 3,
            RASCS_Disconnected = 0x2001,
            RASCS_Interactive = 0x1000,
            RASCS_OpenPort = 0,
            RASCS_PasswordExpired = 0x1003,
            RASCS_PortOpened = 1,
            RASCS_PrepareForCallback = 15,
            RASCS_Projected = 0x12,
            RASCS_ReAuthenticate = 13,
            RASCS_RetryAuthentication = 0x1001,
            RASCS_SubEntryConnected = 0x13,
            RASCS_SubEntryDisconnected = 20,
            RASCS_WaitForCallback = 0x11,
            RASCS_WaitForModemReset = 0x10
        }

        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        private struct RASCONNSTATUS
        {
            internal int dwSize;
            internal RasConnection.RASCONNSTATE rasconnstate;
            internal int dwError;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x11)]
            internal string szDeviceType;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x81)]
            internal string szDeviceName;
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章