C#, VB.NETからSusieプラグインを利用する

戻る

C#からプラグインが利用できれば、過去の遺産を流用して画像やアーカイブの展開が可能です。
そこで、プラグインをC#, VB.NETから簡単に呼び出せるように、 .NET Framwork用のクラスライブラリを作成しました。

Susieプラグイン管理用クラスライブラリ

とりあえず、サンプルを載せておきます。
興味がある方は使ってみてください。


アーカイブ内の全ファイルの展開 (C#)

private void menuFileOpen_Click(object sender, EventArgs e)
{
	SpiMngx.SpiManager manager = new SpiMngx.SpiManager();
	try
	{
		// ファイル選択ダイアログ
		OpenFileDialog dlg = new OpenFileDialog();

		// ファイル選択ダイアログ用のファイルフィルタを作成
		dlg.Filter = manager.GetFileFilter();
		if (dlg.ShowDialog() != DialogResult.OK)
			return;

		// プラグインの対応確認
		SpiMngx.ArchivePlugin spi = manager.QueryArchivePlugin(dlg.FileName);
		if (spi == null)
			return;

		// ファイル情報のコレクションを取得
		SpiMngx.FileInfoCollection infoCol = spi.GetArchiveInfo(dlg.FileName);

		// 書庫内のすべてのファイルを展開
		string destPath	= System.IO.Path.GetDirectoryName(dlg.FileName);
		foreach (SpiMngx.FileInfo info in infoCol)
		{
			spi.GetFile(dlg.FileName, info, System.IO.Path.Combine(destPath, info.FileName));
		}
	}
	catch (System.Exception exception)
	{
		MessageBox.Show(exception.Message, exception.Source);
	}
	finally
	{
		manager.Dispose();
	}
}

画像ファイルを表示 (VB.NET)

Private Sub buttonOpen_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles buttonOpen.Click
	Dim manager As New SpiMngx.SpiManager()

	Try
		'ファイル選択ダイアログ
		Dim dlg As New OpenFileDialog
		dlg.Filter = manager.GetFileFilter()
		If dlg.ShowDialog() <> Windows.Forms.DialogResult.OK Then
			Exit Sub
		End If

		'対応プラグインを検索
		Dim spi As SpiMngx.ImagePlugin = manager.QueryImagePlugin(dlg.FileName)
		If spi Is Nothing Then
			Exit Sub
		End If

		'画像を表示
		Me.PictureBox1.Image = spi.GetPicture(dlg.FileName)
	Finally
		manager.Dispose()	'全プラグインを解放
	End Try

End Sub



戻る inserted by FC2 system