COMPONENTE
Seguinte preciso para uma página ASP exibir uma caixa de diálogo que de a possibilidade do usr informar em que pasta deseja salvar um arq...
Funciona em um projeto do vb que eu criei numa boa, o problema é que estou tentando criar um ActiveX.dll para utilizar em minha página mas não estou tendo sucesso, aà vai o código:
Option Explicit
Private Type BrowseInfo
hWndOwner As Long
pidlRoot As Long
sDisplayName As String
sTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "Shell32.dll" (bBrowse As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" (ByVal lItem As Long, ByVal sDir As String) As Long
Private Function BrowseForDirectory() As String
Dim browse_info As BrowseInfo
Dim item As Long
Dim dir_name As String
browse_info.hWndOwner = 459282
browse_info.pidlRoot = 0
browse_info.sDisplayName = Space$(260)
browse_info.sTitle = "Select Directory"
browse_info.ulFlags = 1 ' Retorna o nome do diretório.
browse_info.lpfn = 0
browse_info.lParam = 0
browse_info.iImage = 0
item = SHBrowseForFolder(browse_info)
If item Then
dir_name = Space$(260)
If SHGetPathFromIDList(item, dir_name) Then
BrowseForDirectory = Left(dir_name, InStr(dir_name, Chr$(0)) - 1)
Else
BrowseForDirectory = ""
End If
End If
End Function
Public Property Get NomePasta() As Variant
NomePasta = BrowseForDirectory
End Property
Funciona em um projeto do vb que eu criei numa boa, o problema é que estou tentando criar um ActiveX.dll para utilizar em minha página mas não estou tendo sucesso, aà vai o código:
Option Explicit
Private Type BrowseInfo
hWndOwner As Long
pidlRoot As Long
sDisplayName As String
sTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "Shell32.dll" (bBrowse As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" (ByVal lItem As Long, ByVal sDir As String) As Long
Private Function BrowseForDirectory() As String
Dim browse_info As BrowseInfo
Dim item As Long
Dim dir_name As String
browse_info.hWndOwner = 459282
browse_info.pidlRoot = 0
browse_info.sDisplayName = Space$(260)
browse_info.sTitle = "Select Directory"
browse_info.ulFlags = 1 ' Retorna o nome do diretório.
browse_info.lpfn = 0
browse_info.lParam = 0
browse_info.iImage = 0
item = SHBrowseForFolder(browse_info)
If item Then
dir_name = Space$(260)
If SHGetPathFromIDList(item, dir_name) Then
BrowseForDirectory = Left(dir_name, InStr(dir_name, Chr$(0)) - 1)
Else
BrowseForDirectory = ""
End If
End If
End Function
Public Property Get NomePasta() As Variant
NomePasta = BrowseForDirectory
End Property
Crie uma classe, acrescente a ela este código.
A propriedade Instancing deve ser 5 - Multiuse.
Nomeie a classe para o nome que voce quer, vamos dar um exemplo cPasta.
Nomeio o project1 para o nome da dll como classe maior, exemplo cUteis.
Compile e registre a dll
usando este exemplo vc consegue invocar o metodo...
set myObj = createobject("cUteis.cPasta")
response.write myObj.NomePasta
Ps.: siga os conselhos do Kpella
A propriedade Instancing deve ser 5 - Multiuse.
Nomeie a classe para o nome que voce quer, vamos dar um exemplo cPasta.
Nomeio o project1 para o nome da dll como classe maior, exemplo cUteis.
Compile e registre a dll
usando este exemplo vc consegue invocar o metodo...
set myObj = createobject("cUteis.cPasta")
response.write myObj.NomePasta
Ps.: siga os conselhos do Kpella
Tópico encerrado , respostas não são mais permitidas