Jeffrey Carter wrote: > > I could be more helpful if you included the definition of VARIANT. That was my question, although not very clear. Steve D pointed me to gnatcom > > I would suggest that you use the types from Interfaces.C whenever > possible. I'll do that > Note that time stamp and quality are both passed as pointers. I'm not > sure about a record, but an integer will be passed by copy. You need one > of Well I wrote the spec as pointers, but in the dll's documetation they are not, however in all other similar calls/callbacks they are pointers, which now makes me now belive that the documentation is wrong. I'll try with pointers > > Finally, C knows nothing about protected procedures. You probably should > remove the "protected" from the type definition, and apply > > pragma Convention (C, Opc_Callback_Handler_Type); > This construct was taken from 'Ada as a second language'. I tried whitout it just an ordinary procedure, and it worked. However, the point with protected types was to enable some sort of tasking, since the callbacks can come anytime, always asychronic. I do get the callbacks now too. Thanks for the tips about the pragmas. /Bj�rn