bf8a400452e1175a20f6e10e435d3712867eb434
[btb/d2x.git] / unused / win95 / findfile.c
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14
15 #pragma off (unreferenced)
16 static char rcsid[] = "$Id: findfile.c,v 1.1.1.1 2001-01-19 03:30:15 bradleyb Exp $";
17 #pragma on (unreferenced)
18
19 #define _WIN32
20 #define WIN32_LEAN_AND_MEAN
21 #include <windows.h>
22 #include "findfile.h"
23
24
25 //      Global Variables        ----------------------------------------------------------
26
27 static HANDLE   _FindFileHandle = INVALID_HANDLE_VALUE;
28
29
30
31 //      Functions
32
33 int     FileFindFirst(char *search_str, FILEFINDSTRUCT *ffstruct)
34 {
35         WIN32_FIND_DATA find;
36
37         _FindFileHandle =  FindFirstFile((LPSTR)search_str, &find);
38         if (_FindFileHandle == INVALID_HANDLE_VALUE) return 1;
39         else {
40                 ffstruct->size = find.nFileSizeLow;
41                 strcpy(ffstruct->name, find.cFileName);
42                 return 0; 
43         }
44 }
45
46
47 int     FileFindNext(FILEFINDSTRUCT *ffstruct)
48 {
49         WIN32_FIND_DATA find;
50
51         if (!FindNextFile(_FindFileHandle, &find)) return 1;
52         else {
53                 ffstruct->size = find.nFileSizeLow;
54                 strcpy(ffstruct->name, find.cFileName);
55                 return 0;
56         }
57 }
58  
59
60 int     FileFindClose(void)
61 {
62         if (!FindClose(_FindFileHandle)) return 1;
63         else return 0;
64 }
65
66
67 int GetFileDateTime(int filehandle, FILETIMESTRUCT *ftstruct)
68 {
69         FILETIME filetime;
70         int retval;
71
72         retval = GetFileTime((HANDLE)filehandle, NULL, NULL, &filetime);
73         if (retval) {
74                 FileTimeToDosDateTime(&filetime, &ftstruct->date, &ftstruct->time);
75                 return 0;
76         }
77         else return 1;
78 }
79
80
81 //returns 0 if no error
82 int SetFileDateTime(int filehandle, FILETIMESTRUCT *ftstruct)
83 {
84         FILETIME ft;
85         int retval;
86
87         DosDateTimeToFileTime(ftstruct->date, ftstruct->time, &ft);
88         retval = SetFileTime((HANDLE)filehandle, NULL, NULL, &ft);      
89         if (retval) return 0;
90         else return 1;
91 }