[2/2] winscard: Add headers for the upcoming implementation of the
winscard dll.
Francois Gouget
fgouget at codeweavers.com
Tue May 15 06:51:44 CDT 2007
---
This second winscard patch adds the headers defining the winscard API. I
have not reproduced the part about the exported variables because this
works differently in Winelib and in Windows because we cannot export
variables in Winelib. We can worry about them later if they are really
needed.
With this patch, one can compile the stub version of the winscard dll (I
will post that part to wine-devel next).
include/Makefile.in | 2 +
include/winscard.h | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++
include/winsmcrd.h | 37 +++++++++++++
3 files changed, 189 insertions(+), 0 deletions(-)
diff --git a/include/Makefile.in b/include/Makefile.in
index d218856..7dc0cc3 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -352,6 +352,8 @@ SRCDIR_INCLUDES = \
winreg.h \
winres.h \
winresrc.h \
+ winscard.h \
+ winsmcrd.h \
winsock.h \
winsock2.h \
winspool.h \
diff --git a/include/winscard.h b/include/winscard.h
new file mode 100644
index 0000000..8da8e7f
--- /dev/null
+++ b/include/winscard.h
@@ -0,0 +1,150 @@
+/*
+ * Winscard definitions
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WINSCARD_H
+#define __WINE_WINSCARD_H
+
+#include <wtypes.h>
+#include <winioctl.h>
+#include <winsmcrd.h>
+#include <scarderr.h>
+
+#ifndef _LPCBYTE_DEFINED
+#define _LPCBYTE_DEFINED
+typedef const BYTE *LPCBYTE;
+#endif
+
+typedef ULONG_PTR SCARDCONTEXT, *PSCARDCONTEXT, *LPSCARDCONTEXT;
+typedef ULONG_PTR SCARDHANDLE, *PSCARDHANDLE, *LPSCARDHANDLE;
+
+typedef struct _SCARD_ATRMASK
+{
+ DWORD cbAtr;
+ BYTE rgbAtr[36];
+ BYTE rgbMask[36];
+} SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK;
+
+typedef struct
+{
+ LPCSTR szReader;
+ LPVOID pvUserData;
+ DWORD dwCurrentState;
+ DWORD dwEventState;
+ DWORD cbAtr;
+ BYTE rgbAtr[36];
+} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA;
+typedef struct
+{
+ LPCWSTR szReader;
+ LPVOID pvUserData;
+ DWORD dwCurrentState;
+ DWORD dwEventState;
+ DWORD cbAtr;
+ BYTE rgbAtr[36];
+} SCARD_READERSTATEW, *PSCARD_READERSTATEW, *LPSCARD_READERSTATEW;
+DECL_WINELIB_TYPE_AW(SCARD_READERSTATE)
+DECL_WINELIB_TYPE_AW(PSCARD_READERSTATE)
+DECL_WINELIB_TYPE_AW(LPSCARD_READERSTATE)
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HANDLE WINAPI SCardAccessStartedEvent(void);
+LONG WINAPI SCardAddReaderToGroupA(SCARDCONTEXT,LPCSTR,LPCSTR);
+LONG WINAPI SCardAddReaderToGroupW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
+#define SCardAddReaderToGroup WINELIB_NAME_AW(SCardAddReaderToGroup)
+LONG WINAPI SCardBeginTransaction(SCARDHANDLE);
+LONG WINAPI SCardCancel(SCARDCONTEXT);
+LONG WINAPI SCardConnectA(SCARDCONTEXT,LPCSTR,DWORD,DWORD,LPSCARDHANDLE,LPDWORD);
+LONG WINAPI SCardConnectW(SCARDCONTEXT,LPCWSTR,DWORD,DWORD,LPSCARDHANDLE,LPDWORD);
+#define SCardConnect WINELIB_NAME_AW(SCardConnect)
+LONG WINAPI SCardControl(SCARDHANDLE,DWORD,LPCVOID,DWORD,LPVOID,DWORD,LPDWORD);
+LONG WINAPI SCardDisconnect(SCARDHANDLE,DWORD);
+LONG WINAPI SCardEndTransaction(SCARDHANDLE,DWORD);
+LONG WINAPI SCardEstablishContext(DWORD,LPCVOID,LPCVOID,LPSCARDCONTEXT);
+LONG WINAPI SCardForgetCardTypeA(SCARDCONTEXT,LPCSTR);
+LONG WINAPI SCardForgetCardTypeW(SCARDCONTEXT,LPCWSTR);
+#define SCardForgetCardType WINELIB_NAME_AW(SCardForgetCardType)
+LONG WINAPI SCardForgetReaderA(SCARDCONTEXT,LPCSTR);
+LONG WINAPI SCardForgetReaderW(SCARDCONTEXT,LPCWSTR);
+#define SCardForgetReader WINELIB_NAME_AW(SCardForgetReader)
+LONG WINAPI SCardForgetReaderGroupA(SCARDCONTEXT,LPCSTR);
+LONG WINAPI SCardForgetReaderGroupW(SCARDCONTEXT,LPCWSTR);
+#define SCardForgetReaderGroup WINELIB_NAME_AW(SCardForgetReaderGroup)
+LONG WINAPI SCardFreeMemory(SCARDCONTEXT,LPCVOID);
+LONG WINAPI SCardGetAttrib(SCARDHANDLE,DWORD,LPBYTE,LPDWORD);
+LONG WINAPI SCardGetCardTypeProviderNameA(SCARDCONTEXT,LPCSTR,DWORD,LPSTR,LPDWORD);
+LONG WINAPI SCardGetCardTypeProviderNameW(SCARDCONTEXT,LPCWSTR,DWORD,LPWSTR,LPDWORD);
+#define SCardGetCardTypeProviderName WINELIB_NAME_AW(SCardGetCardTypeProviderName)
+LONG WINAPI SCardGetProviderIdA(SCARDCONTEXT,LPCSTR,LPGUID);
+LONG WINAPI SCardGetProviderIdW(SCARDCONTEXT,LPCWSTR,LPGUID);
+#define SCardGetProviderId WINELIB_NAME_AW(SCardGetProviderId)
+LONG WINAPI SCardGetStatusChangeA(SCARDCONTEXT,DWORD,LPSCARD_READERSTATEA,DWORD);
+LONG WINAPI SCardGetStatusChangeW(SCARDCONTEXT,DWORD,LPSCARD_READERSTATEW,DWORD);
+#define SCardGetStatusChange WINELIB_NAME_AW(SCardGetStatusChange)
+LONG WINAPI SCardIntroduceCardTypeA(SCARDCONTEXT,LPCSTR,LPCGUID,LPCGUID,DWORD,LPCBYTE,LPCBYTE,DWORD);
+LONG WINAPI SCardIntroduceCardTypeW(SCARDCONTEXT,LPCWSTR,LPCGUID,LPCGUID,DWORD,LPCBYTE,LPCBYTE,DWORD);
+#define SCardIntroduceCardType WINELIB_NAME_AW(SCardIntroduceCardType)
+LONG WINAPI SCardIntroduceReaderA(SCARDCONTEXT,LPCSTR,LPCSTR);
+LONG WINAPI SCardIntroduceReaderW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
+#define SCardIntroduceReader WINELIB_NAME_AW(SCardIntroduceReader)
+LONG WINAPI SCardIntroduceReaderGroupA(SCARDCONTEXT,LPCSTR);
+LONG WINAPI SCardIntroduceReaderGroupW(SCARDCONTEXT,LPCWSTR);
+#define SCardIntroduceReaderGroup WINELIB_NAME_AW(SCardIntroduceReaderGroup)
+LONG WINAPI SCardIsValidContext(SCARDCONTEXT);
+LONG WINAPI SCardListCardsA(SCARDCONTEXT,LPCBYTE,LPCGUID,DWORD,LPSTR,LPDWORD);
+LONG WINAPI SCardListCardsW(SCARDCONTEXT,LPCBYTE,LPCGUID,DWORD,LPWSTR,LPDWORD);
+#define SCardListCards WINELIB_NAME_AW(SCardListCards)
+LONG WINAPI SCardListInterfacesA(SCARDCONTEXT,LPCSTR,LPGUID,LPDWORD);
+LONG WINAPI SCardListInterfacesW(SCARDCONTEXT,LPCWSTR,LPGUID,LPDWORD);
+#define SCardListInterfaces WINELIB_NAME_AW(SCardListInterfaces)
+LONG WINAPI SCardListReadersA(SCARDCONTEXT,LPCSTR,LPSTR,LPDWORD);
+LONG WINAPI SCardListReadersW(SCARDCONTEXT,LPCWSTR,LPWSTR,LPDWORD);
+#define SCardListReaders WINELIB_NAME_AW(SCardListReaders)
+LONG WINAPI SCardListReaderGroupsA(SCARDCONTEXT,LPSTR,LPDWORD);
+LONG WINAPI SCardListReaderGroupsW(SCARDCONTEXT,LPWSTR,LPDWORD);
+#define SCardListReaderGroups WINELIB_NAME_AW(SCardListReaderGroups)
+LONG WINAPI SCardLocateCardsA(SCARDCONTEXT,LPCSTR,LPSCARD_READERSTATEA,DWORD);
+LONG WINAPI SCardLocateCardsW(SCARDCONTEXT,LPCWSTR,LPSCARD_READERSTATEW,DWORD);
+#define SCardLocateCards WINELIB_NAME_AW(SCardLocateCards)
+LONG WINAPI SCardLocateCardsByATRA(SCARDCONTEXT,LPSCARD_ATRMASK,DWORD,LPSCARD_READERSTATEA,DWORD);
+LONG WINAPI SCardLocateCardsByATRW(SCARDCONTEXT,LPSCARD_ATRMASK,DWORD,LPSCARD_READERSTATEW,DWORD);
+#define SCardLocateCardsByATR WINELIB_NAME_AW(SCardLocateCardsByATR)
+LONG WINAPI SCardReconnect(SCARDHANDLE,DWORD,DWORD,DWORD,LPDWORD);
+LONG WINAPI SCardReleaseContext(SCARDCONTEXT);
+void WINAPI SCardReleaseStartedEvent(void);
+LONG WINAPI SCardRemoveReaderFromGroupA(SCARDCONTEXT,LPCSTR,LPCSTR);
+LONG WINAPI SCardRemoveReaderFromGroupW(SCARDCONTEXT,LPCWSTR,LPCWSTR);
+#define SCardRemoveReaderFromGroup WINELIB_NAME_AW(SCardRemoveReaderFromGroup)
+LONG WINAPI SCardSetAttrib(SCARDHANDLE,DWORD,LPCBYTE,DWORD);
+LONG WINAPI SCardSetCardTypeProviderNameA(SCARDCONTEXT,LPCSTR,DWORD,LPCSTR);
+LONG WINAPI SCardSetCardTypeProviderNameW(SCARDCONTEXT,LPCWSTR,DWORD,LPCWSTR);
+#define SCardSetCardTypeProviderName WINELIB_NAME_AW(SCardSetCardTypeProviderName)
+LONG WINAPI SCardState(SCARDHANDLE,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG WINAPI SCardStatusA(SCARDHANDLE,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+LONG WINAPI SCardStatusW(SCARDHANDLE,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
+#define SCardStatus WINELIB_NAME_AW(SCardStatus)
+LONG WINAPI SCardTransmit(SCARDHANDLE,LPCSCARD_IO_REQUEST,LPCBYTE,DWORD,LPSCARD_IO_REQUEST,LPBYTE,LPDWORD);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WINE_WINSCARD_H */
diff --git a/include/winsmcrd.h b/include/winsmcrd.h
new file mode 100644
index 0000000..60fdd3e
--- /dev/null
+++ b/include/winsmcrd.h
@@ -0,0 +1,37 @@
+/*
+ * Winscard definitions
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WINSMCRD_H
+#define __WINE_WINSMCRD_H
+
+#define SCARD_PROTOCOL_UNDEFINED 0x00000000
+#define SCARD_PROTOCOL_OPTIMAL 0x00000000
+#define SCARD_PROTOCOL_T0 0x00000001
+#define SCARD_PROTOCOL_T1 0x00000002
+#define SCARD_PROTOCOL_RAW 0x00010000
+#define SCARD_PROTOCOL_DEFAULT 0x80000000
+#define SCARD_PROTOCOL_Tx (SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1)
+
+typedef struct _SCARD_IO_REQUEST
+{
+ DWORD dwProtocol;
+ DWORD cbPciLength;
+} SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST;
+typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST;
+
+#endif /* __WINE_WINSMCRD_H */
--
1.4.4.4
More information about the wine-patches
mailing list