求1设计思路

求一设计思路<C风格回调函数相关>
大家好,有这样一个需求。

有一个dll,其中有一个传入函数接口func_callback,提供调用方回调数据。函数通过句柄来关联数据。
class dll_proxy
{
....
private:
    HANDLE handle_;
};

void __cdcel func_callback(HANDLE handle_, PVOID params);

有什么好方法可以通过handle_来关联到类dll_proxy对应handle_的对象上吗?

------解决方案--------------------
dll返回的HANDLE socket_改为返回HANDLE *p_socket_
根据p_socket_计算其所属的dll_proxy对象 可以通过宏来实现

    
#define MemOffset(ClassName, MemberName) \  
        ((DWORD)(&(((ClassName *)0)->MemberName)))  
      
#define ContainerOf(MemberAddr , ClassName , MemberName) \  
        ((ClassName *)((DWORD)(MemberAddr) - MemOffset(ClassName , MemberName)))  

这样
dll_proxy *p_dll_proxy = ContainerOf(p_socket_, dll_proxy, socket_)