SHFileOperationの戻り値を正しく受け取るには?


ゆうたろう  2006-01-11 04:10:13  No: 93530

実際は、ディレクトリ"D"は、存在しないのですが、
以下の設定で実行したところ、戻り値が"0"(正常)で戻ります。
正しい戻り値を得るためには、どうすれば良いのでしょう。

Private Declare Function SHFileOperation Lib "SHELL32" (lpFileOp As SHFILEOPSTRUCT) As Long
'
Private Type SHFILEOPSTRUCT
 hwnd                  As Long     'ウインドウのハンドル
 wFunc                 As Long     '定数(FO_××参照)
 pFrom                 As String   'ファイル操作元のファイル名・ディレクトリ
 pTo                   As String   'ファイル操作先のファイル名・ディレクトリ
 fFlags                As Integer  '定数(FOF_××参照)
 fAnyOperationsAborted As Long     'キャンセルボタンのフラグ
 hNameMappings         As Long     '
 lpszProgressTitle     As String   'タイトル
End Type
'
 Const FO_MOVE         As Long = &H1   'ファイルを移動
 Const FO_COPY         As Long = &H2   'ファイルのコピー
 Const FO_DELETE       As Long = &H3   'ファイルを削除
 Const FO_RENAME       As Long = &H4   'ファイル名変更
'
'表示されるダイアログボックスに「すべてはい」を選択
 Const FOF_NOCONFIRMATION = &H10&
 Const FOF_ALLOWUNDO = &H40             'ゴミ箱へ削除
 Const FOF_FILESONLY = &H80             'ディレクトリを含まない
 Const FOF_SIMPLEPROGRESS = &H100       'ファイル名を表示しない
 Const FOF_MULTIDESTFILES = &H1         '

 Dim Ret As Long              '戻り値
 Dim SH As SHFILEOPSTRUCT     'SHFILEOPSTRUCT構造体
'
 With SH
  .wFunc = FO_COPY              '操作方法
  .pFrom = "C:\DATA"            '操作元のファイル名
  .pTo = "D:\SAV_DATA"          '操作先のファイル名
  .fFlags = FOF_MULTIDESTFILES Or FOF_NOCONFIRMATION 'フラグ
 End With

 Ret = SHFileOperation(SH)


K.J.K.  2006-01-11 19:25:37  No: 93531

いや、それは関数の戻り値としては正しいのではないでしょうか。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加