Friend NotInheritable Class NativeMethods
Friend Shared Function SHFileOperation(ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
If (IntPtr.Size = 4) Then
Return NativeMethods.SHFileOperation32((lpFileOp))
End If
Dim shfileopstruct As New SHFILEOPSTRUCT64
shfileopstruct.hwnd = lpFileOp.hwnd
shfileopstruct.wFunc = lpFileOp.wFunc
shfileopstruct.pFrom = lpFileOp.pFrom
shfileopstruct.pTo = lpFileOp.pTo
shfileopstruct.fFlags = lpFileOp.fFlags
shfileopstruct.fAnyOperationsAborted = lpFileOp.fAnyOperationsAborted
shfileopstruct.hNameMappings = lpFileOp.hNameMappings
shfileopstruct.lpszProgressTitle = lpFileOp.lpszProgressTitle
Dim num2 As Integer = NativeMethods.SHFileOperation64((shfileopstruct))
lpFileOp.fAnyOperationsAborted = shfileopstruct.fAnyOperationsAborted
Return num2
End Function
<DllImport("shell32.dll", EntryPoint:="SHFileOperation", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function SHFileOperation32(ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
End Function
<DllImport("shell32.dll", EntryPoint:="SHFileOperation", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function SHFileOperation64(ByRef lpFileOp As SHFILEOPSTRUCT64) As Integer
End Function
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
Private Structure SHFILEOPSTRUCT64
Friend hwnd As IntPtr
Friend wFunc As UInt32
<MarshalAs(UnmanagedType.LPTStr)> _
Friend pFrom As String
<MarshalAs(UnmanagedType.LPTStr)> _
Friend pTo As String
Friend fFlags As UInt16
Friend fAnyOperationsAborted As Boolean
Friend hNameMappings As IntPtr
<MarshalAs(UnmanagedType.LPTStr)> _
Friend lpszProgressTitle As String
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto, Pack:=1)> _
Friend Structure SHFILEOPSTRUCT
Friend hwnd As IntPtr
Friend wFunc As UInt32
<MarshalAs(UnmanagedType.LPTStr)> _
Friend pFrom As String
<MarshalAs(UnmanagedType.LPTStr)> _
Friend pTo As String
Friend fFlags As UInt16
Friend fAnyOperationsAborted As Boolean
Friend hNameMappings As IntPtr
<MarshalAs(UnmanagedType.LPTStr)> _
Friend lpszProgressTitle As String
End Structure
End Class