COMPONENTE

USUARIO.EXCLUIDOS 15/12/2003 12:45:18
#1050
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
WEBMASTER 16/12/2003 10:24:44
#1182
Resposta escolhida
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
Tópico encerrado , respostas não são mais permitidas