masami kusumoroさん、こんにちは。
Microsoft Q&A フォーラムにご投稿くださいましてありがとうございます。
IMAPI2 ライブラリの IDiscFormat2Erase インターフェイスを使用して、DVDのデータを消去することができます。
以下のコードを参照してください。
- IDiscFormat2Erase インターフェイスとその GUID を定義する。
- MsftDiscFormat2Erase クラスを定義して、IDiscFormat2Erase インターフェイスを実装する。
- MsftDiscFormat2Eraseで IDiscFormat2Erase のインスタンスを作成する。
- インターフェイス インスタンスで EraseMedia メソッドを呼び出して、DVD パスをパラメーターとして渡します。
Imports System.Runtime.InteropServices
Public Class Form1
' 定数の定義
Private Const S_OK As Integer = &H0
Private Const STG_E_MEDIUMFULL As Integer = &H80030070
' GUID の定義
Private Class IID_IDiscFormat2Erase
Public Const IID As String = "27354130-7F64-5B0F-8F00-5D77AFBE261E"
End Class
' インターフェイスの定義
<ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid(IID_IDiscFormat2Erase.IID)>
Private Interface IDiscFormat2Erase
Sub EraseMedia(<[In], MarshalAs(UnmanagedType.BStr)> ByVal recorderPath As String)
End Interface
' インタフェースを実装するクラスを定義する
<ComImport, ClassInterface(ClassInterfaceType.None), Guid(IID_IDiscFormat2Erase.IID)>
Private Class MsftDiscFormat2Erase
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim format2Erase As IDiscFormat2Erase = New MsftDiscFormat2Erase()
' 「D:」を適切なDVDドライブパスに入れ替える
Dim recorderPath As String = "\\.\D:"
Try
format2Erase.EraseMedia(recorderPath)
MessageBox.Show("DVD erased successfully.")
Catch ex As Exception
MessageBox.Show("DVD erase failed: " & ex.Message)
End Try
End Sub
End Class
どうぞよろしくお願いします。
役に立った回答には「回答を受け入れる」と「いいね!」を押してください。さらに質問がある場合は、「コメント」を追加してください。注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づき、メール通知を有効にしてください。