Mounir IDRASSI <mounir.idrassi(a)idrix.fr> writes:
+/* + * pcsc-lite functions pointers + */ +typedef LONG (*SCardEstablishContextPtr)(DWORD dwScope,LPCVOID pvReserved1, + LPCVOID pvReserved2, LPSCARDCONTEXT phContext); +typedef LONG (*SCardReleaseContextPtr)(SCARDCONTEXT hContext); +typedef LONG (*SCardIsValidContextPtr)(SCARDCONTEXT hContext); +typedef LONG (*SCardSetTimeoutPtr)(SCARDCONTEXT hContext, DWORD dwTimeout); +typedef LONG (*SCardConnectPtr)(SCARDCONTEXT hContext,LPCSTR szReader,DWORD dwShareMode, + DWORD dwPreferredProtocols,LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol); +typedef LONG (*SCardReconnectPtr)(SCARDHANDLE hCard,DWORD dwShareMode, + DWORD dwPreferredProtocols,DWORD dwInitialization, LPDWORD pdwActiveProtocol); +typedef LONG (*SCardDisconnectPtr)(SCARDHANDLE hCard, DWORD dwDisposition); +typedef LONG (*SCardBeginTransactionPtr)(SCARDHANDLE hCard); +typedef LONG (*SCardEndTransactionPtr)(SCARDHANDLE hCard, DWORD dwDisposition); +typedef LONG (*SCardCancelTransactionPtr)(SCARDHANDLE hCard); +typedef LONG (*SCardStatusPtr)(SCARDHANDLE hCard,LPSTR mszReaderNames, LPDWORD pcchReaderLen, + LPDWORD pdwState,LPDWORD pdwProtocol,BYTE* pbAtr,LPDWORD pcbAtrLen); +typedef LONG (*SCardGetStatusChangePtr)(SCARDCONTEXT hContext,DWORD dwTimeout, + LPSCARD_READERSTATEA rgReaderStates, DWORD cReaders); +typedef LONG (*SCardControlPtr)(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, + DWORD cbSendLength,LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned); +typedef LONG (*SCardTransmitPtr)(SCARDHANDLE hCard,LPCSCARD_IO_REQUEST pioSendPci, + const BYTE* pbSendBuffer, DWORD cbSendLength, + LPSCARD_IO_REQUEST pioRecvPci, BYTE* pbRecvBuffer, LPDWORD pcbRecvLength); +typedef LONG (*SCardListReaderGroupsPtr)(SCARDCONTEXT hContext,LPSTR mszGroups, LPDWORD pcchGroups); +typedef LONG (*SCardListReadersPtr)(SCARDCONTEXT hContext,LPCSTR mszGroups, + LPSTR mszReaders, LPDWORD pcchReaders); +typedef LONG (*SCardCancelPtr)(SCARDCONTEXT hContext); +typedef LONG (*SCardGetAttribPtr)(SCARDHANDLE hCard, DWORD dwAttrId,BYTE* pbAttr, LPDWORD pcbAttrLen); +typedef LONG (*SCardSetAttribPtr)(SCARDHANDLE hCard, DWORD dwAttrId,const BYTE* pbAttr, DWORD cbAttrLen);
I don't think the pcsc-lite library is guaranteed to be binary compatible with the Windows definitions. You'll need to include the correct headers and convert data types between Windows and Unix definitions. -- Alexandre Julliard julliard(a)winehq.org