//public string getVendorIFDVersion()
        //{
        //    string retValue;
        //    retValue = VendorIFDVersion.ToString();
        //    return retValue;
        //}


        public bool GetReaderCapabilities(SCardReaderCapability nTag, out byte[] vbValue)
        {
            //if (this.m_fDisposed)
            //{
            //    throw new ObjectDisposedException(base.GetType().FullName);
            //}
            if ((/*this.*/ m_hCard == IntPtr.Zero) || !/*this.*/ m_fIsConnected)
            {
                throw new InvalidOperationException();
            }
            IntPtr ptr1 = IntPtr.Zero;
            uint   num1 = uint.MaxValue;
            uint   num2 = WinSCard.SCardGetAttrib(this.m_hCard, (uint)nTag, ref ptr1, ref num1);

            switch (num2)
            {
            case 0:
                vbValue = new byte[num1];
                Marshal.Copy(ptr1, vbValue, 0, (int)num1);
                //num2 = WinSCard.SCardFreeMemory(this.m_aResourceManager.Context, ptr1);
                return(true);

            case 50:
            case 0x16:
                vbValue = null;
                return(false);
            }
            //SmartCardException.RaiseWin32ResponseCode(num2);
            throw new InvalidProgramException();
        }
 public int GetReaderCapabilitiesInteger(SCardReaderCapability nTag, int nDefaultValue)
 {
     byte[] buffer1;
     if (!this.GetReaderCapabilities(nTag, out buffer1))
     {
         return(nDefaultValue);
     }
     if (buffer1.Length < 4)
     {
     }
     return(BitConverter.ToInt32(buffer1, 0));
 }
        public int GetReaderCapabilitiesByte(SCardReaderCapability nTag)
        {
            byte[] bArr;

            if (!GetReaderCapabilities(nTag, out bArr))
            {
                return(-1);
            }
            if (bArr.Length < 1)
            {
                //throw new SmartCardException(0);
            }
            return(bArr[0]);
        }
        public string GetReaderCapabilitiesString(SCardReaderCapability nTag)
        {
            byte[] bArr;

            if (!GetReaderCapabilities(nTag, out bArr))
            {
                return(null);
            }

            int i = bArr.Length;

            if ((i > 0) && (bArr[i - 1] == 0))
            {
                i--;
            }

            return(System.Text.Encoding.GetEncoding(1252).GetString(bArr, 0, i));
        }
 public string GetReaderCapabilitiesIntToString(SCardReaderCapability ReaderCapability)
 {
     return(Convert.ToString(GetReaderCapabilitiesInteger(ReaderCapability, 0)));
 }
        public string GetReaderCapabilitiesByteToString(SCardReaderCapability ReaderCapability)
        {
            int x = GetReaderCapabilitiesByte(ReaderCapability);

            return(Convert.ToString(x));
        }