af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Winscard definitions
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync */
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __WINE_WINSCARD_H
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __WINE_WINSCARD_H
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <wtypes.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <winioctl.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <winsmcrd.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <scarderr.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef _LPCBYTE_DEFINED
af062818b47340eef15700d2f0211576ba3506eevboxsync#define _LPCBYTE_DEFINED
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef const BYTE *LPCBYTE;
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef ULONG_PTR SCARDCONTEXT, *PSCARDCONTEXT, *LPSCARDCONTEXT;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef ULONG_PTR SCARDHANDLE, *PSCARDHANDLE, *LPSCARDHANDLE;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct _SCARD_ATRMASK
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD cbAtr;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE rgbAtr[36];
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE rgbMask[36];
af062818b47340eef15700d2f0211576ba3506eevboxsync} SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPCSTR szReader;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPVOID pvUserData;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwCurrentState;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwEventState;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD cbAtr;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE rgbAtr[36];
af062818b47340eef15700d2f0211576ba3506eevboxsync} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync LPCWSTR szReader;
af062818b47340eef15700d2f0211576ba3506eevboxsync LPVOID pvUserData;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwCurrentState;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwEventState;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD cbAtr;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE rgbAtr[36];
af062818b47340eef15700d2f0211576ba3506eevboxsync} SCARD_READERSTATEW, *PSCARD_READERSTATEW, *LPSCARD_READERSTATEW;
af062818b47340eef15700d2f0211576ba3506eevboxsyncDECL_WINELIB_TYPE_AW(SCARD_READERSTATE)
af062818b47340eef15700d2f0211576ba3506eevboxsyncDECL_WINELIB_TYPE_AW(PSCARD_READERSTATE)
af062818b47340eef15700d2f0211576ba3506eevboxsyncDECL_WINELIB_TYPE_AW(LPSCARD_READERSTATE)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncHANDLE WINAPI SCardAccessStartedEvent(void);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardAddReaderToGroupA(SCARDCONTEXT,LPCSTR,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardAddReaderToGroupW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardAddReaderToGroup WINELIB_NAME_AW(SCardAddReaderToGroup)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardBeginTransaction(SCARDHANDLE);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardCancel(SCARDCONTEXT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardConnectA(SCARDCONTEXT,LPCSTR,DWORD,DWORD,LPSCARDHANDLE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardConnectW(SCARDCONTEXT,LPCWSTR,DWORD,DWORD,LPSCARDHANDLE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardConnect WINELIB_NAME_AW(SCardConnect)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardControl(SCARDHANDLE,DWORD,LPCVOID,DWORD,LPVOID,DWORD,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardDisconnect(SCARDHANDLE,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardEndTransaction(SCARDHANDLE,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardEstablishContext(DWORD,LPCVOID,LPCVOID,LPSCARDCONTEXT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetCardTypeA(SCARDCONTEXT,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetCardTypeW(SCARDCONTEXT,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardForgetCardType WINELIB_NAME_AW(SCardForgetCardType)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetReaderA(SCARDCONTEXT,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetReaderW(SCARDCONTEXT,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardForgetReader WINELIB_NAME_AW(SCardForgetReader)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetReaderGroupA(SCARDCONTEXT,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardForgetReaderGroupW(SCARDCONTEXT,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardForgetReaderGroup WINELIB_NAME_AW(SCardForgetReaderGroup)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardFreeMemory(SCARDCONTEXT,LPCVOID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetAttrib(SCARDHANDLE,DWORD,LPBYTE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetCardTypeProviderNameA(SCARDCONTEXT,LPCSTR,DWORD,LPSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetCardTypeProviderNameW(SCARDCONTEXT,LPCWSTR,DWORD,LPWSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardGetCardTypeProviderName WINELIB_NAME_AW(SCardGetCardTypeProviderName)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetProviderIdA(SCARDCONTEXT,LPCSTR,LPGUID);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetProviderIdW(SCARDCONTEXT,LPCWSTR,LPGUID);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardGetProviderId WINELIB_NAME_AW(SCardGetProviderId)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetStatusChangeA(SCARDCONTEXT,DWORD,LPSCARD_READERSTATEA,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardGetStatusChangeW(SCARDCONTEXT,DWORD,LPSCARD_READERSTATEW,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardGetStatusChange WINELIB_NAME_AW(SCardGetStatusChange)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceCardTypeA(SCARDCONTEXT,LPCSTR,LPCGUID,LPCGUID,DWORD,LPCBYTE,LPCBYTE,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceCardTypeW(SCARDCONTEXT,LPCWSTR,LPCGUID,LPCGUID,DWORD,LPCBYTE,LPCBYTE,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardIntroduceCardType WINELIB_NAME_AW(SCardIntroduceCardType)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceReaderA(SCARDCONTEXT,LPCSTR,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceReaderW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardIntroduceReader WINELIB_NAME_AW(SCardIntroduceReader)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceReaderGroupA(SCARDCONTEXT,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIntroduceReaderGroupW(SCARDCONTEXT,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardIntroduceReaderGroup WINELIB_NAME_AW(SCardIntroduceReaderGroup)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardIsValidContext(SCARDCONTEXT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListCardsA(SCARDCONTEXT,LPCBYTE,LPCGUID,DWORD,LPSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListCardsW(SCARDCONTEXT,LPCBYTE,LPCGUID,DWORD,LPWSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardListCards WINELIB_NAME_AW(SCardListCards)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListInterfacesA(SCARDCONTEXT,LPCSTR,LPGUID,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListInterfacesW(SCARDCONTEXT,LPCWSTR,LPGUID,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardListInterfaces WINELIB_NAME_AW(SCardListInterfaces)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListReadersA(SCARDCONTEXT,LPCSTR,LPSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListReadersW(SCARDCONTEXT,LPCWSTR,LPWSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardListReaders WINELIB_NAME_AW(SCardListReaders)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListReaderGroupsA(SCARDCONTEXT,LPSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardListReaderGroupsW(SCARDCONTEXT,LPWSTR,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardListReaderGroups WINELIB_NAME_AW(SCardListReaderGroups)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardLocateCardsA(SCARDCONTEXT,LPCSTR,LPSCARD_READERSTATEA,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardLocateCardsW(SCARDCONTEXT,LPCWSTR,LPSCARD_READERSTATEW,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardLocateCards WINELIB_NAME_AW(SCardLocateCards)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardLocateCardsByATRA(SCARDCONTEXT,LPSCARD_ATRMASK,DWORD,LPSCARD_READERSTATEA,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardLocateCardsByATRW(SCARDCONTEXT,LPSCARD_ATRMASK,DWORD,LPSCARD_READERSTATEW,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardLocateCardsByATR WINELIB_NAME_AW(SCardLocateCardsByATR)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardReconnect(SCARDHANDLE,DWORD,DWORD,DWORD,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardReleaseContext(SCARDCONTEXT);
af062818b47340eef15700d2f0211576ba3506eevboxsyncvoid WINAPI SCardReleaseStartedEvent(HANDLE);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardRemoveReaderFromGroupA(SCARDCONTEXT,LPCSTR,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardRemoveReaderFromGroupW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardRemoveReaderFromGroup WINELIB_NAME_AW(SCardRemoveReaderFromGroup)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardSetAttrib(SCARDHANDLE,DWORD,LPCBYTE,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardSetCardTypeProviderNameA(SCARDCONTEXT,LPCSTR,DWORD,LPCSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardSetCardTypeProviderNameW(SCARDCONTEXT,LPCWSTR,DWORD,LPCWSTR);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardSetCardTypeProviderName WINELIB_NAME_AW(SCardSetCardTypeProviderName)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardState(SCARDHANDLE,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardStatusA(SCARDHANDLE,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardStatusW(SCARDHANDLE,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync#define SCardStatus WINELIB_NAME_AW(SCardStatus)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLONG WINAPI SCardTransmit(SCARDHANDLE,LPCSCARD_IO_REQUEST,LPCBYTE,DWORD,LPSCARD_IO_REQUEST,LPBYTE,LPDWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __WINE_WINSCARD_H */