connect method

  1. @override
Tuple2<SCardResult, SCardHandle> connect(
  1. int hContext,
  2. String szReader,
  3. int dwShareMode,
  4. int dwPreferredProtocols,
)
override

Implementation

@override
Tuple2<SCardResult, SCardHandle> connect(int hContext, String szReader, int dwShareMode, int dwPreferredProtocols) {
  final ffi.Pointer<ffi.Char> nativeReaderName = _allocateNativeString(szReader);
  final phCard = calloc<SCARDHANDLE>();
  final pdwActiveProtocol = calloc<DWORD>();

  try {
    var response = _winscard.SCardConnect(hContext, nativeReaderName, dwShareMode, dwPreferredProtocols, phCard, pdwActiveProtocol);
    return Tuple2(SCardResult(response), SCardHandle(phCard.value, pdwActiveProtocol.value));
  }
  finally {
    calloc.free(nativeReaderName);
    calloc.free(phCard);
    calloc.free(pdwActiveProtocol);
  }
}