home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / windiff / scandir.h < prev    next >
Text File  |  1997-10-05  |  3KB  |  77 lines

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