System.Resources.Win32ResFileReader.ReadResources C# (CSharp) Méthode

ReadResources() public méthode

public ReadResources ( ) : ICollection
Résultat ICollection
	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;
	}
}

Usage Example

Exemple #1
0
		public void DefineUnmanagedResource (string resourceFileName)
		{
			if (resourceFileName == null)
				throw new ArgumentNullException ("resourceFileName");
			if (resourceFileName.Length == 0)
				throw new ArgumentException ("resourceFileName");
			if (!File.Exists (resourceFileName) || Directory.Exists (resourceFileName))
				throw new FileNotFoundException ("File '" + resourceFileName + "' does not exists or is a directory.");
			if (native_resource != NativeResourceType.None)
				throw new ArgumentException ("Native resource has already been defined.");

			// avoid definition of more than one unmanaged resource
			native_resource = NativeResourceType.Unmanaged;

			using (FileStream fs = new FileStream (resourceFileName, FileMode.Open, FileAccess.Read)) {
				Win32ResFileReader reader = new Win32ResFileReader (fs);

				foreach (Win32EncodedResource res in reader.ReadResources ()) {
					if (res.Name.IsName || res.Type.IsName)
						throw new InvalidOperationException ("resource files with named resources or non-default resource types are not supported.");

					AddUnmanagedResource (res);
				}
			}
		}