求C#程序转换成delphi程序(关于com组件跟函数指针)

求C#程序转换成delphi程序(关于com组件和函数指针)
 static CallBack ca = new CallBack(Form1.CallBackProc);     //得到函数指针
        uint pCallBack = (uint)(Marshal.GetFunctionPointerForDelegate(ca).ToInt32());   

        private void button3_Click(object sender, EventArgs e)
        {
            FullTunnelServiceControl ctr1 = new FullTunnelServiceControl();
            object hr = ctr1.StartRecv_User(pCallBack);         

            if (hr.ToString() == "0"){
                textBox1.Text = "接收成功";
            }
            else {
                textBox1.Text = hr.ToString();
            }          
        }

        public static void  CallBackProc(String BS_flag, String svalue1, String svalue2, String svalue3, String svalue4, 
                                                        String svalue5, String svalue6, String svalue7, String svalue8)
        {
            //MessageBox.Show("进入回调函数里面");
            String msgtemp = "";

            if ( BS_flag.CompareTo("4") == 0 ){
                msgtemp += " [业务响应包] SequenceID:"+ svalue1+" MessID:"+svalue2+" STATUS:"+svalue3;
                MessageBox.Show(msgtemp,"业务响应包");
            }
           else if (BS_flag.CompareTo("5") == 0){
               msgtemp += "[上行短信包] SequenceID:" +  svalue1 +"  发送号码:" + svalue2 +"  接收号码:" + svalue3+
                                    "   接收时间:" + svalue4 + "  短信内容:" +svalue5;
                MessageBox.Show(msgtemp,"上行短信包");
            }