Hi all,
I have written the following using winscard.dll in Excel VBA.
When I compile it I get no errors however I cannot get it to display anything on the form.
This is all in the userform1.
-----------------------------------------------------------------------
Private Const SCARD_SCOPE_USER As Long = &H0
Private Const SCARD_SCOPE_SYSTEM As Long = &H2
Private Const SCARD_SHARE_SHARED As Long = &H2
Private Const SCARD_SHARE_EXCLUSIVE As Long = &H1
Private Const SCARD_SHARE_DIRECT As Long = &H3
Private Const SCARD_PROTOCOL_T0 As Long = &H1
Private Const SCARD_PROTOCOL_T1 As Long = &H2
Private Const SCARD_DEFAULT_READERS As String = "SCard$DefaultReaders\000"
Private Declare PtrSafe Function SCardEstablishContext Lib "winscard.dll" (ByVal dwScope As Long, _
ByVal pvReserved1 As Long, _
ByVal pvReserved2 As Long, _
ByRef phContext As SCARDCONTEXT _
) As Long
Private Declare PtrSafe Function SCardReleaseContext Lib "winscard.dll" (ByRef phContext As SCARDCONTEXT) As Long
Private Declare PtrSafe Function SCardConnect Lib "winscard.dll" (ByRef phContext As SCARDCONTEXT, _
ByVal dwShareMode As Long, _
ByVal szReader As String, _
ByVal dwPreferredProtocols As Long, _
ByRef phCard As Long, _
ByRef pdwActiveProtocol As Long _
) As Long
Private Declare PtrSafe Function SCardListReaders Lib "winscard.dll" (ByRef phContext As SCARDCONTEXT, _
ByVal dwShareMode As Long, _
ByVal mszGroups As String, _
ByRef mszReaders As String, _
ByRef pcchReaders As Long _
) As Long
Private Type SCARDCONTEXT
CardContext1 As Long
ReaderName As String
End Type
Sub GetContext()
Dim lReturn As Long
Dim RSVD1 As Long, RSVD2 As Long
Dim myContext As SCARDCONTEXT
lReturn = SCardEstablishContext(SCARD_SCOPE_USER, RSVD1, RSVD2, myContext)
Debug.Print "SCardEstablishContext: Return =" & lReturn & "" _
; " myContext.CardContext1 = " & myContext.CardContext1 & _
" myContext.ReaderName = " & Chr(34) & myContext.ReaderName & Chr(34)
Dim ListOfReaders As String, lenListOfReaders As Long
lReturn = SCardListReaders(myContext, SCARD_SHARE_SHARED, SCARD_DEFAULT_READERS, ListOfReaders, lenListOfReaders)
Debug.Print "SCardListReaders: Return =" & lReturn & _
" ListOfReaders = " & Chr(34) & ListOfReaders & Chr(34) & _
" lenListOfReaders = " & lenListOfReaders
lReturn = SCardReleaseContext(myContext)
Debug.Print "SCardReleaseContext: Return =" & lReturn
End Sub
Private Sub UserForm_Click()
End Sub
---------------------------------------------
Some help would be appreciated.
Bookmarks