Esempio n. 1
0
 private static extern bool GetCPInfoEx([MarshalAs(UnmanagedType.U4)] int CodePage, [MarshalAs(UnmanagedType.U4)] int dwFlags, out CPINFOEX lpCPInfoEx);
Esempio n. 2
0
 private static extern bool GetCPInfoEx([MarshalAs(UnmanagedType.U4)] int CodePage, [MarshalAs(UnmanagedType.U4)] int dwFlags, out CPINFOEX lpCPInfoEx);
Esempio n. 3
0
        private void comboBoxCodePageList_SelectedIndexChanged(object sender, EventArgs e)
        {
            IsModified = true;
            string strCodePage = (string)comboBoxCodePageList.SelectedItem;
            int    nCodePage   = 0;

            try
            {
                nCodePage = Convert.ToInt32(strCodePage);
            }
            catch
            {
                return;
            }

            System.Diagnostics.Debug.Assert((comboBoxCodePageList.SelectedIndex >= 0) && (comboBoxCodePageList.SelectedIndex < m_encInfos.Length));
            EncodingInfo encInfo = m_encInfos[comboBoxCodePageList.SelectedIndex];

            System.Diagnostics.Debug.Assert(nCodePage == encInfo.CodePage);

            CPINFOEX cpInfo = new CPINFOEX();

            if (GetCPInfoExW(nCodePage, 0, ref cpInfo) != 0)
            {
                string strInfo = String.Format("Code Page: {1}{0}Display Name: {2}{0}Registered Name: {3}{0}\tMax bytes/character: {4}",
                                               Environment.NewLine,
                                               encInfo.CodePage,
                                               encInfo.DisplayName,
                                               encInfo.Name,
                                               (int)(cpInfo.MaxCharSize & 0xFFFF));

                // do these a little more carefully, because Format doesn't like nulls.
                if (cpInfo.DefaultChar[0] != 0)
                {
                    string str = Encoding.Default.GetString(cpInfo.DefaultChar, 0, StringLengthFromByteArray(cpInfo.DefaultChar));
                    strInfo += String.Format("{0}\tDefault legacy character: {1} (d{2:d3})",
                                             Environment.NewLine, str, (int)cpInfo.DefaultChar[0]);
                }

                if (cpInfo.UnicodeDefaultChar != 0)
                {
                    strInfo += String.Format("{0}\tDefault Unicode character: {1} (u{2:x4})",
                                             Environment.NewLine, (char)cpInfo.UnicodeDefaultChar, (int)cpInfo.UnicodeDefaultChar);
                }

                string strLeadByteString = null;
                int    i = 0;
                while (cpInfo.LeadByte[i] != 0)
                {
                    byte   by       = cpInfo.LeadByte[i++];
                    string strValue = String.Format("d{0:d3}, ", by);
                    strLeadByteString += strValue;
                }

                if (!String.IsNullOrEmpty(strLeadByteString))
                {
                    strInfo += String.Format("{0}\tLead Byte ranges: {1})",
                                             Environment.NewLine, strLeadByteString.Substring(0, strLeadByteString.Length - 2));
                }

                textBoxCodePageDetails.Text = strInfo;
            }
            else
            {
                string strInfo = String.Format("Code Page: {1}{0}Display Name: {2}{0}Registered Name: {3}",
                                               Environment.NewLine,
                                               encInfo.CodePage,
                                               encInfo.DisplayName,
                                               encInfo.Name);
                textBoxCodePageDetails.Text = strInfo;
            }
        }
Esempio n. 4
0
 static extern int GetCPInfoExW
 (
     Int32 nCodePage,
     Int32 dwFlags,
     ref CPINFOEX lpCPInfo);
 public static extern Int32 GetCPInfoEx(UInt32 CodePage, UInt32 dwFlags, out CPINFOEX lpCPInfoEx);
Esempio n. 6
0
		private void comboBoxCodePageList_SelectedIndexChanged(object sender, EventArgs e)
		{
			IsModified = true;
			string strCodePage = (string)comboBoxCodePageList.SelectedItem;
			int nCodePage = 0;
			try
			{
				nCodePage = Convert.ToInt32(strCodePage);
			}
			catch
			{
				return;
			}

			System.Diagnostics.Debug.Assert((comboBoxCodePageList.SelectedIndex >= 0) && (comboBoxCodePageList.SelectedIndex < m_encInfos.Length));
			EncodingInfo encInfo = m_encInfos[comboBoxCodePageList.SelectedIndex];
			System.Diagnostics.Debug.Assert(nCodePage == encInfo.CodePage);

			CPINFOEX cpInfo = new CPINFOEX();
			if (GetCPInfoExW(nCodePage, 0, ref cpInfo) != 0)
			{
				string strInfo = String.Format("Code Page: {1}{0}Display Name: {2}{0}Registered Name: {3}{0}\tMax bytes/character: {4}",
					Environment.NewLine,
					encInfo.CodePage,
					encInfo.DisplayName,
					encInfo.Name,
					(int)(cpInfo.MaxCharSize & 0xFFFF));

				// do these a little more carefully, because Format doesn't like nulls.
				if (cpInfo.DefaultChar[0] != 0)
				{
					string str = Encoding.Default.GetString(cpInfo.DefaultChar, 0, StringLengthFromByteArray(cpInfo.DefaultChar));
					strInfo += String.Format("{0}\tDefault legacy character: {1} (d{2:d3})",
						Environment.NewLine, str, (int)cpInfo.DefaultChar[0]);
				}

				if (cpInfo.UnicodeDefaultChar != 0)
				{
					strInfo += String.Format("{0}\tDefault Unicode character: {1} (u{2:x4})",
						Environment.NewLine, (char)cpInfo.UnicodeDefaultChar, (int)cpInfo.UnicodeDefaultChar);
				}

				string strLeadByteString = null;
				int i = 0;
				while (cpInfo.LeadByte[i] != 0)
				{
					byte by = cpInfo.LeadByte[i++];
					string strValue = String.Format("d{0:d3}, ", by);
					strLeadByteString += strValue;
				}

				if (!String.IsNullOrEmpty(strLeadByteString))
				{
					strInfo += String.Format("{0}\tLead Byte ranges: {1})",
						Environment.NewLine, strLeadByteString.Substring(0, strLeadByteString.Length - 2));
				}

				textBoxCodePageDetails.Text = strInfo;
			}
			else
			{
				string strInfo = String.Format("Code Page: {1}{0}Display Name: {2}{0}Registered Name: {3}",
					Environment.NewLine,
					encInfo.CodePage,
					encInfo.DisplayName,
					encInfo.Name);
				textBoxCodePageDetails.Text = strInfo;
			}
		}
Esempio n. 7
0
		static extern int GetCPInfoExW
			(
			Int32 nCodePage,
			Int32 dwFlags,
			ref CPINFOEX lpCPInfo);