C# 写的COM组件,C++调用时如何传入函数指针

C# 写的COM组件,C++调用时怎么传入函数指针
各位好,请教一个问题。
C# 写的COM组件,C++调用时怎么传入函数指针。
C++ .tli文件里的定义

//
// interface IRealPlayer wrapper method implementations
//
inline VARIANT_BOOL IRealPlayer::Play ( _bstr_t camId, enum StreamTypez streamType, VARIANT_BOOL onSound, struct _COMStreamHandler * streamCallBack, const _variant_t & state ) {
    VARIANT_BOOL _result = 0;
    HRESULT _hr = raw_Play(camId, streamType, onSound, streamCallBack, state, &_result);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _result;
}

C# 里面 _COMStreamHandler 定义是一个委托

public delegate void COMStreamHandler(long timestamp, StreamDataTypez type, byte[] data, object state);


我在C++ 写了静态函数

static void StreamHandler(LONG timestamp, SSNetSdk_COM::StreamTypez type, VOID * data, _variant_t state)


请问在调用Play时该怎么调用呢?


//以下代码 StreamHandler 类型形参不兼容
im_realPlayEx->Play(ChannelId, SSNetSdk_COM::StreamTypez_Main, VARIANT_FALSE, StreamHandler, user);

------解决思路----------------------
函数指针c#中也不好直接处理,还是传递其他数据类型吧