public ICollection ReadResources () {
ArrayList resources = new ArrayList ();
/*
* We can't use a BinaryReader since we have to keep track of the
* stream position for padding.
*/
while (true) {
read_padding ();
int data_size = read_int32 ();
if (data_size == -1)
/* EOF */
break;
//int header_size =
read_int32 ();
NameOrId type = read_ordinal ();
NameOrId name = read_ordinal ();
read_padding ();
//int data_version =
read_int32 ();
//int memory_flags =
read_int16 ();
int language_id = read_int16 ();
//int version =
read_int32 ();
//int characteristics =
read_int32 ();
if (data_size == 0)
/* Empty resource entry */
continue;
byte[] data = new byte [data_size];
res_file.Read (data, 0, data_size);
resources.Add (new Win32EncodedResource (type, name, language_id, data));
}
return resources;
}
}