Public Function FolderBrowser() As StringOn Error GoTo Err:
  Dim iNull     As Integer
  Dim lpIDList     As Long
  Dim lResult     As Long
  Dim spath     As String
  Dim udtBI     As BrowseInfo
    
  With udtBI
'   .hwndOwner = hwndOwner
'   .lpszTitle = lstrcat(sPrompt, "")
   .ulFlags = BIF_RETURNONLYFSDIRS + BIF_NEWDIALOGSTYLE
  End With
    
  lpIDList = SHBrowseForFolder(udtBI)
  If lpIDList Then
   spath = String$(MAX_PATH, 0)
   lResult = SHGetPathFromIDList(lpIDList, spath)
   Call CoTaskMemFree(lpIDList)
   iNull = InStr(spath, vbNullChar)
   If iNull Then
    spath = Left$(spath, iNull - 1)
   End If
  End If
  FolderBrowser = spath
  Exit Function
Err:
End Function编译时老出现: 用户类型未定义
请问是怎么回事?

解决方案 »

  1.   

    很明显,BrowseInfo没定义Type   BrowseInfo   
              hWndOwner   As   Long   
              pIDLRoot   As   Long   
              pszDisplayName   As   Long   
              lpszTitle   As   Long   
              ulFlags   As   Long   
              lpfnCallback   As   Long   
              lParam   As   Long   
              iImage   As   Long   
    End   Type 
      

  2.   

    补充:    BIF_BROWSEFORCOMPUTER   =   &H1000   
        BIF_BROWSEFORPRINTER   =   &H2000   
        BIF_BROWSEINCLUDEFILES   =   &H4000   
        BIF_DONTGOBELOWDOMAIN   =   &H2   
        BIF_EDITBOX   =   &H10   
        BIF_NEWDIALOGSTYLE   =   &H40   
        BIF_RETURNFSANCESTORS   =   &H8   
        BIF_RETURNONLYFSDIRS   =   &H1   
        BIF_STATUSTEXT   =   &H4   
        BIF_USENEWUI   =   (BIF_NEWDIALOGSTYLE   Or   BIF_EDITBOX)