Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница:

 

  Вопрос: Корзин еще раз Добавлено: 29.10.03 07:39  

Автор вопроса:  Maxik

Происходит ошибка: PInvoke item (field,method) must be Static. Код
такой:

Структуру переделал с вб6, с помощью книги переход на Вб .нет.

<StructLayout(LayoutKind.Sequential, Pack:=0, CharSet:=CharSet.Auto)>
Public Structure SHFILEOPSTRUCT
Public dwSize As Integer
Public hwnd As Integer
Public wFunc As Integer
<MarshalAs(UnmanagedType.ByValTStr, sizeConst:=256)> Public
pFrom As String
<MarshalAs(UnmanagedType.ByValTStr, sizeConst:=256)> Public pTo
As String
Public fFlags As Short
Public fAnyOperationsAborted As Integer
Public hNameMappings As Integer
<MarshalAs(UnmanagedType.ByValTStr, sizeConst:=256)> Public
lpszProgressTitle As String ' only used if FOF_SIMPLEPROGRESS
Public Sub init()
dwSize = Marshal.SizeOf(Me)
End Sub
End Structure

Const FO_DELETE = &H3
Const FOF_ALLOWUNDO = &H40

Сама функция.

<DllImport("shell32")> Public Function SHFileOperation _
(ByVal lpFileOp As SHFILEOPSTRUCT) As Integer
End Function

Процедура:

Public Sub ShellDelete(ByVal vntFileName() As String)
Dim I As Short
Dim sFileNames As String
Dim SHFileOp As SHFILEOPSTRUCT
For I = LBound(vntFileName) To UBound(vntFileName)
sFileNames = sFileNames & vntFileName(I) & vbNullChar
Next
sFileNames = sFileNames & vbNullChar
With SHFileOp
.hwnd = Me.Handle.ToInt32
.wFunc = FO_DELETE
.pFrom = sFileNames
.fFlags = FOF_ALLOWUNDO
End With
SHFileOperation(SHFileOp)
End Sub

В массиве имена файлов.

Если знаете, в чем проблема, помогите, пожалуйста, разобраться. Конечно,
понимаю, что АПИ использовать не рекомендуется, но я не нашел аналога в
.net. Спасибо.

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам