int program_progress(int status, unsigned long value, unsigned long value2, void *callbackparam)
{
	return 1;
}



int _tmain(int argc, _TCHAR* argv[])
{
...

while (channelstate[channelconfig.channelnum] == CHANNEL_STOPPED);

  // wait for programming to finish for all channels
  while ((channelstate[0] == CHANNEL_RUNNING) ||
         (channelstate[1] == CHANNEL_RUNNING))
  {
	  
	????? Add Code Display progress here;???

	Sleep(100);
  }
...



DWORD WINAPI ProgramThread
...

// get function pointers
  LOADFUNC(channelconfig.fm_connect, fm_connect);
  LOADFUNC(channelconfig._fm_serial_number,fm_serial_number);
  LOADFUNC(channelconfig._fm_read_signature ,fm_read_signature);

...

 // program
  wprintf(L"Programming device on channel %d...\n", channelconfig.channelnum);
  results = channelconfig.fm_program2("TestFirmware.hex", 0, 0, 0, 1, NULL, NULL, 0, FM_NORMAL, FM_PROGOPT_NONE, program_progress, NULL);  //Add in program_progress

...

/* cannot get back the serial number as show in pic */ 

 channelconfig._fm_serial_number;
 wprintf(L"serial number = %s on device %d\n",results ->details  ,channelconfig.channelnum );


 
 // disconnect
  channelconfig.fm_disconnect();


 