hm.NETとC#を使い、フォームを表示するような機能を制作してみましょう。
using System; using System.Windows.Forms; namespace HmTestClass05 { class MyForm : Form { public MyForm() { } } public class Class5 { public static Form form; public static IntPtr CreateForm() { if (form == null || !form.Visible) { form = new MyForm(); } form.Show(); return (IntPtr)1; } public static IntPtr OnDetachMethod(IntPtr reason) { if (form != null) { form.Close(); form = null; } return (IntPtr)1; } } }
#HMNET = loaddll( hidemarudir + @"\hm.NET.dll" ); #r = dllfuncw( #HMNET, "SetDetachMethod", currentmacrodirectory + @"\HmTestClass05.dll", "HmTestClass05.Class5", "OnDetachMethod" ); #r = dllfuncw( #HMNET, "CallMethod", currentmacrodirectory + @"\HmTestClass05.dll", "HmTestClass05.Class5", "CreateForm" );
マクロを実行するとフォームが表示されます。 秀丸を閉じるとOnDetachMethodが実行されますので、フォームも閉じられます。