Share via


SCardGetReaderIconA, fonction (winscard.h)

La fonction SCardGetReaderIcon obtient une icône du lecteur carte intelligent pour le nom d’un lecteur donné. Cette fonction n’affecte pas l’état du lecteur carte.

Syntaxe

LONG SCardGetReaderIconA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

Paramètres

[in] hContext

Handle qui identifie le contexte resource manager pour la requête. Vous pouvez définir le contexte resource manager par un appel précédent à la fonction SCardEstablishContext . Ce paramètre ne peut pas être NULL.

[in] szReaderName

Nom du lecteur. Vous pouvez obtenir cette valeur en appelant la fonction SCardListReaders .

[out] pbIcon

Pointeur vers une mémoire tampon qui contient un objet BLOB de l’icône de lecteur smart carte lu à partir du fichier d’icône. Si cette valeur est NULL, la fonction ignore la longueur de la mémoire tampon fournie dans le paramètre pcbIcon , écrit la longueur de la mémoire tampon qui aurait été retournée à pcbIcon si ce paramètre n’avait pas été NULL et retourne un code de réussite.

[in, out] pcbIcon

Longueur, en caractères, de la mémoire tampon pbIcon . Ce paramètre reçoit la longueur réelle de l’attribut reçu. Si la longueur de la mémoire tampon est spécifiée en tant que SCARD_AUTOALLOCATE, pbIcon est converti d’un pointeur en pointeur d’octets et reçoit l’adresse d’un bloc de mémoire qui contient l’attribut . Ce bloc de mémoire doit être libéré avec la fonction SCardFreeMemory .

Valeur retournée

Cette fonction retourne des valeurs différentes selon qu’elle réussit ou échoue.

Code de retour Description
Success
SCARD_S_SUCCESS.
Échec
Code d'erreur. Pour plus d’informations, consultez Valeurs de retour de carte à puce.

Remarques

L’icône doit être de 256 × 256 pixels sans canal alpha.

Exemples

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);
}

Notes

L’en-tête winscard.h définit SCardGetReaderIcon comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winscard.h