/// <summary> /// Connects to the reader with a card /// Note Winscard requires a card /// </summary> /// <param name="ReaderName">The name of the reader to connect to</param> /// <param name="SmartCardShareTypes">The perfered protocols to use</param> /// <returns></returns> public WinSmartCard CardConnect(SmartCardShareTypes SmartCardShareTypes, SmartCardShareTypes ShareType = SmartCardShareTypes.SCARD_SHARE_SHARED, SmartCardProtocols Protocols = SmartCardProtocols.SCARD_PROTOCOL_Any) { if (Disposed) { throw new ObjectDisposedException("WinSmartCardContext"); } int Card = 0; int Protocol = 0; LastResultCode = WinSCard.SCardConnect(_Context, ConnectedReaderName, ShareType, Protocols, ref Card, ref Protocol); if (LastResultCode != ErrorCodes.SCARD_S_SUCCESS) { throw new WinSCardException(LastResultCode); } this.Card = new WinSmartCard(this, Card); return(this.Card); }
/// <summary> /// C# Friendly quick wrapper Addtional wrapping can found at WinSmartCard and Win SmardCardContext /// </summary> /// <param name="Context">Context</param> /// <param name="ReaderName">The Readers Name</param> /// <param name="ShareMode">The Perferd Sandbox</param> /// <param name="Protocol">The Perferd protocol</param> /// <param name="Card">The Card</param> /// <param name="ActiveProtocol">The Active protocol</param> /// <returns>The Error Code</returns> internal static ErrorCodes SCardConnect(int Context, string ReaderName, SmartCardShareTypes ShareMode, SmartCardProtocols Protocol, ref int Card, ref int ActiveProtocol) { return((ErrorCodes)SCardConnectImport(Context, ReaderName, (int)ShareMode, (int)Protocol, ref Card, ref ActiveProtocol)); }