/******************************************************************************\ * This is a part of the Microsoft Source Code Samples. * Copyright (C) 1993-1997 Microsoft Corporation. * All rights reserved. * This source code is only intended as a supplement to * Microsoft Development Tools and/or WinHelp documentation. * See these sources for detailed information regarding the * Microsoft samples programs. \******************************************************************************/ /* * SCANDIR.H * */ /* Handle to the list of files scanned */ typedef struct dirlist FAR * DIRLIST; /* Handle to one item within the list of files */ typedef struct diritem FAR * DIRITEM; DIRLIST dir_buildlist(LPSTR pathname, BOOL bOnDemand); void dir_delete(DIRLIST list); BOOL dir_isfile(DIRLIST list); DIRITEM dir_firstitem(DIRLIST list); DIRITEM dir_nextitem(DIRLIST list, DIRITEM previtem, BOOL fDeep); /* Filenames * * From a DIRITEM, you can query either the relative or the full name. * * The relative name does not include the tree root that was originally * passed to dir_buildlist. The full name does include this. Note however * that if you passed a relative name to dir_buildlist, the full * name you get back will not be an *absolute* pathname. * * Thus, if you call dir_buildlist with "c:\", * we will return: * relative name: ".\config.sys" * full name: "c:\config.sys" * * If you call dir_buildlist with ".\geraintd", * we will return: * relative name: ".\source\scandir.h" * full name: ".\geraintd\source\scandir.h" * * In both cases, we return a pointer to a filename string: you must * call dir_freefullname or dir_freerelname to free this memory when you * have finished with it. Depending on the implementation, one or other * (or possibly both) of these names will have been built specially * when you called the query function. * * You can also return a pointer to the tree root name. (In the above * examples this would be c:\ and .\geraintd). Depending on the implementation, * this may have been forced to an absolute path. * */ LPSTR dir_getfullname(DIRITEM item); LPSTR dir_getrelname(DIRITEM item); LPSTR dir_getroot_item(DIRITEM item); LPSTR dir_getroot_list(DIRLIST dl); void dir_freefullname(DIRITEM item, LPSTR fullname); void dir_freerelname(DIRITEM item, LPSTR relname); void dir_freeroot_item(DIRITEM item, LPSTR rootname); void dir_freeroot_list(DIRLIST dl, LPSTR rootname); LPSTR dir_getopenname(DIRITEM item); void dir_freeopenname(DIRITEM item, LPSTR openname); int dir_openfile(DIRITEM item); void dir_closefile(DIRITEM item, int fh); long dir_getfilesize(DIRITEM item); BOOL dir_copy(DIRITEM item, LPSTR newroot); BOOL dir_startcopy(DIRLIST dl); int dir_endcopy(DIRLIST dl);