Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error This stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __scardssp_h__
     23 #define __scardssp_h__
     24 
     25 #ifndef __IByteBuffer_FWD_DEFINED__
     26 #define __IByteBuffer_FWD_DEFINED__
     27 typedef struct IByteBuffer IByteBuffer;
     28 #endif
     29 
     30 #ifndef __ISCardTypeConv_FWD_DEFINED__
     31 #define __ISCardTypeConv_FWD_DEFINED__
     32 typedef struct ISCardTypeConv ISCardTypeConv;
     33 #endif
     34 
     35 #ifndef __ISCardCmd_FWD_DEFINED__
     36 #define __ISCardCmd_FWD_DEFINED__
     37 typedef struct ISCardCmd ISCardCmd;
     38 #endif
     39 
     40 #ifndef __ISCardISO7816_FWD_DEFINED__
     41 #define __ISCardISO7816_FWD_DEFINED__
     42 typedef struct ISCardISO7816 ISCardISO7816;
     43 #endif
     44 
     45 #ifndef __ISCard_FWD_DEFINED__
     46 #define __ISCard_FWD_DEFINED__
     47 typedef struct ISCard ISCard;
     48 #endif
     49 
     50 #ifndef __ISCardDatabase_FWD_DEFINED__
     51 #define __ISCardDatabase_FWD_DEFINED__
     52 typedef struct ISCardDatabase ISCardDatabase;
     53 #endif
     54 
     55 #ifndef __ISCardLocate_FWD_DEFINED__
     56 #define __ISCardLocate_FWD_DEFINED__
     57 typedef struct ISCardLocate ISCardLocate;
     58 #endif
     59 
     60 #ifndef __CByteBuffer_FWD_DEFINED__
     61 #define __CByteBuffer_FWD_DEFINED__
     62 #ifdef __cplusplus
     63 typedef class CByteBuffer CByteBuffer;
     64 #else
     65 typedef struct CByteBuffer CByteBuffer;
     66 #endif
     67 #endif
     68 
     69 #ifndef __CSCardTypeConv_FWD_DEFINED__
     70 #define __CSCardTypeConv_FWD_DEFINED__
     71 #ifdef __cplusplus
     72 typedef class CSCardTypeConv CSCardTypeConv;
     73 #else
     74 typedef struct CSCardTypeConv CSCardTypeConv;
     75 #endif
     76 #endif
     77 
     78 #ifndef __CSCardCmd_FWD_DEFINED__
     79 #define __CSCardCmd_FWD_DEFINED__
     80 #ifdef __cplusplus
     81 typedef class CSCardCmd CSCardCmd;
     82 #else
     83 typedef struct CSCardCmd CSCardCmd;
     84 #endif
     85 #endif
     86 
     87 #ifndef __CSCardISO7816_FWD_DEFINED__
     88 #define __CSCardISO7816_FWD_DEFINED__
     89 #ifdef __cplusplus
     90 typedef class CSCardISO7816 CSCardISO7816;
     91 #else
     92 typedef struct CSCardISO7816 CSCardISO7816;
     93 #endif
     94 #endif
     95 
     96 #ifndef __CSCard_FWD_DEFINED__
     97 #define __CSCard_FWD_DEFINED__
     98 #ifdef __cplusplus
     99 typedef class CSCard CSCard;
    100 #else
    101 typedef struct CSCard CSCard;
    102 #endif
    103 #endif
    104 
    105 #ifndef __CSCardDatabase_FWD_DEFINED__
    106 #define __CSCardDatabase_FWD_DEFINED__
    107 #ifdef __cplusplus
    108 typedef class CSCardDatabase CSCardDatabase;
    109 #else
    110 typedef struct CSCardDatabase CSCardDatabase;
    111 #endif
    112 #endif
    113 
    114 #ifndef __CSCardLocate_FWD_DEFINED__
    115 #define __CSCardLocate_FWD_DEFINED__
    116 #ifdef __cplusplus
    117 typedef class CSCardLocate CSCardLocate;
    118 #else
    119 typedef struct CSCardLocate CSCardLocate;
    120 #endif
    121 #endif
    122 
    123 #include "oaidl.h"
    124 #include "ocidl.h"
    125 
    126 #ifdef __cplusplus
    127 extern "C" {
    128 #endif
    129 
    130 #ifndef __MIDL_user_allocate_free_DEFINED__
    131 #define __MIDL_user_allocate_free_DEFINED__
    132   void *__RPC_API MIDL_user_allocate(size_t);
    133   void __RPC_API MIDL_user_free(void *);
    134 #endif
    135 
    136 #ifndef _NULL_DEFINED
    137 #define _NULL_DEFINED
    138 #endif
    139 #ifndef _BYTE_DEFINED
    140 #define _BYTE_DEFINED
    141   typedef unsigned char BYTE;
    142 #endif
    143 #ifndef _LPBYTE_DEFINED
    144 #define _LPBYTE_DEFINED
    145   typedef BYTE *LPBYTE;
    146 #endif
    147 #ifndef _LPCBYTE_DEFINED
    148 #define _LPCBYTE_DEFINED
    149   typedef const BYTE *LPCBYTE;
    150 #endif
    151 #ifndef _HSCARD_DEFINED
    152 #define _HSCARD_DEFINED
    153   typedef ULONG_PTR HSCARD;
    154 #endif
    155 #ifndef _LPHSCARD_DEFINED
    156 #define _LPHSCARD_DEFINED
    157   typedef HSCARD *PHSCARD;
    158 
    159   typedef HSCARD *LPHSCARD;
    160 #endif
    161 #ifndef _HSCARDCONTEXT_DEFINED
    162 #define _HSCARDCONTEXT_DEFINED
    163   typedef ULONG_PTR HSCARDCONTEXT;
    164 #endif
    165 #ifndef _LPHSCARDCONTEXT_DEFINED
    166 #define _LPHSCARDCONTEXT_DEFINED
    167   typedef *PHSCARDCONTEXT;
    168 
    169   typedef *LPHSCARDCONTEXT;
    170 #endif
    171 #ifndef _BYTEARRAY_DEFINED
    172 #define _BYTEARRAY_DEFINED
    173   typedef struct tagBYTEARRAY {
    174     HGLOBAL hMem;
    175     DWORD dwSize;
    176     LPBYTE pbyData;
    177   } BYTEARRAY;
    178 
    179 #define _CB_BYTEARRAY_DEFINED
    180 #define CB_BYTEARRAY (sizeof(BYTEARRAY))
    181 #define _PBYTEARRAY_DEFINED
    182   typedef BYTEARRAY *PBYTEARRAY;
    183 
    184 #define _PCBYTEARRAY_DEFINED
    185   typedef const BYTEARRAY *PCBYTEARRAY;
    186 
    187 #define _LPBYTEARRAY_DEFINED
    188   typedef BYTEARRAY *LPBYTEARRAY;
    189 
    190 #define _LPCBYTEARRAY_DEFINED
    191   typedef const BYTEARRAY *LPCBYTEARRAY;
    192 #endif
    193 #ifndef _STATSTRUCT
    194 #define _STATSTRUCT
    195   typedef struct tagSTATSTRUCT {
    196     LONG type;
    197     LONG cbSize;
    198     LONG grfMode;
    199     LONG grfLocksSupported;
    200     LONG grfStateBits;
    201   } STATSTRUCT;
    202 
    203 #define _CB_STATSTRUCT_DEFINED
    204 #define CB_STATSTRUCT (sizeof(STATSTRUCT))
    205 #define _LPSTATSTRUCT_DEFINED
    206   typedef STATSTRUCT *LPSTATSTRUCT;
    207 #endif
    208 #ifndef _ISO_APDU_TYPE
    209 #define _ISO_APDU_TYPE
    210   typedef enum tagISO_APDU_TYPE {
    211     ISO_CASE_1 = 1,ISO_CASE_2 = 2,ISO_CASE_3 = 3,ISO_CASE_4 = 4
    212   } ISO_APDU_TYPE;
    213 #endif
    214 #ifndef _SCARD_SHARE_MODES_DEFINED
    215 #define _SCARD_SHARE_MODES_DEFINED
    216   typedef enum tagSCARD_SHARE_MODES {
    217     EXCLUSIVE = 1,SHARED = 2
    218   } SCARD_SHARE_MODES;
    219 #endif
    220 #ifndef _SCARD_DISPOSITIONS_DEFINED
    221 #define _SCARD_DISPOSITIONS_DEFINED
    222   typedef enum tagSCARD_DISPOSITIONS {
    223     LEAVE = 0,RESET = 1,UNPOWER = 2,EJECT = 3
    224   } SCARD_DISPOSITIONS;
    225 #endif
    226 #ifndef _SCARD_STATES_DEFINED
    227 #define _SCARD_STATES_DEFINED
    228   typedef enum tagSCARD_STATES {
    229     ABSENT = 1,PRESENT = 2,SWALLOWED = 3,POWERED = 4,NEGOTIABLEMODE = 5,SPECIFICMODE = 6
    230   } SCARD_STATES;
    231 #endif
    232 #ifndef _SCARD_PROTOCOLS_DEFINED
    233 #define _SCARD_PROTOCOLS_DEFINED
    234   typedef enum tagSCARD_PROTOCOLS {
    235     T0 = 0x1,T1 = 0x2,RAW = 0xff
    236   } SCARD_PROTOCOLS;
    237 #endif
    238 #ifndef _SCARD_INFO
    239 #define _SCARD_INFO
    240   typedef struct tagSCARDINFO {
    241     HSCARD hCard;
    242     HSCARDCONTEXT hContext;
    243     SCARD_PROTOCOLS ActiveProtocol;
    244     SCARD_SHARE_MODES ShareMode;
    245     LONG_PTR hwndOwner;
    246     LONG_PTR lpfnConnectProc;
    247     LONG_PTR lpfnCheckProc;
    248     LONG_PTR lpfnDisconnectProc;
    249   } SCARDINFO;
    250 
    251 #define _LPSCARDINFO
    252   typedef SCARDINFO *PSCARDINFO;
    253   typedef SCARDINFO *LPSCARDINFO;
    254 #endif
    255 
    256 #ifndef _LPBYTEBUFFER_DEFINED
    257 #define _LPBYTEBUFFER_DEFINED
    258   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0000_v0_0_c_ifspec;
    259   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0000_v0_0_s_ifspec;
    260 
    261 #ifndef __IByteBuffer_INTERFACE_DEFINED__
    262 #define __IByteBuffer_INTERFACE_DEFINED__
    263   typedef IByteBuffer *LPBYTEBUFFER;
    264   typedef const IByteBuffer *LPCBYTEBUFFER;
    265 
    266   EXTERN_C const IID IID_IByteBuffer;
    267 #if defined(__cplusplus) && !defined(CINTERFACE)
    268   struct IByteBuffer : public IDispatch {
    269   public:
    270     virtual HRESULT WINAPI get_Stream(LPSTREAM *ppStream) = 0;
    271     virtual HRESULT WINAPI put_Stream(LPSTREAM pStream) = 0;
    272     virtual HRESULT WINAPI Clone(LPBYTEBUFFER *ppByteBuffer) = 0;
    273     virtual HRESULT WINAPI Commit(LONG grfCommitFlags) = 0;
    274     virtual HRESULT WINAPI CopyTo(LPBYTEBUFFER *ppByteBuffer,LONG cb,LONG *pcbRead = 0,LONG *pcbWritten = 0) = 0;
    275     virtual HRESULT WINAPI Initialize(LONG lSize = 1,BYTE *pData = 0) = 0;
    276     virtual HRESULT WINAPI LockRegion(LONG libOffset,LONG cb,LONG dwLockType) = 0;
    277     virtual HRESULT WINAPI Read(BYTE *pByte,LONG cb,LONG *pcbRead = 0) = 0;
    278     virtual HRESULT WINAPI Revert(void) = 0;
    279     virtual HRESULT WINAPI Seek(LONG dLibMove,LONG dwOrigin,LONG *pLibnewPosition = 0) = 0;
    280     virtual HRESULT WINAPI SetSize(LONG libNewSize) = 0;
    281     virtual HRESULT WINAPI Stat(LPSTATSTRUCT pstatstg,LONG grfStatFlag) = 0;
    282     virtual HRESULT WINAPI UnlockRegion(LONG libOffset,LONG cb,LONG dwLockType) = 0;
    283     virtual HRESULT WINAPI Write(BYTE *pByte,LONG cb,LONG *pcbWritten) = 0;
    284   };
    285 #else
    286   typedef struct IByteBufferVtbl {
    287     BEGIN_INTERFACE
    288       HRESULT (WINAPI *QueryInterface)(IByteBuffer *This,REFIID riid,void **ppvObject);
    289       ULONG (WINAPI *AddRef)(IByteBuffer *This);
    290       ULONG (WINAPI *Release)(IByteBuffer *This);
    291       HRESULT (WINAPI *GetTypeInfoCount)(IByteBuffer *This,UINT *pctinfo);
    292       HRESULT (WINAPI *GetTypeInfo)(IByteBuffer *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    293       HRESULT (WINAPI *GetIDsOfNames)(IByteBuffer *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    294       HRESULT (WINAPI *Invoke)(IByteBuffer *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    295       HRESULT (WINAPI *get_Stream)(IByteBuffer *This,LPSTREAM *ppStream);
    296       HRESULT (WINAPI *put_Stream)(IByteBuffer *This,LPSTREAM pStream);
    297       HRESULT (WINAPI *Clone)(IByteBuffer *This,LPBYTEBUFFER *ppByteBuffer);
    298       HRESULT (WINAPI *Commit)(IByteBuffer *This,LONG grfCommitFlags);
    299       HRESULT (WINAPI *CopyTo)(IByteBuffer *This,LPBYTEBUFFER *ppByteBuffer,LONG cb,LONG *pcbRead,LONG *pcbWritten);
    300       HRESULT (WINAPI *Initialize)(IByteBuffer *This,LONG lSize,BYTE *pData);
    301       HRESULT (WINAPI *LockRegion)(IByteBuffer *This,LONG libOffset,LONG cb,LONG dwLockType);
    302       HRESULT (WINAPI *Read)(IByteBuffer *This,BYTE *pByte,LONG cb,LONG *pcbRead);
    303       HRESULT (WINAPI *Revert)(IByteBuffer *This);
    304       HRESULT (WINAPI *Seek)(IByteBuffer *This,LONG dLibMove,LONG dwOrigin,LONG *pLibnewPosition);
    305       HRESULT (WINAPI *SetSize)(IByteBuffer *This,LONG libNewSize);
    306       HRESULT (WINAPI *Stat)(IByteBuffer *This,LPSTATSTRUCT pstatstg,LONG grfStatFlag);
    307       HRESULT (WINAPI *UnlockRegion)(IByteBuffer *This,LONG libOffset,LONG cb,LONG dwLockType);
    308       HRESULT (WINAPI *Write)(IByteBuffer *This,BYTE *pByte,LONG cb,LONG *pcbWritten);
    309     END_INTERFACE
    310   } IByteBufferVtbl;
    311   struct IByteBuffer {
    312     CONST_VTBL struct IByteBufferVtbl *lpVtbl;
    313   };
    314 #ifdef COBJMACROS
    315 #define IByteBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    316 #define IByteBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
    317 #define IByteBuffer_Release(This) (This)->lpVtbl->Release(This)
    318 #define IByteBuffer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    319 #define IByteBuffer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    320 #define IByteBuffer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    321 #define IByteBuffer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    322 #define IByteBuffer_get_Stream(This,ppStream) (This)->lpVtbl->get_Stream(This,ppStream)
    323 #define IByteBuffer_put_Stream(This,pStream) (This)->lpVtbl->put_Stream(This,pStream)
    324 #define IByteBuffer_Clone(This,ppByteBuffer) (This)->lpVtbl->Clone(This,ppByteBuffer)
    325 #define IByteBuffer_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
    326 #define IByteBuffer_CopyTo(This,ppByteBuffer,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,ppByteBuffer,cb,pcbRead,pcbWritten)
    327 #define IByteBuffer_Initialize(This,lSize,pData) (This)->lpVtbl->Initialize(This,lSize,pData)
    328 #define IByteBuffer_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
    329 #define IByteBuffer_Read(This,pByte,cb,pcbRead) (This)->lpVtbl->Read(This,pByte,cb,pcbRead)
    330 #define IByteBuffer_Revert(This) (This)->lpVtbl->Revert(This)
    331 #define IByteBuffer_Seek(This,dLibMove,dwOrigin,pLibnewPosition) (This)->lpVtbl->Seek(This,dLibMove,dwOrigin,pLibnewPosition)
    332 #define IByteBuffer_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
    333 #define IByteBuffer_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
    334 #define IByteBuffer_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
    335 #define IByteBuffer_Write(This,pByte,cb,pcbWritten) (This)->lpVtbl->Write(This,pByte,cb,pcbWritten)
    336 #endif
    337 #endif
    338   HRESULT WINAPI IByteBuffer_get_Stream_Proxy(IByteBuffer *This,LPSTREAM *ppStream);
    339   void __RPC_STUB IByteBuffer_get_Stream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    340   HRESULT WINAPI IByteBuffer_put_Stream_Proxy(IByteBuffer *This,LPSTREAM pStream);
    341   void __RPC_STUB IByteBuffer_put_Stream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    342   HRESULT WINAPI IByteBuffer_Clone_Proxy(IByteBuffer *This,LPBYTEBUFFER *ppByteBuffer);
    343   void __RPC_STUB IByteBuffer_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    344   HRESULT WINAPI IByteBuffer_Commit_Proxy(IByteBuffer *This,LONG grfCommitFlags);
    345   void __RPC_STUB IByteBuffer_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    346   HRESULT WINAPI IByteBuffer_CopyTo_Proxy(IByteBuffer *This,LPBYTEBUFFER *ppByteBuffer,LONG cb,LONG *pcbRead,LONG *pcbWritten);
    347   void __RPC_STUB IByteBuffer_CopyTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    348   HRESULT WINAPI IByteBuffer_Initialize_Proxy(IByteBuffer *This,LONG lSize,BYTE *pData);
    349   void __RPC_STUB IByteBuffer_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    350   HRESULT WINAPI IByteBuffer_LockRegion_Proxy(IByteBuffer *This,LONG libOffset,LONG cb,LONG dwLockType);
    351   void __RPC_STUB IByteBuffer_LockRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    352   HRESULT WINAPI IByteBuffer_Read_Proxy(IByteBuffer *This,BYTE *pByte,LONG cb,LONG *pcbRead);
    353   void __RPC_STUB IByteBuffer_Read_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    354   HRESULT WINAPI IByteBuffer_Revert_Proxy(IByteBuffer *This);
    355   void __RPC_STUB IByteBuffer_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    356   HRESULT WINAPI IByteBuffer_Seek_Proxy(IByteBuffer *This,LONG dLibMove,LONG dwOrigin,LONG *pLibnewPosition);
    357   void __RPC_STUB IByteBuffer_Seek_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    358   HRESULT WINAPI IByteBuffer_SetSize_Proxy(IByteBuffer *This,LONG libNewSize);
    359   void __RPC_STUB IByteBuffer_SetSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    360   HRESULT WINAPI IByteBuffer_Stat_Proxy(IByteBuffer *This,LPSTATSTRUCT pstatstg,LONG grfStatFlag);
    361   void __RPC_STUB IByteBuffer_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    362   HRESULT WINAPI IByteBuffer_UnlockRegion_Proxy(IByteBuffer *This,LONG libOffset,LONG cb,LONG dwLockType);
    363   void __RPC_STUB IByteBuffer_UnlockRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    364   HRESULT WINAPI IByteBuffer_Write_Proxy(IByteBuffer *This,BYTE *pByte,LONG cb,LONG *pcbWritten);
    365   void __RPC_STUB IByteBuffer_Write_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    366 #endif
    367 #endif
    368 
    369 #ifndef _LPSCARDTYPECONV_DEFINED
    370 #define _LPSCARDTYPECONV_DEFINED
    371   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0244_v0_0_c_ifspec;
    372   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0244_v0_0_s_ifspec;
    373 
    374 #ifndef __ISCardTypeConv_INTERFACE_DEFINED__
    375 #define __ISCardTypeConv_INTERFACE_DEFINED__
    376   typedef ISCardTypeConv *LPSCARDTYPECONV;
    377 
    378   EXTERN_C const IID IID_ISCardTypeConv;
    379 #if defined(__cplusplus) && !defined(CINTERFACE)
    380   struct ISCardTypeConv : public IDispatch {
    381   public:
    382     virtual HRESULT WINAPI ConvertByteArrayToByteBuffer(LPBYTE pbyArray,DWORD dwArraySize,LPBYTEBUFFER *ppbyBuffer) = 0;
    383     virtual HRESULT WINAPI ConvertByteBufferToByteArray(LPBYTEBUFFER pbyBuffer,LPBYTEARRAY *ppArray) = 0;
    384     virtual HRESULT WINAPI ConvertByteBufferToSafeArray(LPBYTEBUFFER pbyBuffer,LPSAFEARRAY *ppbyArray) = 0;
    385     virtual HRESULT WINAPI ConvertSafeArrayToByteBuffer(LPSAFEARRAY pbyArray,LPBYTEBUFFER *ppbyBuff) = 0;
    386     virtual HRESULT WINAPI CreateByteArray(DWORD dwAllocSize,LPBYTE *ppbyArray) = 0;
    387     virtual HRESULT WINAPI CreateByteBuffer(DWORD dwAllocSize,LPBYTEBUFFER *ppbyBuff) = 0;
    388     virtual HRESULT WINAPI CreateSafeArray(UINT nAllocSize,LPSAFEARRAY *ppArray) = 0;
    389     virtual HRESULT WINAPI FreeIStreamMemoryPtr(LPSTREAM pStrm,LPBYTE pMem) = 0;
    390     virtual HRESULT WINAPI GetAtIStreamMemory(LPSTREAM pStrm,LPBYTEARRAY *ppMem) = 0;
    391     virtual HRESULT WINAPI SizeOfIStream(LPSTREAM pStrm,ULARGE_INTEGER *puliSize) = 0;
    392   };
    393 #else
    394   typedef struct ISCardTypeConvVtbl {
    395     BEGIN_INTERFACE
    396       HRESULT (WINAPI *QueryInterface)(ISCardTypeConv *This,REFIID riid,void **ppvObject);
    397       ULONG (WINAPI *AddRef)(ISCardTypeConv *This);
    398       ULONG (WINAPI *Release)(ISCardTypeConv *This);
    399       HRESULT (WINAPI *GetTypeInfoCount)(ISCardTypeConv *This,UINT *pctinfo);
    400       HRESULT (WINAPI *GetTypeInfo)(ISCardTypeConv *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    401       HRESULT (WINAPI *GetIDsOfNames)(ISCardTypeConv *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    402       HRESULT (WINAPI *Invoke)(ISCardTypeConv *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    403       HRESULT (WINAPI *ConvertByteArrayToByteBuffer)(ISCardTypeConv *This,LPBYTE pbyArray,DWORD dwArraySize,LPBYTEBUFFER *ppbyBuffer);
    404       HRESULT (WINAPI *ConvertByteBufferToByteArray)(ISCardTypeConv *This,LPBYTEBUFFER pbyBuffer,LPBYTEARRAY *ppArray);
    405       HRESULT (WINAPI *ConvertByteBufferToSafeArray)(ISCardTypeConv *This,LPBYTEBUFFER pbyBuffer,LPSAFEARRAY *ppbyArray);
    406       HRESULT (WINAPI *ConvertSafeArrayToByteBuffer)(ISCardTypeConv *This,LPSAFEARRAY pbyArray,LPBYTEBUFFER *ppbyBuff);
    407       HRESULT (WINAPI *CreateByteArray)(ISCardTypeConv *This,DWORD dwAllocSize,LPBYTE *ppbyArray);
    408       HRESULT (WINAPI *CreateByteBuffer)(ISCardTypeConv *This,DWORD dwAllocSize,LPBYTEBUFFER *ppbyBuff);
    409       HRESULT (WINAPI *CreateSafeArray)(ISCardTypeConv *This,UINT nAllocSize,LPSAFEARRAY *ppArray);
    410       HRESULT (WINAPI *FreeIStreamMemoryPtr)(ISCardTypeConv *This,LPSTREAM pStrm,LPBYTE pMem);
    411       HRESULT (WINAPI *GetAtIStreamMemory)(ISCardTypeConv *This,LPSTREAM pStrm,LPBYTEARRAY *ppMem);
    412       HRESULT (WINAPI *SizeOfIStream)(ISCardTypeConv *This,LPSTREAM pStrm,ULARGE_INTEGER *puliSize);
    413     END_INTERFACE
    414   } ISCardTypeConvVtbl;
    415   struct ISCardTypeConv {
    416     CONST_VTBL struct ISCardTypeConvVtbl *lpVtbl;
    417   };
    418 #ifdef COBJMACROS
    419 #define ISCardTypeConv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    420 #define ISCardTypeConv_AddRef(This) (This)->lpVtbl->AddRef(This)
    421 #define ISCardTypeConv_Release(This) (This)->lpVtbl->Release(This)
    422 #define ISCardTypeConv_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    423 #define ISCardTypeConv_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    424 #define ISCardTypeConv_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    425 #define ISCardTypeConv_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    426 #define ISCardTypeConv_ConvertByteArrayToByteBuffer(This,pbyArray,dwArraySize,ppbyBuffer) (This)->lpVtbl->ConvertByteArrayToByteBuffer(This,pbyArray,dwArraySize,ppbyBuffer)
    427 #define ISCardTypeConv_ConvertByteBufferToByteArray(This,pbyBuffer,ppArray) (This)->lpVtbl->ConvertByteBufferToByteArray(This,pbyBuffer,ppArray)
    428 #define ISCardTypeConv_ConvertByteBufferToSafeArray(This,pbyBuffer,ppbyArray) (This)->lpVtbl->ConvertByteBufferToSafeArray(This,pbyBuffer,ppbyArray)
    429 #define ISCardTypeConv_ConvertSafeArrayToByteBuffer(This,pbyArray,ppbyBuff) (This)->lpVtbl->ConvertSafeArrayToByteBuffer(This,pbyArray,ppbyBuff)
    430 #define ISCardTypeConv_CreateByteArray(This,dwAllocSize,ppbyArray) (This)->lpVtbl->CreateByteArray(This,dwAllocSize,ppbyArray)
    431 #define ISCardTypeConv_CreateByteBuffer(This,dwAllocSize,ppbyBuff) (This)->lpVtbl->CreateByteBuffer(This,dwAllocSize,ppbyBuff)
    432 #define ISCardTypeConv_CreateSafeArray(This,nAllocSize,ppArray) (This)->lpVtbl->CreateSafeArray(This,nAllocSize,ppArray)
    433 #define ISCardTypeConv_FreeIStreamMemoryPtr(This,pStrm,pMem) (This)->lpVtbl->FreeIStreamMemoryPtr(This,pStrm,pMem)
    434 #define ISCardTypeConv_GetAtIStreamMemory(This,pStrm,ppMem) (This)->lpVtbl->GetAtIStreamMemory(This,pStrm,ppMem)
    435 #define ISCardTypeConv_SizeOfIStream(This,pStrm,puliSize) (This)->lpVtbl->SizeOfIStream(This,pStrm,puliSize)
    436 #endif
    437 #endif
    438   HRESULT WINAPI ISCardTypeConv_ConvertByteArrayToByteBuffer_Proxy(ISCardTypeConv *This,LPBYTE pbyArray,DWORD dwArraySize,LPBYTEBUFFER *ppbyBuffer);
    439   void __RPC_STUB ISCardTypeConv_ConvertByteArrayToByteBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    440   HRESULT WINAPI ISCardTypeConv_ConvertByteBufferToByteArray_Proxy(ISCardTypeConv *This,LPBYTEBUFFER pbyBuffer,LPBYTEARRAY *ppArray);
    441   void __RPC_STUB ISCardTypeConv_ConvertByteBufferToByteArray_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    442   HRESULT WINAPI ISCardTypeConv_ConvertByteBufferToSafeArray_Proxy(ISCardTypeConv *This,LPBYTEBUFFER pbyBuffer,LPSAFEARRAY *ppbyArray);
    443   void __RPC_STUB ISCardTypeConv_ConvertByteBufferToSafeArray_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    444   HRESULT WINAPI ISCardTypeConv_ConvertSafeArrayToByteBuffer_Proxy(ISCardTypeConv *This,LPSAFEARRAY pbyArray,LPBYTEBUFFER *ppbyBuff);
    445   void __RPC_STUB ISCardTypeConv_ConvertSafeArrayToByteBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    446   HRESULT WINAPI ISCardTypeConv_CreateByteArray_Proxy(ISCardTypeConv *This,DWORD dwAllocSize,LPBYTE *ppbyArray);
    447   void __RPC_STUB ISCardTypeConv_CreateByteArray_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    448   HRESULT WINAPI ISCardTypeConv_CreateByteBuffer_Proxy(ISCardTypeConv *This,DWORD dwAllocSize,LPBYTEBUFFER *ppbyBuff);
    449   void __RPC_STUB ISCardTypeConv_CreateByteBuffer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    450   HRESULT WINAPI ISCardTypeConv_CreateSafeArray_Proxy(ISCardTypeConv *This,UINT nAllocSize,LPSAFEARRAY *ppArray);
    451   void __RPC_STUB ISCardTypeConv_CreateSafeArray_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    452   HRESULT WINAPI ISCardTypeConv_FreeIStreamMemoryPtr_Proxy(ISCardTypeConv *This,LPSTREAM pStrm,LPBYTE pMem);
    453   void __RPC_STUB ISCardTypeConv_FreeIStreamMemoryPtr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    454   HRESULT WINAPI ISCardTypeConv_GetAtIStreamMemory_Proxy(ISCardTypeConv *This,LPSTREAM pStrm,LPBYTEARRAY *ppMem);
    455   void __RPC_STUB ISCardTypeConv_GetAtIStreamMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    456   HRESULT WINAPI ISCardTypeConv_SizeOfIStream_Proxy(ISCardTypeConv *This,LPSTREAM pStrm,ULARGE_INTEGER *puliSize);
    457   void __RPC_STUB ISCardTypeConv_SizeOfIStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    458 #endif
    459 #endif
    460 
    461 #ifndef _LPSCARDCMD_DEFINED
    462 #define _LPSCARDCMD_DEFINED
    463   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0245_v0_0_c_ifspec;
    464   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0245_v0_0_s_ifspec;
    465 #ifndef __ISCardCmd_INTERFACE_DEFINED__
    466 #define __ISCardCmd_INTERFACE_DEFINED__
    467   typedef ISCardCmd *LPSCARDCMD;
    468 
    469   EXTERN_C const IID IID_ISCardCmd;
    470 #if defined(__cplusplus) && !defined(CINTERFACE)
    471   struct ISCardCmd : public IDispatch {
    472   public:
    473     virtual HRESULT WINAPI get_Apdu(LPBYTEBUFFER *ppApdu) = 0;
    474     virtual HRESULT WINAPI put_Apdu(LPBYTEBUFFER pApdu) = 0;
    475     virtual HRESULT WINAPI get_ApduLength(LONG *plSize) = 0;
    476     virtual HRESULT WINAPI get_ApduReply(LPBYTEBUFFER *ppReplyApdu) = 0;
    477     virtual HRESULT WINAPI put_ApduReply(LPBYTEBUFFER pReplyApdu) = 0;
    478     virtual HRESULT WINAPI get_ApduReplyLength(LONG *plSize) = 0;
    479     virtual HRESULT WINAPI put_ApduReplyLength(LONG lSize) = 0;
    480     virtual HRESULT WINAPI get_ClassId(BYTE *pbyClass) = 0;
    481     virtual HRESULT WINAPI put_ClassId(BYTE byClass = 0) = 0;
    482     virtual HRESULT WINAPI get_Data(LPBYTEBUFFER *ppData) = 0;
    483     virtual HRESULT WINAPI put_Data(LPBYTEBUFFER pData) = 0;
    484     virtual HRESULT WINAPI get_InstructionId(BYTE *pbyIns) = 0;
    485     virtual HRESULT WINAPI put_InstructionId(BYTE byIns) = 0;
    486     virtual HRESULT WINAPI get_LeField(LONG *plSize) = 0;
    487     virtual HRESULT WINAPI get_P1(BYTE *pbyP1) = 0;
    488     virtual HRESULT WINAPI put_P1(BYTE byP1) = 0;
    489     virtual HRESULT WINAPI get_P2(BYTE *pbyP2) = 0;
    490     virtual HRESULT WINAPI put_P2(BYTE byP2) = 0;
    491     virtual HRESULT WINAPI get_P3(BYTE *pbyP3) = 0;
    492     virtual HRESULT WINAPI get_ReplyStatus(LPWORD pwStatus) = 0;
    493     virtual HRESULT WINAPI put_ReplyStatus(WORD wStatus) = 0;
    494     virtual HRESULT WINAPI get_ReplyStatusSW1(BYTE *pbySW1) = 0;
    495     virtual HRESULT WINAPI get_ReplyStatusSW2(BYTE *pbySW2) = 0;
    496     virtual HRESULT WINAPI get_Type(ISO_APDU_TYPE *pType) = 0;
    497     virtual HRESULT WINAPI get_Nad(BYTE *pbNad) = 0;
    498     virtual HRESULT WINAPI put_Nad(BYTE bNad) = 0;
    499     virtual HRESULT WINAPI get_ReplyNad(BYTE *pbNad) = 0;
    500     virtual HRESULT WINAPI put_ReplyNad(BYTE bNad) = 0;
    501     virtual HRESULT WINAPI BuildCmd(BYTE byClassId,BYTE byInsId,BYTE byP1 = 0,BYTE byP2 = 0,LPBYTEBUFFER pbyData = 0,LONG *plLe = 0) = 0;
    502     virtual HRESULT WINAPI Clear(void) = 0;
    503     virtual HRESULT WINAPI Encapsulate(LPBYTEBUFFER pApdu,ISO_APDU_TYPE ApduType) = 0;
    504     virtual HRESULT WINAPI get_AlternateClassId(BYTE *pbyClass) = 0;
    505     virtual HRESULT WINAPI put_AlternateClassId(BYTE byClass) = 0;
    506   };
    507 #else
    508   typedef struct ISCardCmdVtbl {
    509     BEGIN_INTERFACE
    510       HRESULT (WINAPI *QueryInterface)(ISCardCmd *This,REFIID riid,void **ppvObject);
    511       ULONG (WINAPI *AddRef)(ISCardCmd *This);
    512       ULONG (WINAPI *Release)(ISCardCmd *This);
    513       HRESULT (WINAPI *GetTypeInfoCount)(ISCardCmd *This,UINT *pctinfo);
    514       HRESULT (WINAPI *GetTypeInfo)(ISCardCmd *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    515       HRESULT (WINAPI *GetIDsOfNames)(ISCardCmd *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    516       HRESULT (WINAPI *Invoke)(ISCardCmd *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    517       HRESULT (WINAPI *get_Apdu)(ISCardCmd *This,LPBYTEBUFFER *ppApdu);
    518       HRESULT (WINAPI *put_Apdu)(ISCardCmd *This,LPBYTEBUFFER pApdu);
    519       HRESULT (WINAPI *get_ApduLength)(ISCardCmd *This,LONG *plSize);
    520       HRESULT (WINAPI *get_ApduReply)(ISCardCmd *This,LPBYTEBUFFER *ppReplyApdu);
    521       HRESULT (WINAPI *put_ApduReply)(ISCardCmd *This,LPBYTEBUFFER pReplyApdu);
    522       HRESULT (WINAPI *get_ApduReplyLength)(ISCardCmd *This,LONG *plSize);
    523       HRESULT (WINAPI *put_ApduReplyLength)(ISCardCmd *This,LONG lSize);
    524       HRESULT (WINAPI *get_ClassId)(ISCardCmd *This,BYTE *pbyClass);
    525       HRESULT (WINAPI *put_ClassId)(ISCardCmd *This,BYTE byClass);
    526       HRESULT (WINAPI *get_Data)(ISCardCmd *This,LPBYTEBUFFER *ppData);
    527       HRESULT (WINAPI *put_Data)(ISCardCmd *This,LPBYTEBUFFER pData);
    528       HRESULT (WINAPI *get_InstructionId)(ISCardCmd *This,BYTE *pbyIns);
    529       HRESULT (WINAPI *put_InstructionId)(ISCardCmd *This,BYTE byIns);
    530       HRESULT (WINAPI *get_LeField)(ISCardCmd *This,LONG *plSize);
    531       HRESULT (WINAPI *get_P1)(ISCardCmd *This,BYTE *pbyP1);
    532       HRESULT (WINAPI *put_P1)(ISCardCmd *This,BYTE byP1);
    533       HRESULT (WINAPI *get_P2)(ISCardCmd *This,BYTE *pbyP2);
    534       HRESULT (WINAPI *put_P2)(ISCardCmd *This,BYTE byP2);
    535       HRESULT (WINAPI *get_P3)(ISCardCmd *This,BYTE *pbyP3);
    536       HRESULT (WINAPI *get_ReplyStatus)(ISCardCmd *This,LPWORD pwStatus);
    537       HRESULT (WINAPI *put_ReplyStatus)(ISCardCmd *This,WORD wStatus);
    538       HRESULT (WINAPI *get_ReplyStatusSW1)(ISCardCmd *This,BYTE *pbySW1);
    539       HRESULT (WINAPI *get_ReplyStatusSW2)(ISCardCmd *This,BYTE *pbySW2);
    540       HRESULT (WINAPI *get_Type)(ISCardCmd *This,ISO_APDU_TYPE *pType);
    541       HRESULT (WINAPI *get_Nad)(ISCardCmd *This,BYTE *pbNad);
    542       HRESULT (WINAPI *put_Nad)(ISCardCmd *This,BYTE bNad);
    543       HRESULT (WINAPI *get_ReplyNad)(ISCardCmd *This,BYTE *pbNad);
    544       HRESULT (WINAPI *put_ReplyNad)(ISCardCmd *This,BYTE bNad);
    545       HRESULT (WINAPI *BuildCmd)(ISCardCmd *This,BYTE byClassId,BYTE byInsId,BYTE byP1,BYTE byP2,LPBYTEBUFFER pbyData,LONG *plLe);
    546       HRESULT (WINAPI *Clear)(ISCardCmd *This);
    547       HRESULT (WINAPI *Encapsulate)(ISCardCmd *This,LPBYTEBUFFER pApdu,ISO_APDU_TYPE ApduType);
    548       HRESULT (WINAPI *get_AlternateClassId)(ISCardCmd *This,BYTE *pbyClass);
    549       HRESULT (WINAPI *put_AlternateClassId)(ISCardCmd *This,BYTE byClass);
    550     END_INTERFACE
    551   } ISCardCmdVtbl;
    552   struct ISCardCmd {
    553     CONST_VTBL struct ISCardCmdVtbl *lpVtbl;
    554   };
    555 #ifdef COBJMACROS
    556 #define ISCardCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    557 #define ISCardCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
    558 #define ISCardCmd_Release(This) (This)->lpVtbl->Release(This)
    559 #define ISCardCmd_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    560 #define ISCardCmd_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    561 #define ISCardCmd_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    562 #define ISCardCmd_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    563 #define ISCardCmd_get_Apdu(This,ppApdu) (This)->lpVtbl->get_Apdu(This,ppApdu)
    564 #define ISCardCmd_put_Apdu(This,pApdu) (This)->lpVtbl->put_Apdu(This,pApdu)
    565 #define ISCardCmd_get_ApduLength(This,plSize) (This)->lpVtbl->get_ApduLength(This,plSize)
    566 #define ISCardCmd_get_ApduReply(This,ppReplyApdu) (This)->lpVtbl->get_ApduReply(This,ppReplyApdu)
    567 #define ISCardCmd_put_ApduReply(This,pReplyApdu) (This)->lpVtbl->put_ApduReply(This,pReplyApdu)
    568 #define ISCardCmd_get_ApduReplyLength(This,plSize) (This)->lpVtbl->get_ApduReplyLength(This,plSize)
    569 #define ISCardCmd_put_ApduReplyLength(This,lSize) (This)->lpVtbl->put_ApduReplyLength(This,lSize)
    570 #define ISCardCmd_get_ClassId(This,pbyClass) (This)->lpVtbl->get_ClassId(This,pbyClass)
    571 #define ISCardCmd_put_ClassId(This,byClass) (This)->lpVtbl->put_ClassId(This,byClass)
    572 #define ISCardCmd_get_Data(This,ppData) (This)->lpVtbl->get_Data(This,ppData)
    573 #define ISCardCmd_put_Data(This,pData) (This)->lpVtbl->put_Data(This,pData)
    574 #define ISCardCmd_get_InstructionId(This,pbyIns) (This)->lpVtbl->get_InstructionId(This,pbyIns)
    575 #define ISCardCmd_put_InstructionId(This,byIns) (This)->lpVtbl->put_InstructionId(This,byIns)
    576 #define ISCardCmd_get_LeField(This,plSize) (This)->lpVtbl->get_LeField(This,plSize)
    577 #define ISCardCmd_get_P1(This,pbyP1) (This)->lpVtbl->get_P1(This,pbyP1)
    578 #define ISCardCmd_put_P1(This,byP1) (This)->lpVtbl->put_P1(This,byP1)
    579 #define ISCardCmd_get_P2(This,pbyP2) (This)->lpVtbl->get_P2(This,pbyP2)
    580 #define ISCardCmd_put_P2(This,byP2) (This)->lpVtbl->put_P2(This,byP2)
    581 #define ISCardCmd_get_P3(This,pbyP3) (This)->lpVtbl->get_P3(This,pbyP3)
    582 #define ISCardCmd_get_ReplyStatus(This,pwStatus) (This)->lpVtbl->get_ReplyStatus(This,pwStatus)
    583 #define ISCardCmd_put_ReplyStatus(This,wStatus) (This)->lpVtbl->put_ReplyStatus(This,wStatus)
    584 #define ISCardCmd_get_ReplyStatusSW1(This,pbySW1) (This)->lpVtbl->get_ReplyStatusSW1(This,pbySW1)
    585 #define ISCardCmd_get_ReplyStatusSW2(This,pbySW2) (This)->lpVtbl->get_ReplyStatusSW2(This,pbySW2)
    586 #define ISCardCmd_get_Type(This,pType) (This)->lpVtbl->get_Type(This,pType)
    587 #define ISCardCmd_get_Nad(This,pbNad) (This)->lpVtbl->get_Nad(This,pbNad)
    588 #define ISCardCmd_put_Nad(This,bNad) (This)->lpVtbl->put_Nad(This,bNad)
    589 #define ISCardCmd_get_ReplyNad(This,pbNad) (This)->lpVtbl->get_ReplyNad(This,pbNad)
    590 #define ISCardCmd_put_ReplyNad(This,bNad) (This)->lpVtbl->put_ReplyNad(This,bNad)
    591 #define ISCardCmd_BuildCmd(This,byClassId,byInsId,byP1,byP2,pbyData,plLe) (This)->lpVtbl->BuildCmd(This,byClassId,byInsId,byP1,byP2,pbyData,plLe)
    592 #define ISCardCmd_Clear(This) (This)->lpVtbl->Clear(This)
    593 #define ISCardCmd_Encapsulate(This,pApdu,ApduType) (This)->lpVtbl->Encapsulate(This,pApdu,ApduType)
    594 #define ISCardCmd_get_AlternateClassId(This,pbyClass) (This)->lpVtbl->get_AlternateClassId(This,pbyClass)
    595 #define ISCardCmd_put_AlternateClassId(This,byClass) (This)->lpVtbl->put_AlternateClassId(This,byClass)
    596 #endif
    597 #endif
    598   HRESULT WINAPI ISCardCmd_get_Apdu_Proxy(ISCardCmd *This,LPBYTEBUFFER *ppApdu);
    599   void __RPC_STUB ISCardCmd_get_Apdu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    600   HRESULT WINAPI ISCardCmd_put_Apdu_Proxy(ISCardCmd *This,LPBYTEBUFFER pApdu);
    601   void __RPC_STUB ISCardCmd_put_Apdu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    602   HRESULT WINAPI ISCardCmd_get_ApduLength_Proxy(ISCardCmd *This,LONG *plSize);
    603   void __RPC_STUB ISCardCmd_get_ApduLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    604   HRESULT WINAPI ISCardCmd_get_ApduReply_Proxy(ISCardCmd *This,LPBYTEBUFFER *ppReplyApdu);
    605   void __RPC_STUB ISCardCmd_get_ApduReply_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    606   HRESULT WINAPI ISCardCmd_put_ApduReply_Proxy(ISCardCmd *This,LPBYTEBUFFER pReplyApdu);
    607   void __RPC_STUB ISCardCmd_put_ApduReply_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    608   HRESULT WINAPI ISCardCmd_get_ApduReplyLength_Proxy(ISCardCmd *This,LONG *plSize);
    609   void __RPC_STUB ISCardCmd_get_ApduReplyLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    610   HRESULT WINAPI ISCardCmd_put_ApduReplyLength_Proxy(ISCardCmd *This,LONG lSize);
    611   void __RPC_STUB ISCardCmd_put_ApduReplyLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    612   HRESULT WINAPI ISCardCmd_get_ClassId_Proxy(ISCardCmd *This,BYTE *pbyClass);
    613   void __RPC_STUB ISCardCmd_get_ClassId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    614   HRESULT WINAPI ISCardCmd_put_ClassId_Proxy(ISCardCmd *This,BYTE byClass);
    615   void __RPC_STUB ISCardCmd_put_ClassId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    616   HRESULT WINAPI ISCardCmd_get_Data_Proxy(ISCardCmd *This,LPBYTEBUFFER *ppData);
    617   void __RPC_STUB ISCardCmd_get_Data_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    618   HRESULT WINAPI ISCardCmd_put_Data_Proxy(ISCardCmd *This,LPBYTEBUFFER pData);
    619   void __RPC_STUB ISCardCmd_put_Data_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    620   HRESULT WINAPI ISCardCmd_get_InstructionId_Proxy(ISCardCmd *This,BYTE *pbyIns);
    621   void __RPC_STUB ISCardCmd_get_InstructionId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    622   HRESULT WINAPI ISCardCmd_put_InstructionId_Proxy(ISCardCmd *This,BYTE byIns);
    623   void __RPC_STUB ISCardCmd_put_InstructionId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    624   HRESULT WINAPI ISCardCmd_get_LeField_Proxy(ISCardCmd *This,LONG *plSize);
    625   void __RPC_STUB ISCardCmd_get_LeField_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    626   HRESULT WINAPI ISCardCmd_get_P1_Proxy(ISCardCmd *This,BYTE *pbyP1);
    627   void __RPC_STUB ISCardCmd_get_P1_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    628   HRESULT WINAPI ISCardCmd_put_P1_Proxy(ISCardCmd *This,BYTE byP1);
    629   void __RPC_STUB ISCardCmd_put_P1_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    630   HRESULT WINAPI ISCardCmd_get_P2_Proxy(ISCardCmd *This,BYTE *pbyP2);
    631   void __RPC_STUB ISCardCmd_get_P2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    632   HRESULT WINAPI ISCardCmd_put_P2_Proxy(ISCardCmd *This,BYTE byP2);
    633   void __RPC_STUB ISCardCmd_put_P2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    634   HRESULT WINAPI ISCardCmd_get_P3_Proxy(ISCardCmd *This,BYTE *pbyP3);
    635   void __RPC_STUB ISCardCmd_get_P3_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    636   HRESULT WINAPI ISCardCmd_get_ReplyStatus_Proxy(ISCardCmd *This,LPWORD pwStatus);
    637   void __RPC_STUB ISCardCmd_get_ReplyStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    638   HRESULT WINAPI ISCardCmd_put_ReplyStatus_Proxy(ISCardCmd *This,WORD wStatus);
    639   void __RPC_STUB ISCardCmd_put_ReplyStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    640   HRESULT WINAPI ISCardCmd_get_ReplyStatusSW1_Proxy(ISCardCmd *This,BYTE *pbySW1);
    641   void __RPC_STUB ISCardCmd_get_ReplyStatusSW1_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    642   HRESULT WINAPI ISCardCmd_get_ReplyStatusSW2_Proxy(ISCardCmd *This,BYTE *pbySW2);
    643   void __RPC_STUB ISCardCmd_get_ReplyStatusSW2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    644   HRESULT WINAPI ISCardCmd_get_Type_Proxy(ISCardCmd *This,ISO_APDU_TYPE *pType);
    645   void __RPC_STUB ISCardCmd_get_Type_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    646   HRESULT WINAPI ISCardCmd_get_Nad_Proxy(ISCardCmd *This,BYTE *pbNad);
    647   void __RPC_STUB ISCardCmd_get_Nad_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    648   HRESULT WINAPI ISCardCmd_put_Nad_Proxy(ISCardCmd *This,BYTE bNad);
    649   void __RPC_STUB ISCardCmd_put_Nad_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    650   HRESULT WINAPI ISCardCmd_get_ReplyNad_Proxy(ISCardCmd *This,BYTE *pbNad);
    651   void __RPC_STUB ISCardCmd_get_ReplyNad_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    652   HRESULT WINAPI ISCardCmd_put_ReplyNad_Proxy(ISCardCmd *This,BYTE bNad);
    653   void __RPC_STUB ISCardCmd_put_ReplyNad_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    654   HRESULT WINAPI ISCardCmd_BuildCmd_Proxy(ISCardCmd *This,BYTE byClassId,BYTE byInsId,BYTE byP1,BYTE byP2,LPBYTEBUFFER pbyData,LONG *plLe);
    655   void __RPC_STUB ISCardCmd_BuildCmd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    656   HRESULT WINAPI ISCardCmd_Clear_Proxy(ISCardCmd *This);
    657   void __RPC_STUB ISCardCmd_Clear_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    658   HRESULT WINAPI ISCardCmd_Encapsulate_Proxy(ISCardCmd *This,LPBYTEBUFFER pApdu,ISO_APDU_TYPE ApduType);
    659   void __RPC_STUB ISCardCmd_Encapsulate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    660   HRESULT WINAPI ISCardCmd_get_AlternateClassId_Proxy(ISCardCmd *This,BYTE *pbyClass);
    661   void __RPC_STUB ISCardCmd_get_AlternateClassId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    662   HRESULT WINAPI ISCardCmd_put_AlternateClassId_Proxy(ISCardCmd *This,BYTE byClass);
    663   void __RPC_STUB ISCardCmd_put_AlternateClassId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    664 #endif
    665 #endif
    666 
    667 #ifndef _LPSCARDISO7816_DEFINED
    668 #define _LPSCARDISO7816_DEFINED
    669   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0246_v0_0_c_ifspec;
    670   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0246_v0_0_s_ifspec;
    671 #ifndef __ISCardISO7816_INTERFACE_DEFINED__
    672 #define __ISCardISO7816_INTERFACE_DEFINED__
    673   typedef ISCardISO7816 *LPSCARDISO;
    674   typedef LPSCARDISO LPSCARDISO7816;
    675 
    676   EXTERN_C const IID IID_ISCardISO7816;
    677 #if defined(__cplusplus) && !defined(CINTERFACE)
    678   struct ISCardISO7816 : public IDispatch {
    679   public:
    680     virtual HRESULT WINAPI AppendRecord(BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    681     virtual HRESULT WINAPI EraseBinary(BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    682     virtual HRESULT WINAPI ExternalAuthenticate(BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LPSCARDCMD *ppCmd) = 0;
    683     virtual HRESULT WINAPI GetChallenge(LONG lBytesExpected,LPSCARDCMD *ppCmd) = 0;
    684     virtual HRESULT WINAPI GetData(BYTE byP1,BYTE byP2,LONG lBytesToGet,LPSCARDCMD *ppCmd) = 0;
    685     virtual HRESULT WINAPI GetResponse(BYTE byP1,BYTE byP2,LONG lDataLength,LPSCARDCMD *ppCmd) = 0;
    686     virtual HRESULT WINAPI InternalAuthenticate(BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LONG lReplyBytes,LPSCARDCMD *ppCmd) = 0;
    687     virtual HRESULT WINAPI ManageChannel(BYTE byChannelState,BYTE byChannel,LPSCARDCMD *ppCmd) = 0;
    688     virtual HRESULT WINAPI PutData(BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    689     virtual HRESULT WINAPI ReadBinary(BYTE byP1,BYTE byP2,LONG lBytesToRead,LPSCARDCMD *ppCmd) = 0;
    690     virtual HRESULT WINAPI ReadRecord(BYTE byRecordId,BYTE byRefCtrl,LONG lBytesToRead,LPSCARDCMD *ppCmd) = 0;
    691     virtual HRESULT WINAPI SelectFile(BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LONG lBytesToRead,LPSCARDCMD *ppCmd) = 0;
    692     virtual HRESULT WINAPI SetDefaultClassId(BYTE byClass) = 0;
    693     virtual HRESULT WINAPI UpdateBinary(BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    694     virtual HRESULT WINAPI UpdateRecord(BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    695     virtual HRESULT WINAPI Verify(BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    696     virtual HRESULT WINAPI WriteBinary(BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    697     virtual HRESULT WINAPI WriteRecord(BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd) = 0;
    698   };
    699 #else
    700   typedef struct ISCardISO7816Vtbl {
    701     BEGIN_INTERFACE
    702       HRESULT (WINAPI *QueryInterface)(ISCardISO7816 *This,REFIID riid,void **ppvObject);
    703       ULONG (WINAPI *AddRef)(ISCardISO7816 *This);
    704       ULONG (WINAPI *Release)(ISCardISO7816 *This);
    705       HRESULT (WINAPI *GetTypeInfoCount)(ISCardISO7816 *This,UINT *pctinfo);
    706       HRESULT (WINAPI *GetTypeInfo)(ISCardISO7816 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    707       HRESULT (WINAPI *GetIDsOfNames)(ISCardISO7816 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    708       HRESULT (WINAPI *Invoke)(ISCardISO7816 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    709       HRESULT (WINAPI *AppendRecord)(ISCardISO7816 *This,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    710       HRESULT (WINAPI *EraseBinary)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    711       HRESULT (WINAPI *ExternalAuthenticate)(ISCardISO7816 *This,BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LPSCARDCMD *ppCmd);
    712       HRESULT (WINAPI *GetChallenge)(ISCardISO7816 *This,LONG lBytesExpected,LPSCARDCMD *ppCmd);
    713       HRESULT (WINAPI *GetData)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lBytesToGet,LPSCARDCMD *ppCmd);
    714       HRESULT (WINAPI *GetResponse)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lDataLength,LPSCARDCMD *ppCmd);
    715       HRESULT (WINAPI *InternalAuthenticate)(ISCardISO7816 *This,BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LONG lReplyBytes,LPSCARDCMD *ppCmd);
    716       HRESULT (WINAPI *ManageChannel)(ISCardISO7816 *This,BYTE byChannelState,BYTE byChannel,LPSCARDCMD *ppCmd);
    717       HRESULT (WINAPI *PutData)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    718       HRESULT (WINAPI *ReadBinary)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    719       HRESULT (WINAPI *ReadRecord)(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    720       HRESULT (WINAPI *SelectFile)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    721       HRESULT (WINAPI *SetDefaultClassId)(ISCardISO7816 *This,BYTE byClass);
    722       HRESULT (WINAPI *UpdateBinary)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    723       HRESULT (WINAPI *UpdateRecord)(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    724       HRESULT (WINAPI *Verify)(ISCardISO7816 *This,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    725       HRESULT (WINAPI *WriteBinary)(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    726       HRESULT (WINAPI *WriteRecord)(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    727     END_INTERFACE
    728   } ISCardISO7816Vtbl;
    729   struct ISCardISO7816 {
    730     CONST_VTBL struct ISCardISO7816Vtbl *lpVtbl;
    731   };
    732 #ifdef COBJMACROS
    733 #define ISCardISO7816_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    734 #define ISCardISO7816_AddRef(This) (This)->lpVtbl->AddRef(This)
    735 #define ISCardISO7816_Release(This) (This)->lpVtbl->Release(This)
    736 #define ISCardISO7816_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    737 #define ISCardISO7816_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    738 #define ISCardISO7816_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    739 #define ISCardISO7816_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    740 #define ISCardISO7816_AppendRecord(This,byRefCtrl,pData,ppCmd) (This)->lpVtbl->AppendRecord(This,byRefCtrl,pData,ppCmd)
    741 #define ISCardISO7816_EraseBinary(This,byP1,byP2,pData,ppCmd) (This)->lpVtbl->EraseBinary(This,byP1,byP2,pData,ppCmd)
    742 #define ISCardISO7816_ExternalAuthenticate(This,byAlgorithmRef,bySecretRef,pChallenge,ppCmd) (This)->lpVtbl->ExternalAuthenticate(This,byAlgorithmRef,bySecretRef,pChallenge,ppCmd)
    743 #define ISCardISO7816_GetChallenge(This,lBytesExpected,ppCmd) (This)->lpVtbl->GetChallenge(This,lBytesExpected,ppCmd)
    744 #define ISCardISO7816_GetData(This,byP1,byP2,lBytesToGet,ppCmd) (This)->lpVtbl->GetData(This,byP1,byP2,lBytesToGet,ppCmd)
    745 #define ISCardISO7816_GetResponse(This,byP1,byP2,lDataLength,ppCmd) (This)->lpVtbl->GetResponse(This,byP1,byP2,lDataLength,ppCmd)
    746 #define ISCardISO7816_InternalAuthenticate(This,byAlgorithmRef,bySecretRef,pChallenge,lReplyBytes,ppCmd) (This)->lpVtbl->InternalAuthenticate(This,byAlgorithmRef,bySecretRef,pChallenge,lReplyBytes,ppCmd)
    747 #define ISCardISO7816_ManageChannel(This,byChannelState,byChannel,ppCmd) (This)->lpVtbl->ManageChannel(This,byChannelState,byChannel,ppCmd)
    748 #define ISCardISO7816_PutData(This,byP1,byP2,pData,ppCmd) (This)->lpVtbl->PutData(This,byP1,byP2,pData,ppCmd)
    749 #define ISCardISO7816_ReadBinary(This,byP1,byP2,lBytesToRead,ppCmd) (This)->lpVtbl->ReadBinary(This,byP1,byP2,lBytesToRead,ppCmd)
    750 #define ISCardISO7816_ReadRecord(This,byRecordId,byRefCtrl,lBytesToRead,ppCmd) (This)->lpVtbl->ReadRecord(This,byRecordId,byRefCtrl,lBytesToRead,ppCmd)
    751 #define ISCardISO7816_SelectFile(This,byP1,byP2,pData,lBytesToRead,ppCmd) (This)->lpVtbl->SelectFile(This,byP1,byP2,pData,lBytesToRead,ppCmd)
    752 #define ISCardISO7816_SetDefaultClassId(This,byClass) (This)->lpVtbl->SetDefaultClassId(This,byClass)
    753 #define ISCardISO7816_UpdateBinary(This,byP1,byP2,pData,ppCmd) (This)->lpVtbl->UpdateBinary(This,byP1,byP2,pData,ppCmd)
    754 #define ISCardISO7816_UpdateRecord(This,byRecordId,byRefCtrl,pData,ppCmd) (This)->lpVtbl->UpdateRecord(This,byRecordId,byRefCtrl,pData,ppCmd)
    755 #define ISCardISO7816_Verify(This,byRefCtrl,pData,ppCmd) (This)->lpVtbl->Verify(This,byRefCtrl,pData,ppCmd)
    756 #define ISCardISO7816_WriteBinary(This,byP1,byP2,pData,ppCmd) (This)->lpVtbl->WriteBinary(This,byP1,byP2,pData,ppCmd)
    757 #define ISCardISO7816_WriteRecord(This,byRecordId,byRefCtrl,pData,ppCmd) (This)->lpVtbl->WriteRecord(This,byRecordId,byRefCtrl,pData,ppCmd)
    758 #endif
    759 #endif
    760   HRESULT WINAPI ISCardISO7816_AppendRecord_Proxy(ISCardISO7816 *This,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    761   void __RPC_STUB ISCardISO7816_AppendRecord_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    762   HRESULT WINAPI ISCardISO7816_EraseBinary_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    763   void __RPC_STUB ISCardISO7816_EraseBinary_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    764   HRESULT WINAPI ISCardISO7816_ExternalAuthenticate_Proxy(ISCardISO7816 *This,BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LPSCARDCMD *ppCmd);
    765   void __RPC_STUB ISCardISO7816_ExternalAuthenticate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    766   HRESULT WINAPI ISCardISO7816_GetChallenge_Proxy(ISCardISO7816 *This,LONG lBytesExpected,LPSCARDCMD *ppCmd);
    767   void __RPC_STUB ISCardISO7816_GetChallenge_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    768   HRESULT WINAPI ISCardISO7816_GetData_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lBytesToGet,LPSCARDCMD *ppCmd);
    769   void __RPC_STUB ISCardISO7816_GetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    770   HRESULT WINAPI ISCardISO7816_GetResponse_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lDataLength,LPSCARDCMD *ppCmd);
    771   void __RPC_STUB ISCardISO7816_GetResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    772   HRESULT WINAPI ISCardISO7816_InternalAuthenticate_Proxy(ISCardISO7816 *This,BYTE byAlgorithmRef,BYTE bySecretRef,LPBYTEBUFFER pChallenge,LONG lReplyBytes,LPSCARDCMD *ppCmd);
    773   void __RPC_STUB ISCardISO7816_InternalAuthenticate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    774   HRESULT WINAPI ISCardISO7816_ManageChannel_Proxy(ISCardISO7816 *This,BYTE byChannelState,BYTE byChannel,LPSCARDCMD *ppCmd);
    775   void __RPC_STUB ISCardISO7816_ManageChannel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    776   HRESULT WINAPI ISCardISO7816_PutData_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    777   void __RPC_STUB ISCardISO7816_PutData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    778   HRESULT WINAPI ISCardISO7816_ReadBinary_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    779   void __RPC_STUB ISCardISO7816_ReadBinary_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    780   HRESULT WINAPI ISCardISO7816_ReadRecord_Proxy(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    781   void __RPC_STUB ISCardISO7816_ReadRecord_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    782   HRESULT WINAPI ISCardISO7816_SelectFile_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LONG lBytesToRead,LPSCARDCMD *ppCmd);
    783   void __RPC_STUB ISCardISO7816_SelectFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    784   HRESULT WINAPI ISCardISO7816_SetDefaultClassId_Proxy(ISCardISO7816 *This,BYTE byClass);
    785   void __RPC_STUB ISCardISO7816_SetDefaultClassId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    786   HRESULT WINAPI ISCardISO7816_UpdateBinary_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    787   void __RPC_STUB ISCardISO7816_UpdateBinary_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    788   HRESULT WINAPI ISCardISO7816_UpdateRecord_Proxy(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    789   void __RPC_STUB ISCardISO7816_UpdateRecord_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    790   HRESULT WINAPI ISCardISO7816_Verify_Proxy(ISCardISO7816 *This,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    791   void __RPC_STUB ISCardISO7816_Verify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    792   HRESULT WINAPI ISCardISO7816_WriteBinary_Proxy(ISCardISO7816 *This,BYTE byP1,BYTE byP2,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    793   void __RPC_STUB ISCardISO7816_WriteBinary_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    794   HRESULT WINAPI ISCardISO7816_WriteRecord_Proxy(ISCardISO7816 *This,BYTE byRecordId,BYTE byRefCtrl,LPBYTEBUFFER pData,LPSCARDCMD *ppCmd);
    795   void __RPC_STUB ISCardISO7816_WriteRecord_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    796 #endif
    797 #endif
    798 
    799 #ifndef _LPSCARD_DEFINED
    800 #define _LPSCARD_DEFINED
    801   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0247_v0_0_c_ifspec;
    802   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0247_v0_0_s_ifspec;
    803 #ifndef __ISCard_INTERFACE_DEFINED__
    804 #define __ISCard_INTERFACE_DEFINED__
    805   typedef ISCard *LPSCARD;
    806   typedef LPSCARD LPSMARTCARD;
    807 
    808   EXTERN_C const IID IID_ISCard;
    809 #if defined(__cplusplus) && !defined(CINTERFACE)
    810   struct ISCard : public IDispatch {
    811   public:
    812     virtual HRESULT WINAPI get_Atr(LPBYTEBUFFER *ppAtr) = 0;
    813     virtual HRESULT WINAPI get_CardHandle(HSCARD *pHandle) = 0;
    814     virtual HRESULT WINAPI get_Context(HSCARDCONTEXT *pContext) = 0;
    815     virtual HRESULT WINAPI get_Protocol(SCARD_PROTOCOLS *pProtocol) = 0;
    816     virtual HRESULT WINAPI get_Status(SCARD_STATES *pStatus) = 0;
    817     virtual HRESULT WINAPI AttachByHandle(HSCARD hCard) = 0;
    818     virtual HRESULT WINAPI AttachByReader(BSTR bstrReaderName,SCARD_SHARE_MODES ShareMode = EXCLUSIVE,SCARD_PROTOCOLS PrefProtocol = T0) = 0;
    819     virtual HRESULT WINAPI Detach(SCARD_DISPOSITIONS Disposition = LEAVE) = 0;
    820     virtual HRESULT WINAPI LockSCard(void) = 0;
    821     virtual HRESULT WINAPI ReAttach(SCARD_SHARE_MODES ShareMode = EXCLUSIVE,SCARD_DISPOSITIONS InitState = LEAVE) = 0;
    822     virtual HRESULT WINAPI Transaction(LPSCARDCMD *ppCmd) = 0;
    823     virtual HRESULT WINAPI UnlockSCard(SCARD_DISPOSITIONS Disposition = LEAVE) = 0;
    824   };
    825 #else
    826   typedef struct ISCardVtbl {
    827     BEGIN_INTERFACE
    828       HRESULT (WINAPI *QueryInterface)(ISCard *This,REFIID riid,void **ppvObject);
    829       ULONG (WINAPI *AddRef)(ISCard *This);
    830       ULONG (WINAPI *Release)(ISCard *This);
    831       HRESULT (WINAPI *GetTypeInfoCount)(ISCard *This,UINT *pctinfo);
    832       HRESULT (WINAPI *GetTypeInfo)(ISCard *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    833       HRESULT (WINAPI *GetIDsOfNames)(ISCard *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    834       HRESULT (WINAPI *Invoke)(ISCard *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    835       HRESULT (WINAPI *get_Atr)(ISCard *This,LPBYTEBUFFER *ppAtr);
    836       HRESULT (WINAPI *get_CardHandle)(ISCard *This,HSCARD *pHandle);
    837       HRESULT (WINAPI *get_Context)(ISCard *This,HSCARDCONTEXT *pContext);
    838       HRESULT (WINAPI *get_Protocol)(ISCard *This,SCARD_PROTOCOLS *pProtocol);
    839       HRESULT (WINAPI *get_Status)(ISCard *This,SCARD_STATES *pStatus);
    840       HRESULT (WINAPI *AttachByHandle)(ISCard *This,HSCARD hCard);
    841       HRESULT (WINAPI *AttachByReader)(ISCard *This,BSTR bstrReaderName,SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS PrefProtocol);
    842       HRESULT (WINAPI *Detach)(ISCard *This,SCARD_DISPOSITIONS Disposition);
    843       HRESULT (WINAPI *LockSCard)(ISCard *This);
    844       HRESULT (WINAPI *ReAttach)(ISCard *This,SCARD_SHARE_MODES ShareMode,SCARD_DISPOSITIONS InitState);
    845       HRESULT (WINAPI *Transaction)(ISCard *This,LPSCARDCMD *ppCmd);
    846       HRESULT (WINAPI *UnlockSCard)(ISCard *This,SCARD_DISPOSITIONS Disposition);
    847     END_INTERFACE
    848   } ISCardVtbl;
    849   struct ISCard {
    850     CONST_VTBL struct ISCardVtbl *lpVtbl;
    851   };
    852 #ifdef COBJMACROS
    853 #define ISCard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    854 #define ISCard_AddRef(This) (This)->lpVtbl->AddRef(This)
    855 #define ISCard_Release(This) (This)->lpVtbl->Release(This)
    856 #define ISCard_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    857 #define ISCard_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    858 #define ISCard_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    859 #define ISCard_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    860 #define ISCard_get_Atr(This,ppAtr) (This)->lpVtbl->get_Atr(This,ppAtr)
    861 #define ISCard_get_CardHandle(This,pHandle) (This)->lpVtbl->get_CardHandle(This,pHandle)
    862 #define ISCard_get_Context(This,pContext) (This)->lpVtbl->get_Context(This,pContext)
    863 #define ISCard_get_Protocol(This,pProtocol) (This)->lpVtbl->get_Protocol(This,pProtocol)
    864 #define ISCard_get_Status(This,pStatus) (This)->lpVtbl->get_Status(This,pStatus)
    865 #define ISCard_AttachByHandle(This,hCard) (This)->lpVtbl->AttachByHandle(This,hCard)
    866 #define ISCard_AttachByReader(This,bstrReaderName,ShareMode,PrefProtocol) (This)->lpVtbl->AttachByReader(This,bstrReaderName,ShareMode,PrefProtocol)
    867 #define ISCard_Detach(This,Disposition) (This)->lpVtbl->Detach(This,Disposition)
    868 #define ISCard_LockSCard(This) (This)->lpVtbl->LockSCard(This)
    869 #define ISCard_ReAttach(This,ShareMode,InitState) (This)->lpVtbl->ReAttach(This,ShareMode,InitState)
    870 #define ISCard_Transaction(This,ppCmd) (This)->lpVtbl->Transaction(This,ppCmd)
    871 #define ISCard_UnlockSCard(This,Disposition) (This)->lpVtbl->UnlockSCard(This,Disposition)
    872 #endif
    873 #endif
    874   HRESULT WINAPI ISCard_get_Atr_Proxy(ISCard *This,LPBYTEBUFFER *ppAtr);
    875   void __RPC_STUB ISCard_get_Atr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    876   HRESULT WINAPI ISCard_get_CardHandle_Proxy(ISCard *This,HSCARD *pHandle);
    877   void __RPC_STUB ISCard_get_CardHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    878   HRESULT WINAPI ISCard_get_Context_Proxy(ISCard *This,HSCARDCONTEXT *pContext);
    879   void __RPC_STUB ISCard_get_Context_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    880   HRESULT WINAPI ISCard_get_Protocol_Proxy(ISCard *This,SCARD_PROTOCOLS *pProtocol);
    881   void __RPC_STUB ISCard_get_Protocol_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    882   HRESULT WINAPI ISCard_get_Status_Proxy(ISCard *This,SCARD_STATES *pStatus);
    883   void __RPC_STUB ISCard_get_Status_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    884   HRESULT WINAPI ISCard_AttachByHandle_Proxy(ISCard *This,HSCARD hCard);
    885   void __RPC_STUB ISCard_AttachByHandle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    886   HRESULT WINAPI ISCard_AttachByReader_Proxy(ISCard *This,BSTR bstrReaderName,SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS PrefProtocol);
    887   void __RPC_STUB ISCard_AttachByReader_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    888   HRESULT WINAPI ISCard_Detach_Proxy(ISCard *This,SCARD_DISPOSITIONS Disposition);
    889   void __RPC_STUB ISCard_Detach_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    890   HRESULT WINAPI ISCard_LockSCard_Proxy(ISCard *This);
    891   void __RPC_STUB ISCard_LockSCard_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    892   HRESULT WINAPI ISCard_ReAttach_Proxy(ISCard *This,SCARD_SHARE_MODES ShareMode,SCARD_DISPOSITIONS InitState);
    893   void __RPC_STUB ISCard_ReAttach_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    894   HRESULT WINAPI ISCard_Transaction_Proxy(ISCard *This,LPSCARDCMD *ppCmd);
    895   void __RPC_STUB ISCard_Transaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    896   HRESULT WINAPI ISCard_UnlockSCard_Proxy(ISCard *This,SCARD_DISPOSITIONS Disposition);
    897   void __RPC_STUB ISCard_UnlockSCard_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    898 #endif
    899 #endif
    900 
    901 #ifndef _LPSCARDDATABASE_DEFINED
    902 #define _LPSCARDDATABASE_DEFINED
    903   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0248_v0_0_c_ifspec;
    904   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0248_v0_0_s_ifspec;
    905 #ifndef __ISCardDatabase_INTERFACE_DEFINED__
    906 #define __ISCardDatabase_INTERFACE_DEFINED__
    907   typedef ISCardDatabase *LPSCARDDATABASE;
    908 
    909   EXTERN_C const IID IID_ISCardDatabase;
    910 #if defined(__cplusplus) && !defined(CINTERFACE)
    911   struct ISCardDatabase : public IDispatch {
    912   public:
    913     virtual HRESULT WINAPI GetProviderCardId(BSTR bstrCardName,LPGUID *ppguidProviderId) = 0;
    914     virtual HRESULT WINAPI ListCardInterfaces(BSTR bstrCardName,LPSAFEARRAY *ppInterfaceGuids) = 0;
    915     virtual HRESULT WINAPI ListCards(LPBYTEBUFFER pAtr,LPSAFEARRAY pInterfaceGuids,__LONG32 localeId,LPSAFEARRAY *ppCardNames) = 0;
    916     virtual HRESULT WINAPI ListReaderGroups(__LONG32 localeId,LPSAFEARRAY *ppReaderGroups) = 0;
    917     virtual HRESULT WINAPI ListReaders(__LONG32 localeId,LPSAFEARRAY *ppReaders) = 0;
    918   };
    919 #else
    920   typedef struct ISCardDatabaseVtbl {
    921     BEGIN_INTERFACE
    922       HRESULT (WINAPI *QueryInterface)(ISCardDatabase *This,REFIID riid,void **ppvObject);
    923       ULONG (WINAPI *AddRef)(ISCardDatabase *This);
    924       ULONG (WINAPI *Release)(ISCardDatabase *This);
    925       HRESULT (WINAPI *GetTypeInfoCount)(ISCardDatabase *This,UINT *pctinfo);
    926       HRESULT (WINAPI *GetTypeInfo)(ISCardDatabase *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    927       HRESULT (WINAPI *GetIDsOfNames)(ISCardDatabase *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    928       HRESULT (WINAPI *Invoke)(ISCardDatabase *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    929       HRESULT (WINAPI *GetProviderCardId)(ISCardDatabase *This,BSTR bstrCardName,LPGUID *ppguidProviderId);
    930       HRESULT (WINAPI *ListCardInterfaces)(ISCardDatabase *This,BSTR bstrCardName,LPSAFEARRAY *ppInterfaceGuids);
    931       HRESULT (WINAPI *ListCards)(ISCardDatabase *This,LPBYTEBUFFER pAtr,LPSAFEARRAY pInterfaceGuids,__LONG32 localeId,LPSAFEARRAY *ppCardNames);
    932       HRESULT (WINAPI *ListReaderGroups)(ISCardDatabase *This,__LONG32 localeId,LPSAFEARRAY *ppReaderGroups);
    933       HRESULT (WINAPI *ListReaders)(ISCardDatabase *This,__LONG32 localeId,LPSAFEARRAY *ppReaders);
    934     END_INTERFACE
    935   } ISCardDatabaseVtbl;
    936   struct ISCardDatabase {
    937     CONST_VTBL struct ISCardDatabaseVtbl *lpVtbl;
    938   };
    939 #ifdef COBJMACROS
    940 #define ISCardDatabase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    941 #define ISCardDatabase_AddRef(This) (This)->lpVtbl->AddRef(This)
    942 #define ISCardDatabase_Release(This) (This)->lpVtbl->Release(This)
    943 #define ISCardDatabase_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    944 #define ISCardDatabase_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    945 #define ISCardDatabase_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    946 #define ISCardDatabase_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    947 #define ISCardDatabase_GetProviderCardId(This,bstrCardName,ppguidProviderId) (This)->lpVtbl->GetProviderCardId(This,bstrCardName,ppguidProviderId)
    948 #define ISCardDatabase_ListCardInterfaces(This,bstrCardName,ppInterfaceGuids) (This)->lpVtbl->ListCardInterfaces(This,bstrCardName,ppInterfaceGuids)
    949 #define ISCardDatabase_ListCards(This,pAtr,pInterfaceGuids,localeId,ppCardNames) (This)->lpVtbl->ListCards(This,pAtr,pInterfaceGuids,localeId,ppCardNames)
    950 #define ISCardDatabase_ListReaderGroups(This,localeId,ppReaderGroups) (This)->lpVtbl->ListReaderGroups(This,localeId,ppReaderGroups)
    951 #define ISCardDatabase_ListReaders(This,localeId,ppReaders) (This)->lpVtbl->ListReaders(This,localeId,ppReaders)
    952 #endif
    953 #endif
    954   HRESULT WINAPI ISCardDatabase_GetProviderCardId_Proxy(ISCardDatabase *This,BSTR bstrCardName,LPGUID *ppguidProviderId);
    955   void __RPC_STUB ISCardDatabase_GetProviderCardId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    956   HRESULT WINAPI ISCardDatabase_ListCardInterfaces_Proxy(ISCardDatabase *This,BSTR bstrCardName,LPSAFEARRAY *ppInterfaceGuids);
    957   void __RPC_STUB ISCardDatabase_ListCardInterfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    958   HRESULT WINAPI ISCardDatabase_ListCards_Proxy(ISCardDatabase *This,LPBYTEBUFFER pAtr,LPSAFEARRAY pInterfaceGuids,__LONG32 localeId,LPSAFEARRAY *ppCardNames);
    959   void __RPC_STUB ISCardDatabase_ListCards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    960   HRESULT WINAPI ISCardDatabase_ListReaderGroups_Proxy(ISCardDatabase *This,__LONG32 localeId,LPSAFEARRAY *ppReaderGroups);
    961   void __RPC_STUB ISCardDatabase_ListReaderGroups_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    962   HRESULT WINAPI ISCardDatabase_ListReaders_Proxy(ISCardDatabase *This,__LONG32 localeId,LPSAFEARRAY *ppReaders);
    963   void __RPC_STUB ISCardDatabase_ListReaders_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    964 #endif
    965 #endif
    966 
    967 #ifndef _LPSCARDLOCATE_DEFINED
    968 #define _LPSCARDLOCATE_DEFINED
    969   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0249_v0_0_c_ifspec;
    970   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0249_v0_0_s_ifspec;
    971 #ifndef __ISCardLocate_INTERFACE_DEFINED__
    972 #define __ISCardLocate_INTERFACE_DEFINED__
    973   typedef ISCardLocate *LPSCARDLOCATE;
    974   typedef LPSCARDLOCATE LPSCARDLOC;
    975 
    976   EXTERN_C const IID IID_ISCardLocate;
    977 #if defined(__cplusplus) && !defined(CINTERFACE)
    978   struct ISCardLocate : public IDispatch {
    979   public:
    980     virtual HRESULT WINAPI ConfigureCardGuidSearch(LPSAFEARRAY pCardGuids,LPSAFEARRAY pGroupNames = 0,BSTR bstrTitle = L"",LONG lFlags = 1) = 0;
    981     virtual HRESULT WINAPI ConfigureCardNameSearch(LPSAFEARRAY pCardNames,LPSAFEARRAY pGroupNames = 0,BSTR bstrTitle = L"",LONG lFlags = 1) = 0;
    982     virtual HRESULT WINAPI FindCard(SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS Protocols,LONG lFlags,LPSCARDINFO *ppCardInfo) = 0;
    983   };
    984 #else
    985   typedef struct ISCardLocateVtbl {
    986     BEGIN_INTERFACE
    987       HRESULT (WINAPI *QueryInterface)(ISCardLocate *This,REFIID riid,void **ppvObject);
    988       ULONG (WINAPI *AddRef)(ISCardLocate *This);
    989       ULONG (WINAPI *Release)(ISCardLocate *This);
    990       HRESULT (WINAPI *GetTypeInfoCount)(ISCardLocate *This,UINT *pctinfo);
    991       HRESULT (WINAPI *GetTypeInfo)(ISCardLocate *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
    992       HRESULT (WINAPI *GetIDsOfNames)(ISCardLocate *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
    993       HRESULT (WINAPI *Invoke)(ISCardLocate *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
    994       HRESULT (WINAPI *ConfigureCardGuidSearch)(ISCardLocate *This,LPSAFEARRAY pCardGuids,LPSAFEARRAY pGroupNames,BSTR bstrTitle,LONG lFlags);
    995       HRESULT (WINAPI *ConfigureCardNameSearch)(ISCardLocate *This,LPSAFEARRAY pCardNames,LPSAFEARRAY pGroupNames,BSTR bstrTitle,LONG lFlags);
    996       HRESULT (WINAPI *FindCard)(ISCardLocate *This,SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS Protocols,LONG lFlags,LPSCARDINFO *ppCardInfo);
    997     END_INTERFACE
    998   } ISCardLocateVtbl;
    999   struct ISCardLocate {
   1000     CONST_VTBL struct ISCardLocateVtbl *lpVtbl;
   1001   };
   1002 #ifdef COBJMACROS
   1003 #define ISCardLocate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1004 #define ISCardLocate_AddRef(This) (This)->lpVtbl->AddRef(This)
   1005 #define ISCardLocate_Release(This) (This)->lpVtbl->Release(This)
   1006 #define ISCardLocate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1007 #define ISCardLocate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1008 #define ISCardLocate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1009 #define ISCardLocate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1010 #define ISCardLocate_ConfigureCardGuidSearch(This,pCardGuids,pGroupNames,bstrTitle,lFlags) (This)->lpVtbl->ConfigureCardGuidSearch(This,pCardGuids,pGroupNames,bstrTitle,lFlags)
   1011 #define ISCardLocate_ConfigureCardNameSearch(This,pCardNames,pGroupNames,bstrTitle,lFlags) (This)->lpVtbl->ConfigureCardNameSearch(This,pCardNames,pGroupNames,bstrTitle,lFlags)
   1012 #define ISCardLocate_FindCard(This,ShareMode,Protocols,lFlags,ppCardInfo) (This)->lpVtbl->FindCard(This,ShareMode,Protocols,lFlags,ppCardInfo)
   1013 #endif
   1014 #endif
   1015   HRESULT WINAPI ISCardLocate_ConfigureCardGuidSearch_Proxy(ISCardLocate *This,LPSAFEARRAY pCardGuids,LPSAFEARRAY pGroupNames,BSTR bstrTitle,LONG lFlags);
   1016   void __RPC_STUB ISCardLocate_ConfigureCardGuidSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1017   HRESULT WINAPI ISCardLocate_ConfigureCardNameSearch_Proxy(ISCardLocate *This,LPSAFEARRAY pCardNames,LPSAFEARRAY pGroupNames,BSTR bstrTitle,LONG lFlags);
   1018   void __RPC_STUB ISCardLocate_ConfigureCardNameSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1019   HRESULT WINAPI ISCardLocate_FindCard_Proxy(ISCardLocate *This,SCARD_SHARE_MODES ShareMode,SCARD_PROTOCOLS Protocols,LONG lFlags,LPSCARDINFO *ppCardInfo);
   1020   void __RPC_STUB ISCardLocate_FindCard_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1021 #endif
   1022 #endif
   1023 
   1024   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0250_v0_0_c_ifspec;
   1025   extern RPC_IF_HANDLE __MIDL_itf_scardssp_0250_v0_0_s_ifspec;
   1026 #ifndef __SCARDSSPLib_LIBRARY_DEFINED__
   1027 #define __SCARDSSPLib_LIBRARY_DEFINED__
   1028   EXTERN_C const IID LIBID_SCARDSSPLib;
   1029   EXTERN_C const CLSID CLSID_CByteBuffer;
   1030 #ifdef __cplusplus
   1031   class CByteBuffer;
   1032 #endif
   1033   EXTERN_C const CLSID CLSID_CSCardTypeConv;
   1034 #ifdef __cplusplus
   1035   class CSCardTypeConv;
   1036 #endif
   1037   EXTERN_C const CLSID CLSID_CSCardCmd;
   1038 #ifdef __cplusplus
   1039   class CSCardCmd;
   1040 #endif
   1041   EXTERN_C const CLSID CLSID_CSCardISO7816;
   1042 #ifdef __cplusplus
   1043   class CSCardISO7816;
   1044 #endif
   1045   EXTERN_C const CLSID CLSID_CSCard;
   1046 #ifdef __cplusplus
   1047   class CSCard;
   1048 #endif
   1049   EXTERN_C const CLSID CLSID_CSCardDatabase;
   1050 #ifdef __cplusplus
   1051   class CSCardDatabase;
   1052 #endif
   1053   EXTERN_C const CLSID CLSID_CSCardLocate;
   1054 #ifdef __cplusplus
   1055   class CSCardLocate;
   1056 #endif
   1057 #endif
   1058 
   1059   ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
   1060   unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
   1061   unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
   1062   void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
   1063   ULONG __RPC_API HGLOBAL_UserSize(ULONG *,ULONG,HGLOBAL *);
   1064   unsigned char *__RPC_API HGLOBAL_UserMarshal(ULONG *,unsigned char *,HGLOBAL *);
   1065   unsigned char *__RPC_API HGLOBAL_UserUnmarshal(ULONG *,unsigned char *,HGLOBAL *);
   1066   void __RPC_API HGLOBAL_UserFree(ULONG *,HGLOBAL *);
   1067   ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
   1068   unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   1069   unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   1070   void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
   1071 
   1072 #ifdef __cplusplus
   1073 }
   1074 #endif
   1075 #endif
   1076