Ejemplo n.º 1
0
        protected override void OnExecuteComplete(ref WFSRESULT result)
        {
            switch (result.dwCommandCodeOrEventID)
            {
            case IDCDefinition.WFS_CMD_IDC_READ_RAW_DATA:
                if (result.hResult == XFSDefinition.WFS_SUCCESS)
                {
                    WFSIDCCardData[] data      = XFSUtil.XFSPtrToArray <WFSIDCCardData>(result.lpBuffer);
                    IDCCardData[]    outerData = new IDCCardData[data.Length];
                    for (int i = 0; i < data.Length; ++i)
                    {
                        outerData[i]             = new IDCCardData();
                        outerData[i].DataSource  = data[i].wDataSource;
                        outerData[i].WriteMethod = data[i].fwWriteMethod;
                        outerData[i].Status      = data[i].wStatus;
                        if (data[i].ulDataLength > 0)
                        {
                            outerData[i].Data = new byte[data[i].ulDataLength];
                            for (int j = 0; j < data[i].ulDataLength; ++j)
                            {
                                outerData[i].Data[j] = Marshal.ReadByte(data[i].lpbData, j);
                            }
                        }
                    }
                    OnReadRawDataComplete(outerData);
                }
                else
                {
                    OnReadRawDataError(result.hResult);
                }
                break;

            case IDCDefinition.WFS_CMD_IDC_EJECT_CARD:
                if (result.hResult == XFSDefinition.WFS_SUCCESS)
                {
                    OnEjectComplete();
                }
                else
                {
                    OnEjectError(result.hResult);
                }
                break;
            }
        }
Ejemplo n.º 2
0
 protected void OnReadRawDataComplete(IntPtr ptr)
 {
     WFSIDCCardData[] data      = XFSUtil.XFSPtrToArray <WFSIDCCardData>(ptr);
     IDCCardData[]    outerData = new IDCCardData[data.Length];
     for (int i = 0; i < data.Length; ++i)
     {
         outerData[i]             = new IDCCardData();
         outerData[i].DataSource  = data[i].wDataSource;
         outerData[i].WriteMethod = data[i].fwWriteMethod;
         outerData[i].Status      = data[i].wStatus;
         if (data[i].ulDataLength > 0)
         {
             outerData[i].Data = new byte[data[i].ulDataLength];
             for (int j = 0; j < data[i].ulDataLength; ++j)
             {
                 outerData[i].Data[j] = Marshal.ReadByte(data[i].lpbData, j);
             }
         }
     }
     if (ReadRawDataComplete != null)
     {
         ReadRawDataComplete(outerData);
     }
 }