Ciao,
vorrei aprire la dialog box richiamabile con la funzione SHBrowseForFolder
impostando come root una specifica cartella del disco.
Ho visto che la struttura BROWSEINFO contiene un parametro che mi
permette di impostare tale valore (pidlRoot).
Supponiamo che io voglia aprire la dialog box con root su: C:\HTML.IT
Per ora l'unica soluzione che ho trovato è stata: :quote: :quote:
- Aprire la dialog box di SHBrowseForFolder con root standard (0 - Desktop)
- Selezionare la cartella "C:\HTML.IT"
- Prendere il valore restituito dalla SHBrowseForFolder ed impostare a mano
tale valore nel parametro .pidlRoot per tutte le successive chiamate.
Così funziona, però questo metodo non mi piace proprio.
Come posso fare a recuperare il valore di CSIDL per la mia folder?
Più in generale, come posso recuperare tale valore avendo il path di una
qualsiasi folder?
Ringrazio davvero tutti quelli che potranno essermi di aiuto... è urgente!
Infatti è domenica ma ci sto lavorando....
P.S.: Includo il codice...
codice:
Public Function Browse(BIF_FLAGS As Long, sTitle As String, hwindow) As String
'Dichiarazione di variabili
Dim pidl As Long
Dim BI As BROWSEINFO
Dim sPath As String
Dim pos As Integer
'Riempie la struttura BROWSEINFO (CommonModule).
With BI
.hOwner = hwindow
'Mettendo a mano 1923696 si apre con la root giusta.
'1923696 valore restituito dalla SHBrowseForFolder sulla folder c:\HTML.IT
'.pidlRoot = CSIDL
.pidlRoot = 1923696
.lpszTitle = "Browse " & sTitle
.ulFlags = BIF_FLAGS
.pszDisplayName = Space$(MAX_PATH)
End With
'Visualizza la finestra di dialogo.
pidl = SHBrowseForFolder(BI)
...