示例#1
0
        public void DefineUnmanagedResource(string resourceFileName)
        {
            if (resourceFileName == null)
            {
                throw new ArgumentNullException("resourceFileName");
            }
            if (resourceFileName == String.Empty)
            {
                throw new ArgumentException("resourceFileName");
            }
            if (!File.Exists(resourceFileName) || Directory.Exists(resourceFileName))
            {
                throw new FileNotFoundException("File '" + resourceFileName + "' does not exists or is a directory.");
            }

            using (FileStream fs = new FileStream(resourceFileName, FileMode.Open)) {
                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);
                }
            }
        }
示例#2
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 exist 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);
                }
            }
        }