Страница: 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 все работает.
Может знает кто, как удалить файл в корзину???