Windows COM は全く分からないのですが、Ruby の win32ole は使ったことがあるので、win32ole.c を追ってみます。
> ghci
GHCi, version 6.10.2: http://www.haskell.org/ghc/ :? for help
Prelude> :m +System.Win32.Com
Prelude System.Win32.Com> coInitialize
Prelude System.Win32.Com> clsidFromProgID "ADODB.Connection"
{00000514-0000-0010-8000-00AA006D2EA4}
- coCreateInstance の使い方が知りたい
coCreateInstance ::
CLSID
-> Maybe (IUnknown b)
-> CLSCTX
-> IID (IUnknown a)
-> IO (IUnknown a)
module Main whereimport System.Win32.Com
main = coRun $ do
coInitialize
clsid <- clsidFromProgID "DAO.DBEngine.36"
obj <- coCreateInstance clsid Nothing AnyProcess iidIUnknown
coUnInitialize
putStrLn "Created component"
return ()
続く・・・。