Interfacing to OLE/COM: HaskellDirect the only game in town?

I want to use some MS Windows OLE/COM libraries from Haskell, and this page: http://www.haskell.org/haskellwiki/Libraries_and_tools/Interfacing_other_lan... and Google suggest that HaskellDirect is the only game in town. Is this the case? And, does anyone have recent experience of it? Is it still usable, or has it bit-rotted? Alistair

Alistair Bayley wrote:
I want to use some MS Windows OLE/COM libraries from Haskell, and this page: http://www.haskell.org/haskellwiki/Libraries_and_tools/Interfacing_other_lan...
and Google suggest that HaskellDirect is the only game in town. Is this the case? And, does anyone have recent experience of it? Is it still usable, or has it bit-rotted?
It has bitrotted to some extent. In Visual Haskell we use HaskellDirect-generated interfaces with a lot of hacking by hand to make it work, I don't believe we can re-generate the source files from IDL any more. Also, we needed to modify the com library that comes with H/Direct in various ways. You can take a look at the Visual Haskell sources here: darcs get http://darcs.haskell.org/vshaskell There's definitely a gap in the market for a good COM interop tool. Cheers, Simon

Oh, I forgot to sebd this mail for this list.
On Wed, 24 May 2006 18:28:01 +0900, Simon Marlow
It has bitrotted to some extent. In Visual Haskell we use HaskellDirect-generated interfaces with a lot of hacking by hand to make it work, I don't believe we can re-generate the source files from IDL any more.
Hmm. Before I read this mail, I think you change only non-generated source files. So If I write better Setup.(l)hs file or, add H/Direct's ihc and apply different option file by file support, I can made newer cabalised version HDirect package - just replace source files. Anyway, I think that ihc - an IDL compiler for Haskell - support for Cabal is useful. So I send mail, this time. I already made initial that ... but if make buildable Haskell source file, I have to use different option one by one, like this; = lib/Makefile = WideString_IHC_OPTS += -fno-imports -fno-export-lists -fkeep-hresult -fout-pointers-are-not-refs PointerPrim_IHC_OPTS += -fkeep-hresult -fout-pointers-are-not-refs = comlib/Makefile = AutoPrim_IHC_OPTS += -fno-imports -fno-export-lists -fhs-to-c -fno-overload-variant -fout-pointers-are-not-refs -fsubtyped-interface-pointers ComPrim_IHC_OPTS += -fno-imports -fno-export-lists -fout-pointers-are-not-refs WideString_IHC_OPTS += -fno-imports -fno-export-lists -fkeep-hresult -fout-pointers-are-not-refs PointerPrim_IHC_OPTS += -fkeep-hresult -fout-pointers-are-not-refs StdTypes_IHC_OPTS += -fno-export-list -fno-gen-variant-instances -fout-pointers-are-not-refs --gen-headers SafeArray_IHC_OPTS += -fhs-to-c -fno-export-lists --gen-headers -fout-pointers-are-not-refs --gen-headers TypeLib_IHC_OPTS += -fno-export-list -fappend-interface-short-name -fno-overload-variant --gen-headers Connection_IHC_OPTS += -fappend-interface-short-name and I didn't support this feature yet. If you use atttached hdirect.cabal file, after applied cabal-ihc-support.patch for darcs repository, you can see compile error from generated file. Does anyone have good idea? -- shelarcy <shelarcy capella.freemail.ne.jp> http://page.freett.com/shelarcy/
participants (3)
-
Alistair Bayley
-
shelarcy
-
Simon Marlow