From: Ferenc Engard Date: 2003-02-05T23:47:25+09:00 Subject: WIN32API: callback functions? Hi all, I wonder how can I use a win dll function which accepts a function pointer parameter. For example, in the WPdpack lib here is a function: typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *, const u_char *); int pcap_loop(pcap_t *, int, pcap_handler, u_char *); And I would like to use like this: p=Proc {|v1,v2,v3| fun(v1,v2,v3)} pcap_loop(var1,var2,p,var4) I have the following idea: In C, I create a ruby class, with which I can store a Proc object, and this ruby class can give back a C function's address as a 4 byte-length string. This C function of pcap_handler type can read out the stored Proc object, and calls it with it parameters (after converting to ruby variables). And then use like this: obj=PcapHandler.new {{|v1,v2,v3| fun(v1,v2,v3)} pcap_loop(var1,var2,obj.funAddress,var4) Is there a simpler method? Is this solution work? How can make a more generic solution (with variable number of params, etc.) Thanks: Circum