VB - Filecopy via Windows Shell Dialogue

By , 3/18/2008
(1 ratings)
With this function you can copy one or more files via windows shell dialogue. This means you will see the default copy progress dialogue when the files beeing copied.
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer

Private Structure SHFILEOPSTRUCT
    Dim hwnd As Integer
    Dim wFunc As Integer
    Dim pFrom As String
    Dim pTo As String
    Dim fFlags As Short
    Dim fAnyOperationsAborted As Boolean
    Dim hNameMappings As Integer
    Dim lpszProgressTitle As String
End Structure

Const FO_COPY As Short = &H2S

Public Function ShellCopy(ByVal strSource As String, ByVal strTarget As String, ByVal Handle As Long) As Boolean

    If Right(strSource, 1) = "\" Then strSource = Mid(strSource, 1, Len(strSource) - 1)
    ShellCopy = True
    With SFO
        .hwnd = Handle
        .wFunc = FO_COPY
        .pFrom = strSource & Chr(0) & Chr(0)
        .pTo = strTarget & Chr(0) & Chr(0)
    End With

    Call SHFileOperation(SFO)
    If SFO.fAnyOperationsAborted Then ShellCopy = False
End Function

Tagged with File, Shell, Copy.



Log in, to comment!