Visual Basic, VB .NET, ASP, Active X, Access, SQL Server

API: formatando drives com a função não-documentada SHFormatDrive

SHFormatDrive é uma função da API não-documentada que permite a você formatar um drive. Esta função simplesmente abre a janela "Format Drive". Sendo não-documentada, você não a encontrará no API Viewer do VB. Esta é a sua declaração:

Private Declare Function SHFormatDrive Lib "Shell32.dll" (ByVal hWnd As Long, _
    ByVal Drive As Integer, ByVal fmtID As Integer, ByVal Options As Integer) _
    As Long
SHFormatDrive recebe quatro parâmetros. O primeiro é o handle da janela mãe. O segundo é o índice do drive a ser formatado (A=0, B=1, C=2 ...). O terceiro deve sempre ser -1. O último especifica as opções de formatação: 0 para formatação rápida, 1 para formatação completa ou 2 para gerar um disco de sistema. A função retorna um valor maior que zero se foi bem sucedida, 0 se passou parâmetros inválidos, -1 se um erro ocorreu durante a formatação, -2 se a operação foi abortada e -3 se o drive não pode ser formatado. Aqui está um código de exemplo:
Private Sub btnFormatDrive_Click()
    Dim ret As Long
    ' eu quero formatação completa
    ret = SHFormatDrive(Me.hWnd, cbDrive.ListIndex,-1, 1)

    Select Case ret
        Case -1
            MsgBox "Erro durante a operação de formatação"
        Case -2
            MsgBox "Operação cancelada pelo usuário"
        Case -3
            MsgBox "O drive não pode ser formatado"
        Case Else
            MsgBox "Concluída"
    End Select
End Sub