Share via


SCardUIDlgSelectCardW 함수(winscard.h)

SCardUIDlgSelectCard 함수는 스마트 카드 카드 선택 대화 상자를 표시합니다.

구문

LONG SCardUIDlgSelectCardW(
  [in] LPOPENCARDNAMEW_EX unnamedParam1
);

매개 변수

[in] unnamedParam1

카드 선택 대화 상자의 OPENCARDNAME_EX 구조체에 대한 포인터입니다.

반환 값

함수가 카드 선택 대화 상자를 성공적으로 표시하면 반환 값이 SCARD_S_SUCCESS.

함수가 실패하면 오류 코드를 반환합니다. 자세한 내용은 스마트 카드 반환 값을 참조하세요.

설명

SCardUIDlgSelectCard 함수는 특정 스마트 카드 연결하는 메서드를 제공합니다. 호출될 때 이 함수는 pDlgStruc 매개 변수로 지정된 OPENCARD_SEARCH_CRITERIA 멤버와 일치하는 적절한 스마트 카드를 검색합니다. pDlgStrucdwFlags 멤버에 따라 이 함수는 다음 작업을 수행합니다.

작업
SC_DLG_FORCE_UI 스마트 카드 카드 선택 대화 상자에서 사용자가 선택한 카드 연결합니다.
SC_DLG_MINIMAL_UI 스마트 카드 하나만 조건을 충족하는 경우 스마트 카드 선택하거나 둘 이상의 스마트 카드 조건을 충족하는 경우 사용자의 선택에 대한 정보를 반환합니다.
SC_DLG_NO_UI 사용 가능한 첫 번째 카드 선택합니다.
 

이 함수는 GetOpenCardName을 대체합니다. GetOpenCardName 함수는 Microsoft 스마트 카드 기본 구성 요소 버전 1.0과의 이전 버전과의 호환성을 위해 유지 관리됩니다.

예제

다음 예제에서는 스마트 카드 카드 선택 대화 상자를 표시하는 방법을 보여줍니다.

SCARDCONTEXT     hSC;
OPENCARDNAME_EX  dlgStruct;
WCHAR            szReader[256];
WCHAR            szCard[256];
LONG             lReturn;

// Establish a context.
// It will be assigned to the structure's hSCardContext field.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
                                NULL,
                                NULL,
                                &hSC );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardEstablishContext\n");
    exit(1);
}

// Initialize the structure.
memset(&dlgStruct, 0, sizeof(dlgStruct));
dlgStruct.dwStructSize = sizeof(dlgStruct);
dlgStruct.hSCardContext = hSC;
dlgStruct.dwFlags = SC_DLG_FORCE_UI;
dlgStruct.lpstrRdr = (LPSTR) szReader;
dlgStruct.nMaxRdr = 256;
dlgStruct.lpstrCard = (LPSTR) szCard;
dlgStruct.nMaxCard = 256;
dlgStruct.lpstrTitle = (LPSTR) "My Select Card Title";

// Display the select card dialog box.
lReturn = SCardUIDlgSelectCard(&dlgStruct);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardUIDlgSelectCard - %x\n", lReturn );
else
    printf("Reader: %S\nCard: %S\n", szReader, szCard );

// Release the context (by SCardReleaseContext - not shown here).

참고

winscard.h 헤더는 SCardUIDlgSelectCard를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winscard.h
라이브러리 Scarddlg.lib
DLL Scarddlg.dll

추가 정보

OPENCARDNAME_EX