Exemplo n.º 1
0
        /// <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");
        }
Exemplo n.º 2
0
        /// <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;
            }
        }