' CB_FolderFind.cba ' Author: Pyxia development modified by Egil-LA2PJ 2013 AUTODEFINE "OFF" TYPE BROWSEINFO DEF hOwner:INT DEF pidlRoot:INT DEF pszDisplayName:STRING DEF lpszTitle:STRING DEF ulFlags:INT DEF lpfn:INT DEF lParam:INT DEF iImage:INT ENDTYPE BROWSEINFO bi DECLARE IMPORT,SHGetPathFromIDList(pidl:INT,pszPath:STRING),INT DECLARE IMPORT,SHBrowseForFolder(lpbi:BROWSEINFO),INT DECLARE IMPORT,CoTaskMemFree(pidl:int) WINDOW win ISTRING buffer[260] UINT lpIDList,pszPath OPENWINDOW win,0,0,800,600,@MINBOX,0,"Browse for Folder",&mainloop FindFolder(win.hWnd) 'Print the result print win,buffer WAITUNTIL ISWINDOWCLOSED(win) END SUB mainloop(),INT SELECT @MESSAGE CASE @IDCREATE CENTERWINDOW win CASE @IDCLOSEWINDOW CASE& @IDDESTROY CLOSEWINDOW win ENDSELECT RETURN 0 ENDSUB SUB FindFolder(hWnd:UINT),STRING 'Browse for folder. Call with windows handle. Returns selected folder as string bi.hOwner = hWnd bi.pszDisplayName = buffer bi.lpszTitle = "Select Directory:" bi.ulFlags = 0x00000001 lpIDList = SHBrowseForFolder(bi) IF lpIDList <> 0 pszPath = SHGetPathFromIDList(lpIDList,buffer) CoTaskMemFree(lpIDList) ENDIF RETURN buffer ENDSUB