스마트 카드 UI(사용자 인터페이스)는 사용자가 열려는 스마트 카드를 지정하거나 검색할 수 있는 단일 공통 대화 상자(즉, 애플리케이션에 연결하여 사용)입니다.
다음은 공통 대화 상자를 사용할 수 있는 두 가지 방법입니다. 둘 다 대화 상자 UI가 표시될 것이라고 가정합니다. 자세한 내용은 OPENCARDNAME참조하세요.
스마트 카드를 선택하여 열려면
- OPENCARDNAME 형식의 변수를 선언합니다.
- 일반적인 대화 상자에 충분한 정보를 제공하여 호출 애플리케이션에서 찾고 있는 스마트 카드 검색 범위를 좁힐 수 있습니다. 여기에는 lpstrGroupNames, lpstrCardNames및 rgguidInterfaces지정하는 것이 포함됩니다. 여기에는 일반 대화 상자가 dwShareMode 사용하여 카드에 연결할 때 사용할 기본 공유 모드 및 프로토콜을 지정하고 OPENCARDNAME 구조의 멤버를 dwPreferredProtocols를 지정하는 것도 포함됩니다.
- GetOpenCardName 함수를 호출하여 사용자에게 공통 대화 상자를 표시합니다. 간단한 도움말 정보 줄이 표시되고 요청 중인 카드 중 하나가 발견되면 카드가 디스플레이에 강조 표시됩니다. 여러 카드 이름 검색의 경우 기본 설정 카드 중 하나가 포함된 첫 번째 판독기에서 강조 표시됩니다.
- 그런 다음 사용자가 카드를 선택하고 확인클릭하고 스마트 카드에 연결합니다.
특정 카드 검색하려면
OPENCARDNAME 형식의 변수를 선언합니다.
일반적인 대화 상자에 충분한 정보를 제공하여 호출 애플리케이션에서 찾고 있는 스마트 카드 검색 범위를 좁힐 수 있습니다. 여기에는 lpstrGroupNames, lpstrCardNames및 rgguidInterfaces지정하는 것이 포함됩니다.
Connect, check및 연결 끊기 콜백 함수를 만들고 lpfnConnect, lpfnCheck및 lpfnDisconnect 데이터 멤버를 적절하게 설정합니다.
메모
이러한 방식으로 공통 대화 상자를 사용할 때는 세 가지 함수와 멤버를 모두 사용할 수 있어야 합니다.
GetOpenCardName 일반 대화 상자 함수를 호출합니다.
그런 다음, 일반 대화 상자에서 요청된 카드를 검색합니다. 일치하는 카드 이름 또는 ATR 문자열 있으면 Connect, check및 Disconnect 콜백 함수가 순서대로 호출됩니다. 카드가 Check 루틴(즉, Check 콜백이 TRUE 반환)을 전달하는 경우 이 카드는 사용자에게 표시되어 강조 표시됩니다.
메모
여러 카드 이름이 지정된 경우 요청된 카드 중 하나를 포함하고 check 루틴을 전달하는 첫 번째 판독기는 선택한 카드가 됩니다.
일치하는 항목이 없으면 공통 대화 상자가 나타납니다.