Хендл_буфера + 4 = указатель на содержимое буфера. Чтобы передать его в длл, надо в decls-файле в качестве типа параметра указать *, например
MyFunc(buffer_ptr*):"_MyFunc@4"
В C тогда нужно для параметра указывать тип
unsigned char**.
Можно просто передать как целочисленный параметр. В С нужно будет сделать преобразование типа тогда.
Тут инфа про необходимые смещения
http://blitz.pp.ru/forum/showthread.php?s=&threadid=203