Windows API Guide: SetPixelV Function


Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Platforms

  • Windows 95: Supported.
  • Windows 98: Supported.
  • Windows NT: Requires Windows NT 4.0 or later.
  • Windows 2000: Supported.
  • Windows CE: Not Supported.

Description & Usage

SHGetPathFromIDList determines the path of the folder refered to by a pointer to an ITEMIDLIST structure (a.k.a. a PIDL). The function only works if the PIDL refers to a physical directory on the system; it cannot get the name of a virtual folder.

Return Value

If an error occured or the PIDL refers to a virtual folder, the function returns 0. If successful, the function returns a non-zero value.

Visual Basic-Specific Issues

None.

Parameters

pidl
The PIDL to determine the physical path of, if it is not a virtual folder.
pszPath
Receives a null-terminated string holding the path which the PIDL identifies. The string passed initially to the function must be at least 260 characters long.

Example

' This code is licensed according to the terms and conditions listed here. ' Open the Browse for Folder dialog box and display both the display name and ' the actual name of the folder (if it is not a virtual folder).  Any folder under My Computer ' may be selected. Dim bi As BROWSEINFO  ' structure passed to the function Dim pidl As Long  ' PIDL to the user's selection Dim physpath As String  ' string used to temporarily hold the physical path Dim retval As Long  ' return value ' Initialize the structure to be passed to the function. bi.hwndOwner = Form1.hWnd  ' window Form1 is the owner of the dialog box ' Specify the My Computer virtual folder as the root retval = SHGetSpecialFolderLocation(Form1.hWnd, CSIDL_DRIVES, bi.pidlRoot) ' Make room in the buffer to get the [virtual] folder's display name bi.pszDisplayName = Space(260) bi.lpszTitle = "Please choose a folder."  ' Message displayed to the user bi.ulFlags = 0  ' no flags are needed here bi.lpfn = 0  ' no callback function is being used bi.lParam = 0  ' not needed bi.iImage = 0  ' this will be set by the function ' Open the Browse for Folder dialog box. pidl = SHBrowseForFolder(bi) ' If the user selected something, display its display name ' and its physical location on the system. If pidl <> 0 Then   ' Remove the empty space from the display name variable.   bi.pszDisplayName = Left(bi.pszDisplayName, InStr(bi.pszDisplayName, vbNullChar) - 1)   Debug.Print "The user selected: "; bi.pszDisplayName   ' If the folder is not a virtual folder, display its physical location.   physpath = Space(260)  ' make room in the buffer   retval = SHGetPathFromIDList(pidl, physpath)   If retval = 0 Then     Debug.Print "Physical Location: (virtual folder)"   Else     ' Remove the empty space and display the result.     physpath = Left(physpath, InStr(physpath, vbNullChar) - 1)     Debug.Print "Physical Location: "; physpath   End If   ' Free the pidl returned by the function.   CoTaskMemFree pidl End If ' Whether successful or not, free the PIDL which was used to ' identify the My Computer virtual folder. CoTaskMemFree bi.pidlRoot

Category

Shell

Go back to the alphabetical Function listing.
Go back to the Reference section index.


Last Modified: September 25, 1999
This page is copyright © 1999 Paul Kuliniewicz. Copyright Information Revised October 29, 2000
Go back to the Windows API Guide home page.
E-mail: vbapi@vbapi.com Send Encrypted E-Mail
This page is at http://www.vbapi.com/ref/s/shgetpathfromidlist.html



Windows API Guide
Windows API Guide - Reference - Volume 1: Version 3.0 For the MS-DOS and PC-DOS Operating Systems
ISBN: B001V0KQIY
EAN: N/A
Year: 1998
Pages: 610

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net