ISCardDatabase::ListCards

The ListCards method retrieves all of the smart card names that match the specified interface identifiers (GUIDs), the specified ATR string, or both.

HRESULT ListCards(
  LPBYTEBUFFER pAtr,
  LPSAFEARRAY pInterfaceGuids,
  LONG localeId,
  LPSAFEARRAY *ppCardNames
);
 

Parameters

pAtr
[in, defaultvalue(NULL) ] Pointer to a smart card ATR string. The ATR string must be packaged into an IByteBuffer.
pInterfaceGuids
[in, defaultvalue(NULL)] Pointer to a SAFEARRAY of COM interface identifiers (GUIDs) in BSTR format.
localeId
[in, lcid, defaultvalue(0x0409)] Language localization identifier.
ppCardNames
[out, retval] Pointer to a SAFEARRAY of BSTRs that contains the names of the smart cards that satisfied the search parameters if successful; NULL if the operation failed.

Return Values

The possible return values are the following:

Value Meaning
S_OK Operation completed successfully.
E_INVALIDPARAMETER Invalid parameter.
E_POINTER A bad pointer was passed in.
E_OUTOFMEMORY Out of memory.

Remarks

To retrieve all known readers or reader groups, call ListReaders or ListReaderGroups respectively.

To retrieve the primary service provider or the interfaces of a specific card GetProviderCardId or ListCardInterfaces respectively.

For a list of all the methods provided by the ISCardDatabase interface, see ISCardDatabase.

In addition to the COM error codes listed above, this interface may return a smart card error code if a smart card function was called to complete the request. For information on smart card error codes, see Error Codes.

QuickInfo

  Windows NT: Use version 4.0 SP3 and later.
  Windows: Use Windows 95 OSR2.1.
  Windows CE: Unsupported.
  Header: Declared in scardmgr.h.
  Import Library: scardmgr.tlb.

See Also

GetProviderCardId, ISCardDatabase, ListCardInterfaces, ListReaderGroups, ListReaders