/// <summary>*.spiファイルを読み込みます。</summary> /// <param name="fileName">読み込む*.spi</param> public SpiCore(string fileName) { // 指定したDLLファイルを呼び出します。 handle = Win32.LoadLibrary(fileName); // デリゲートを初期化?する getPluginInfo = (SpiGetPluginInfo)Win32.GetProcAddress(typeof(SpiGetPluginInfo), handle, "GetPluginInfo"); isSupported = (SpiIsSupported)Win32.GetProcAddress(typeof(SpiIsSupported), handle, "IsSupported"); }
/// <summary>Disposeが呼ばれたら破棄します。</summary> /// <param name="disposing">破棄フラグ</param> protected virtual void Dispose(bool disposing) { if (!disposed) { if (disposing) { // デリゲートを破棄します。 getPluginInfo = null; isSupported = null; // 使用したDLLを破棄します。 if (!Win32.FreeLibrary(handle)) { throw new Exception("Spiプラグインの破棄ができませんでした。\nハンドル : " + handle.ToString()); } } disposed = true; } }