Archive for 1月 27th, 2013

  1. Hello, COM(Haskell) World!

    Posted on 1月 27th, 2013 by cx20

    COM(Haskell)

    COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
    COM を用いて開発された部品であれば言語を問わず利用することができる。
    以下は Haskell にて COM support library を使用した COM クライアントの例となっている。

    ソースコード

    import System.Win32.Com
    import System.Win32.Com.Automation
     
    main = do
        coInitialize
        shell <- createObject "Shell.Application";
        method0 "browseForFolder" [inInt 0, inString "Hello, COM(Haskell) World!", inInt 0, inInt 36] shell

    コンパイル方法

    C:¥> ghc Hello.hs

    実行結果

    +----------------------------------------+
    |Browse For Folder                    [X]|
    +----------------------------------------+
    | Hello, COM(Haskell) Wolrd!             |
    |                                        |
    | +------------------------------------+ |
    | |[Windows]                           | |
    | | +[addins]                          | |
    | | +[AppCompat]                       | |
    | | +[AppPatch]                        | |
    | | +[assembly]                        | |
    | |     :                              | |
    | |     :                              | |
    | |     :                              | |
    | +------------------------------------+ |
    | [Make New Folder]    [  OK  ] [Cancel] |
    +----------------------------------------+