Hi,
I donât know if there is support for that (I donât have the time to check it in detail now). But, as a workaround, you may try
- return a void*
myFunction ^self ffiCall: #(void* myFunction ( void ) )
- and then do the transformation yourself using Win32WideString>>#fromHandle:
I checked, Win32WideString class>>#asExternalTypeOn: is defined, and it creates FFIExternalObjectType(Win32WideString) nicely with ^self ffiCall: #(Win32WideString myFunction ( void ) ) I also tried the other approach: ^self ffiCall: #(void* myFunction ( void ) ) and the transformation Win32WideString>>#fromHandle Interestingly, in both cases I get however I cannot pinpoint the reason for this.
What you are discovering here would be very useful as a section/chapter in the uFFI booklet.
Thanks for the invitation, yes, it would be nice to participate, I'll try to prepare something when I get to the bottom of the challenge :-) Thanks and best wishes, Tomaz