● フロッピーディスクのフォーマットダイアログ ●

あんまり使い道はないかも。
起動専用は使えないみたい(ここら辺はよく分からん)。返り値も0と-2以外受け取れなかった。

Private Declare Function SHFormatDrive Lib "shell32" (ByVal hwndOwner As Long, ByVal iDrive As Long, ByVal iCapacity As Long, ByVal iFormatType As Long) As Long

Private Const SHFD_FORMAT_QUICK = 0    'クイックフォーマット
Private Const SHFD_FORMAT_FULL = 1      '通常のフォーマット
Private Const SHFD_FORMAT_SYSONLY = 2  '起動専用

Private Const SHFD_CAPACITY_DEFAULT = 0    'デフォルトドライブ
Private Const SHFD_CAPACITY_360 = 3
Private Const SHFD_CAPACITY_720 = 5

' -------------------------------------------------------------------
' 関数名 : ShowFDFormatDLG
' 機能 : フロッピーフォーマットのダイアログを表示する
' 引数 : (in) hWnd … 呼び出し側のウインドウハンドル
'         (in) fType … 0:クイックフォーマット
'                        1:通常のフォーマット
'                        2:起動専用
' 返り値 : -1:実行を試みたが、フォーマットに失敗した
'          -2:[キャンセル]が押された
'          -3:失敗(ドライブの指定が間違っている)
'          -4:パラメータエラー
'          0:フォーマット実行後、終了した(正常)
' -------------------------------------------------------------------
Public Function ShowFDFormatDLG(ByVal hWnd As Long, ByVal fType As Integer)

    Dim ret As Long
    Dim FormatType As Long

    Select Case fType
          Case 0
                FormatType = SHFD_FORMAT_QUICK
          Case 1
                FormatType = SHFD_FORMAT_FULL
          Case 2
                FormatType = SHFD_FORMAT_SYSONLY
          Case Else
                ShowFDFormatDLG = -4
                Exit Function
    End Select

      ShowFDFormatDLG = SHFormatDrive(hWnd, 0, SHFD_CAPACITY_DEFAULT, FormatType)

  End Function

戻る