this is what helped at end
public delegate uint KERMITPROC(HANDLE WPARAM, HANDLE LPARAM);
[DllImport("kermitlib.dll", EntryPoint = "SendFile", SetLastError = true)]
private static extern int SendFile(string strFileName, HANDLE hDevice, KERMITPROC KermitProc);
public static uint KermitProc(HANDLE wp, HANDLE lp)
{
string buff = "";
double per = 0;
switch (wp.ToString())
{
case "S":
myprintf(0, 1, "Sending S Packet ...");
break;
case "F":
myprintf(0, 1, "Sending F Packet ...");
break;
case "A":
myprintf(0, 1, "Sending A Packet ...");
break;
case "D":
per = (double)((Convert.ToInt16(lp) * 100) / filelength);
buff = string.Format("File sending - {0:f0}{1}", per, Convert.ToChar(37));
myprintf(0, 3, buff);
break;
case "Z":
break;
case "B":
break;
case "N":
myprintf(0, 1, "Sending nak");
break;
case "E":
buff = string.Format("Error : {0}", lp.ToString());
myprintf(0, 1, buff);
break;
case "Q":
myprintf(0, 1, "File Not Sent");
break;
case "C":
filestatus = 1;
myprintf(0, 1, "File sent");
break;
case "R":
buff = string.Format("Resending packet {0:D} times of retries", lp);
myprintf(0, 1, buff);
break;
}
return 0;
}