clsidFromProgID をちょっといじってみました。
関数の名前が clsidFromProgID なので ProgID から clsid を作る。つまり、"ADODB.connection" が ProgID と言うもので "{00000514-0000-0010-8000-00AA006D2EA4}" が CLSID と言うことでしょうきっと。
GHCi, version 6.10.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer ... linking ... done. Loading package base ... linking ... done. Prelude> :m + System.Win32.Com Prelude System.Win32.Com> :info clsidFromProgID clsidFromProgID :: ProgID -> IO CLSID -- Defined in System.Win32.Com Prelude System.Win32.Com> clsidFromProgID "ADODB.connection" Loading package old-locale-1.0.0.1 ... linking ... done. Loading package old-time-1.0.0.2 ... linking ... done. Loading package com-1.2.3 ... linking ... done. {00000514-0000-0010-8000-00AA006D2EA4} Prelude System.Win32.Com> clsidFromProgID "Excel.Application" {00024500-0000-0000-C000-000000000046} Prelude System.Win32.Com> :m + System.Win32.Com.Automation Prelude System.Win32.Com System.Win32.Com.Automation> coInitialize Prelude System.Win32.Com System.Win32.Com.Automation> createObject "ADODB.connection" "<interface pointer = "0x04200e90">"
全く分からない・・・Orz