Функция SCardGetReaderIconA (winscard.h)
Функция SCardGetReaderIcon получает значок средства чтения смарт-карта для имени данного средства чтения. Эта функция не влияет на состояние карта средства чтения.
Синтаксис
LONG SCardGetReaderIconA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[out] LPBYTE pbIcon,
[in, out] LPDWORD pcbIcon
);
Параметры
[in] hContext
Дескриптор, идентифицирующий контекст Resource Manager для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова функции SCardEstablishContext . Этот параметр не может иметь значение NULL.
[in] szReaderName
Имя средства чтения. Это значение можно получить, вызвав функцию SCardListReaders .
[out] pbIcon
Указатель на буфер, содержащий большой двоичный объект значка средства чтения смарт-карта, считываемого из файла значка. Если это значение равно NULL, функция игнорирует длину буфера, указанную в параметре pcbIcon , записывает длину буфера, который был бы возвращен pcbIcon , если бы этот параметр не имел значение NULL, и возвращает код успешного выполнения.
[in, out] pcbIcon
Длина буфера pbIcon (в символах). Этот параметр получает фактическую длину полученного атрибута. Если длина буфера указана как SCARD_AUTOALLOCATE, то pbIcon преобразуется из указателя в указатель байта и получает адрес блока памяти, содержащего атрибут . Этот блок памяти должен быть освобожден с помощью функции SCardFreeMemory .
Возвращаемое значение
Эта функция возвращает различные значения в зависимости от того, является ли она успешной или неудачной.
Код возврата | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты. |
Комментарии
Значок должен иметь размер 256 × 256 пикселей без альфа-канала.
Примеры
PBYTE pbIcon = NULL;
DWORD cbIcon = SCARD_AUTOALLOCATE;
DWORD i;
LONG lReturn;
LPTSTR szReaderName = "USB Smart Card Reader 0";
// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
szReaderName,
(PBYTE)&pbIcon,
&cbIcon);
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardGetReaderIcon - %x\n", lReturn);
// Take appropriate action.
}
else
{
// Free the memory when done.
lReturn = SCardFreeMemory(hContext, pbIcon);
}
Примечание
Заголовок winscard.h определяет SCardGetReaderIcon в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | winscard.h |