
// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the DFU_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// DFU_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef DFU_EXPORTS
#define DFU_API extern "C" __declspec(dllexport)
#else
#define DFU_API extern "C" __declspec(dllimport)
#endif

// This class is exported from the DFU.dll
#define DEVICE_HAS_BEEN_IN_ISP           0xE0000100L


DFU_API BOOL _stdcall DFU_Reset_To_ISP( DWORD VID ,         // Vender ID
                                        DWORD PID           // Product ID
                                      );
                            
DFU_API BOOL _stdcall DFU_Reset_To_AP( void  );

DFU_API BOOL _stdcall DFU_Download( BYTE *FW ,             // FW binary file 
                                    DWORD Addr ,           // Download start address
                                    DWORD Size ,           // FW file size
                                    DWORD CheckSum         // FW checksum
                                  );
DFU_API int  _stdcall DFU_Get_ProcessCount(void);