投稿日 | : 2005/03/01(Tue) 22:30 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^3: SHFileOperation |
fAnyOperationsAborted As Integer の後続の アライメント調整が必要なのでは?
手元にWin2000環境が無いので確認できませんが、
こんな感じで取得できないでしょうか。
Option Explicit
Private Const FO_COPY As Long = &H2&
Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
'Private Declare Function SHFileOperation Lib "shell32" Alias "SHFileOperationA" _
(ByRef lpFileOp As SHFILEOPSTRUCT) As Long
Private Declare Function SHFileOperationForBin Lib "shell32" Alias "SHFileOperationA" _
(ByRef lpFileOp As Byte) As Long
Private Declare Sub MoveMemory Lib "KERNEL32" Alias "RtlMoveMemory" _
(ByRef Dest As Any, ByRef Source As Any, ByVal length As Long)
Private Sub Form_Load()
Dim sh As SHFILEOPSTRUCT
Dim lngRet As Long
'FD出力
With sh
.hWnd = Me.hWnd
.wFunc = FO_COPY
.pFrom = "C:\test.dat"
.pTo = "A:\test.dat"
End With
Dim forVB(31) As Byte, forAPI(29) As Byte
MoveMemory forVB(0), sh, 32
MoveMemory forAPI(0), forVB(0), 18
MoveMemory forAPI(18), forVB(20), 12
lngRet = SHFileOperationForBin(forAPI(0))
Erase forVB
MoveMemory forVB(0), forAPI(0), 18
MoveMemory forVB(20), forAPI(18), 12
MoveMemory sh, forVB(0), 32
If lngRet = 0 And sh.fAnyOperationsAborted = 0 Then
MsgBox "コピー完了!"
End If
End Sub