System.Win32.Com の使い方を知りたい

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 where

    import System.Win32.Com

    main = coRun $ do
    coInitialize
    clsid <- clsidFromProgID "DAO.DBEngine.36"
    obj <- coCreateInstance clsid Nothing AnyProcess iidIUnknown
    coUnInitialize
    putStrLn "Created component"
    return ()

続く・・・。