windows 95 find file format

(some of) windows 95 find file by edward blake (blakee@rcsn.nb.ca)
it took a while to find some miminal information about the windows95 file
find format. this shows some of the basics of this file structure. i am not
very good at analyzing file formats, so the information here could be sligthly
inacurate. i was only able to successfully get the basic format of a file
which doesn't have results saved. if the information is not too understandable,
the appendix shows the decimal values of what i used to try to understand the
format.
---------------------
basic structure for non-stored entry format:
[header  32 bytes]
[token   variable length]
[token   variable length]
[token   variable length]
.
.
[5 nulls (byte value=0) ]
a usual findfile file (without saving entries, only search by filename)
has this structure
[header]
[55 header - searched filename]
[48 header - where is searched (c:\ for example)]
[55 header - 17 value is "0"]
[5 nulls]
----------------------
the header:
the header of the windows 95 file find format has something like this:
byte 1		signature1, set to 68
byte 2		signature2, set to 70
byte 3		signature3? set to 3
byte 4		null
byte 5		flags1
byte 6		flags2
byte 7		null
byte 8		null
byte 9		reserved? set to 255
byte 10		reserved? set to 255
byte 11		reserved? set to 16
byte 12		null
byte 13		32
byte 14		null
byte 15		null
byte 16		null
byte 17		number of tokens (i believe) (both 55 and 48 types)
byte 18		null
byte 19		null
byte 20		null
byte 21		i don't have a single clue what this is
byte 22		null
byte 23		null
byte 24		null
byte 25		reserved? set to 255
byte 26		reserved? set to 255
byte 27		reserved? set to 255
byte 28		reserved? set to 255
byte 29		iconstate
byte 30		null
byte 31		null
byte 32		null
notes:
flags1 switchs:
+1 = controls including\not including subdirectories
+8 = case sensitive
flags2 switchs:
+16 = ?
+1 = store entries
iconstate switchs:
=1 = large icons
=2 = small icons
=3 = listing
=4 = details
there seem to be two types of tokens, one with 55 in the middle, and the other
having 48 in the middle. i could only find one value for the 48 type token.
[ x 55 y 0 <stream of bytes> 0 ]
x  16 = filename searched
17 = include subdirectories?
32 = registered file type searched for
33 = text searched within file
57 = search by date-1
55 = search by date-2
53 = search by date-3
34 = at least\most
y  number of bytes plus null in string  
handling data in stream of bytes
for x:
16 ascii text
17 ascii text
one character: "0" = include subdirectories
"1" = not include subdirectories
32 ascii text
33 ascii text
57 <unknown>
58 ascii values: ex. "50" = 50
59 ascii values: ex. "50" = 50
34 ascii values:
first character: "1" = at least
"2" = at most
(space)
at least\most value in ascii (divide by 1024 to get in k)
[ x 48 y 0 <stream of text> 0 ]
x  2 = where to search
y  number of bytes plus null in string
---------
appendix:
---------
files named winfile (not include subs) - z2
files of type adobeacrobat named winfile - z3
files of type adobeacrobat named winfile (not include subs) - z4
files named winfile with hello within - z5
files named winfile (with at least 200k) - z6
files named winfile (with at most 200k) - z7
files named winfile (created\modified opt 1) - z8
files named winfile (created\modified opt 2) - z9
files named winfile (created\modified opt 3) - z10
files named winfile (created\modified opt 2-10) - z11
files named winfile (created\modified opt 3-10) - z12
files named winfile (case sensitive) - z13
files named winfile (view as large icons) - z14
files named wed (bitmap files) - z15
files named winfile (stored entries) - z16
df