Страница: 1 |
Страница: 1 |
Вопрос: Корзина
Добавлено: 30.09.03 17:38
Автор вопроса: Maxik
Объявляю:
Public Structure SHFILEOPSTRUCT
Public hwnd As Long
Public wFunc As Long
Public pFrom As String
Public pTo As String
Public fFlags As Integer
Public fAnyOperationsAborted As Long
Public hNameMappings As Long
Public lpszProgressTitle As String ' only used if
FOF_SIMPLEPROGRESS
End Structure
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10
<DllImport("shell32.dll")> Public Function SHFileOperation _
(ByVal lpFileOp As SHFILEOPSTRUCT) As Integer
End Function
Использую:
Private Function DelFToRBin(ByVal strVvFilePathName As String _
, Optional ByVal blnVvPrompt
As Boolean = True _
) As Boolean
Try
Dim udtLvShFileOpStruct As SHFILEOPSTRUCT
Dim lngLvReturn As Long
With udtLvShFileOpStruct
.wFunc = FO_DELETE
.pFrom = strVvFilePathName
.fFlags = FOF_ALLOWUNDO + IIf(blnVvPrompt, 0,
FOF_NOCONFIRMATION)
End With
lngLvReturn = SHFileOperation(udtLvShFileOpStruct)
DelFToRBin = True
Catch EH As Exception
DelFToRBin = False
MsgBox("Неудается удалить файл" & vbCrLf & EH.Message,
vbCritical, "Error")
End Try
End Function
НО ни чего не работает...
Пишет, что неправильная конструкция...
Помогите разобраться.
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 01.10.03 13:14
Для вызова АПИ нельзя использовать строки, нужно юзать стркои
фиксированной длины. Например, так объявляется строка длиной в 64
символа:
<MarshalAs(UnmanagedType.ByValTStr, sizeconst:=64)> szFileType as String
Номер ответа: 2
Автор ответа:
Maxik
Вопросов: 58
Ответов: 201
Профиль | | #2
Добавлено: 02.10.03 10:11
Спасибо, только все равно не работает...
Сейчас, вообще пишет, что структура не та, хотя в vb6 все работает.
Может знает кто, как удалить файл в корзину???