using System; using System.Reflection; using System.Runtime.InteropServices; class Hello { public static Main() : void { def objType = Type.GetTypeFromProgID("Shell.Application"); def shell = Activator.CreateInstance(objType); def hwnd = 0; def title = "Hello, COM(Nemerle) World!" : object; def option = 0; def rootFolder = 36; def param = array[ hwnd, title, option, rootFolder ]; def folder = shell.GetType().InvokeMember( "BrowseForFolder", BindingFlags.InvokeMethod, null, shell, param ); when (folder != null) { _ = Marshal.ReleaseComObject(folder); } _ = Marshal.ReleaseComObject(shell); } }