SCANDIR.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. /*
  11.  * SCANDIR.H
  12.  *
  13.  */
  14. /* Handle to the list of files scanned */
  15. typedef struct dirlist FAR * DIRLIST;
  16. /* Handle to one item within the list of files */
  17. typedef struct diritem FAR * DIRITEM;
  18. DIRLIST dir_buildlist(LPSTR pathname, BOOL bOnDemand);
  19. void dir_delete(DIRLIST list);
  20. BOOL dir_isfile(DIRLIST list);
  21. DIRITEM dir_firstitem(DIRLIST list);
  22. DIRITEM dir_nextitem(DIRLIST list, DIRITEM previtem, BOOL fDeep);
  23. /* Filenames
  24.  *
  25.  * From a DIRITEM, you can query either the relative or the full name.
  26.  *
  27.  * The relative name does not include the tree root that was originally
  28.  * passed to dir_buildlist. The full name does include this. Note however
  29.  * that if you passed a relative name to dir_buildlist, the full
  30.  * name you get back will not be an *absolute* pathname.
  31.  *
  32.  * Thus, if you call dir_buildlist with "c:",
  33.  * we will return:
  34.  *      relative name:  ".config.sys"
  35.  *      full name:      "c:config.sys"
  36.  *
  37.  * If you call dir_buildlist with ".geraintd",
  38.  * we will return:
  39.  *      relative name:  ".sourcescandir.h"
  40.  *      full name:      ".geraintdsourcescandir.h"
  41.  *
  42.  * In both cases, we return a pointer to a filename string: you must
  43.  * call dir_freefullname or dir_freerelname to free this memory when you
  44.  * have finished with it. Depending on the implementation, one or other
  45.  * (or possibly both) of these names will have been built specially
  46.  * when you called the query function.
  47.  *
  48.  * You can also return a pointer to the tree root name. (In the above
  49.  * examples this would be c: and .geraintd). Depending on the implementation,
  50.  * this may have been forced to an absolute path.
  51.  *
  52.  */
  53. LPSTR dir_getfullname(DIRITEM item);
  54. LPSTR dir_getrelname(DIRITEM item);
  55. LPSTR dir_getroot_item(DIRITEM item);
  56. LPSTR dir_getroot_list(DIRLIST dl);
  57. void dir_freefullname(DIRITEM item, LPSTR fullname);
  58. void dir_freerelname(DIRITEM item, LPSTR relname);
  59. void dir_freeroot_item(DIRITEM item, LPSTR rootname);
  60. void dir_freeroot_list(DIRLIST dl, LPSTR rootname);
  61. LPSTR dir_getopenname(DIRITEM item);
  62. void dir_freeopenname(DIRITEM item, LPSTR openname);
  63. int dir_openfile(DIRITEM item);
  64. void dir_closefile(DIRITEM item, int fh);
  65. long dir_getfilesize(DIRITEM item);
  66. BOOL dir_copy(DIRITEM item, LPSTR newroot);
  67. BOOL dir_startcopy(DIRLIST dl);
  68. int dir_endcopy(DIRLIST dl);