`
Par2: Pick a directory using 32 bit API calls 1998-01-09 -- Jeff Berlinghoff CW4 has this built in, but I needed to be able to do this in CW2. It was easier than I expected. Global Embed, After Global Includes: BROWSEINFO GROUP,TYPE hWndOwner LONG pIDLRoot LONG lpszDisplayName LONG lpszTitle LONG ulFlags LONG lpfnCallBack LONG iImage LONG END Global Embed, Inside Global Map: MODULE('Shell32') SHBrowseForFolder(*BrowseInfo),LONG,RAW,PASCAL SHGetPathFromIDList(Long,*CSTRING),LONG,RAW,PASCAL CoTaskMemFree(*LONG),RAW,PASCAL END Procedure, Embed, Data BI LIKE(BrowseInfo) cTitle CSTRING(30) cPath CSTRING(251) In the Code (BE SURE YOU HAVE A WINDOW OPEN!) cTitle = 'List Title Message' cPath = '<0>{250}' BI.hWndOwner = 0{prop:Handle} BI.lpszTitle = ADDRESS(cTitle) BI.ulFlags = 1 !only show directories! lpIDList# = SHBrowseForFolder(BI) IF lpIDList# Result# = SHGetPathFromIDList(lpIDList#, cPath) COTaskMemFree(lpIDList#) MESSAGE(cPath, 'You Chose') END Printed November 24, 2024, 1:06 am This article has been viewed/printed 35240 times. |