SHGetDataFromIDList

[Now Supported on Windows NT]

The ShGetDataFromIDList function retrieves extended property data from a relative IDList.

HRESULT ShGetDataFromIDList(

LPSHELLFOLDER psf, //Points to the parent folder
LPCITEMIDLIST pidl, //Points to an item identifier struct
int nFormat, //Specifies a format
PVOID pv, //Points to a buffer for a structure
int cb //Size of the buffer passed in
);  

Parameters

psf

Pointer to the parent folder.

pidl

Pointer to an ITEMIDLIST structure that identifies the subfolder relative to its parent folder.

nFormat

Specifies one of the following formats:

SHGDFIL_FINDDATA Format used for file system objects.
SHGDFIL_NETRESOURCE Format used for network resources.

pv

Pointer to a buffer for either a WIN32_FIND_DATA or NET_RESOURCE structure, depending on the value of the nFormat parameter. For more information, see the Remarks section below.

cb

Size of the buffer passed in. This value should be either sizeof(WIN32_FIND_DATA) for SHGDFIL_FINDDATA or, sizeof(NETRESOURCE) + 1024 to retrieve a SHGDFIL_NETRESOURCE structure.

Return Values

The return value is NOERROR if the format is supported and the function succeeds. If the psf, pidl, pv, or cb parameters do not match the nFormat parameter, or if nFormat is not one of the specific SHGDFIL_ values shown, E_INVALIDARG is also returned.

Remarks

If nFormat is SHGDFIL_NETRESURCE, there are two possible cases. If the buffer is large enough, the net resource's string information (fields for the network name, local name, provider, and comments) will be placed into the buffer. If the buffer is not large enough, only the net resource structure will be placed into the buffer and the string information pointers will be NULL.