
Andreas Marth wrote:
Thanks a lot for this information it helped a lot.
Glad to be of help.
I am thinking about creating a wikipage about Haskell<->VBA interfacing through a DLL. Is it okay for you if I put your code there?
Yes.
I am a bit concerned about the memory. newArray states that the memory has to be freed after usage. Is this needed here? How can it be done?
One way could be to write a function which creates the BSTR, passes it to a function, then deallocates the BSTR before returning eg (untested): import Control.Exception (bracket) withBSTR8 :: [Char] -> (BSTR8 -> IO a) -> IO a withBSTR8 s f = bracket (createBSTR8 s) (\bstr -> free (bstr `plusPtr` (-4))) (\bstr -> f bstr) Regards, Brian. -- Logic empowers us and Love gives us purpose. Yet still phantoms restless for eras long past, congealed in the present in unthought forms, strive mightily unseen to destroy us. http://www.metamilk.com