Beispiel #1
0
        protected ResourceSource(Boolean isReadOnly, ResourceSourceLoadMode mode)
        {
            IsReadOnly = isReadOnly;
            LoadMode   = mode;

            InitialiseEnumerables();
        }
Beispiel #2
0
        //////////////////////

        public static ResourceSource Open(String filename, Boolean readOnly, ResourceSourceLoadMode mode)
        {
            // TODO: Adopt a Factory pattern for Resource Sources because different types can share extensions
            // e.g. Managed executes, New Executables, Portable Executables etc
            // and in fact, Managed and PE can both be read by Win32

            // get the file type of the file to load
            // if PE executable (a dll, native exe, etc)

            // what about the "Resource Template *.rct" format?
            // XN makes a reference to "DCT" as an alias extension for *.res files

            String ext = Path.GetExtension(filename).ToUpperInvariant();

            switch (ext)
            {
            case ".RES":
                return(new ResResourceSource(filename, readOnly, mode));

//				case ".ICL":
//					return new NEResourceSource(filename, readOnly, mode);
//				case ".RC":
//					return new RCResourceSource(filename, readOnly, mode);
            default:
                return(new Win32ResourceSource(filename, readOnly, mode));
            }
        }
Beispiel #3
0
 protected FileResourceSource(String fileName, Boolean isReadOnly, ResourceSourceLoadMode mode) : base(isReadOnly || IsPathReadonly(fileName), mode)
 {
     FileInfo = new FileInfo(fileName);
     if (!FileInfo.Exists)
     {
         throw new FileNotFoundException("", fileName);
     }
 }
Beispiel #4
0
        public ResResourceSource(string fileName, bool isReadOnly, ResourceSourceLoadMode mode) : base(
                fileName,
                isReadOnly,
                mode
                )
        {
            _resources = new List <ResResource>();

            Reload();
        }
Beispiel #5
0
        public Win32ResourceSource(String fileName, Boolean isReadOnly, ResourceSourceLoadMode mode) : base(fileName, isReadOnly, mode)
        {
            if (mode == ResourceSourceLoadMode.PreemptiveLoad)
            {
                throw new NotImplementedException("Support for preemptive data loading is not implemented yet");
            }

            if (LoadMode > 0)
            {
                Reload();
            }
        }
Beispiel #6
0
        public ResResourceSource(String filename, Boolean isReadOnly, ResourceSourceLoadMode mode) : base(filename, true, mode)
        {
            _stream = new FileStream(filename, FileMode.Open);
            if (!_stream.CanSeek)
            {
                throw new AnolisException("Res FileStream must support seeking");
            }

            _resources = new List <ResResource>();

            Reload();
        }
Beispiel #7
0
        //////////////////////

        public static ResourceSource Open(String fileName, Boolean readOnly, ResourceSourceLoadMode mode)
        {
            String ext = Path.GetExtension(fileName).ToUpperInvariant();

            if (ext.StartsWith(".", StringComparison.Ordinal))
            {
                ext = ext.Substring(1);
            }

            ResourceSourceFactory factory = ResourceSourceFactory.GetFactoryForExtension(ext);

            return(factory.Create(fileName, readOnly, mode));
        }
Beispiel #8
0
        public PEResourceSource(String filename, Boolean isReadOnly, ResourceSourceLoadMode mode) : base(isReadOnly || IsPathReadonly(filename), mode)
        {
            if (mode == ResourceSourceLoadMode.PreemptiveLoad)
            {
                throw new NotImplementedException("Support for preemptive data loading is not implemented yet");
            }

            FileInfo = new FileInfo(_path = filename);
            if (!FileInfo.Exists)
            {
                throw new FileNotFoundException("The specified Win32 PE Image was not found", filename);
            }

            if (LoadMode > 0)
            {
                Reload();
            }
        }
Beispiel #9
0
 public override ResourceSource Create(string fileName, bool isReadOnly, ResourceSourceLoadMode mode)
 {
     return(new Win32ResourceSource(fileName, isReadOnly, mode));
 }
Beispiel #10
0
 public override ResourceSource Create(String filename, Boolean isReadOnly, ResourceSourceLoadMode mode)
 {
     return(new Win32ResourceSource(filename, isReadOnly, mode));
 }
Beispiel #11
0
            public virtual ResourceSource CreateNew(String fileName, Boolean isReadOnly, ResourceSourceLoadMode mode)
            {
                CreateNew(fileName);

                return(Create(fileName, isReadOnly, mode));
            }
Beispiel #12
0
 public abstract ResourceSource Create(String fileName, Boolean isReadOnly, ResourceSourceLoadMode mode);
Beispiel #13
0
 public abstract ResourceSource Create(string fileName, bool isReadOnly, ResourceSourceLoadMode mode);