You should get a look at:
Marshal.GetFunctionPointerForDelegate Method
May be you can declare your delegate like this:
public delegate void TheCallbackDelegate(int iType, String buffer);
And call the dll method (declared with p/invoke) :
Callback(Marshal.GetFunctionPointerForDelegate(new TheCallbackDelegate(ProcessCallbackMessage)));