コード例 #1
0
 public unsafe PdbInfo(IO.FileStream inputStream, Metadata.Reader reader)
 {
     this.reader         = reader;
     this.pdbFunctionMap = PdbFile.LoadFunctionMap(inputStream, out tokenToSourceMapping, out sourceServerData, reader);
     //inputStream.Seek(0L, IO.SeekOrigin.Begin);
     //this.remapTable = PdbFile.LoadRemapTable(inputStream);
 }
コード例 #2
0
        private bool LoadFile(string path)
        {
            // reset stuff
            _data                  = null;
            _stageIDOffset         = -1;
            stageSelection.Enabled = false;
            itemSelection.Enabled  = false;
            lblCurrentStage.Text   = lblIDValue.Text = lblOffsetValue.Text = "?";
            btnOkay.Enabled        = false;

            _path = path;

            txtPath.Text = _path;
            _data        = new byte[new IO.FileInfo(_path).Length];
            FileStream input = new IO.FileStream(_path, FileMode.Open,
                                                 FileAccess.Read, FileShare.Read, 8, FileOptions.SequentialScan);

            input.Read(_data, 0, _data.Length);
            input.Dispose();

            lblSizeValue.Text = _data.Length.ToString();
            lblNameValue.Text = getModuleName();
            _stageIDOffset    = findStageIDOffset();
            if (_stageIDOffset < 0)
            {
                MessageBox.Show("Could not find the stage ID offset.");
                return(false);
            }
            lblOffsetValue.Text = "0x" + Convert.ToString(_stageIDOffset, 16);
            byte currentID = findCurrentID();

            lblIDValue.Text = "0x" + Convert.ToString(currentID, 16);

            foreach (Stage s in stageList)
            {
                if (s.ID == currentID)
                {
                    lblCurrentStage.Text        = s.Name;
                    stageSelection.SelectedItem = s;
                    break;
                }
            }

            if (lblNameValue.Text.StartsWith("stOnline"))
            {
                itemSelection.Enabled       = true;
                itemSelection.SelectedIndex = _data[1223];
                lblCurrentStage.Text       += " / " + itemSelection.Text;
            }
            else
            {
                itemSelection.Enabled = false;
            }

            stageSelection.Enabled = true;
            btnOkay.Enabled        = true;
            return(true);
        }
コード例 #3
0
        public static Image FromFile(string filename)
        {
            //TODO: review here
            //should not depend on the extension
            string fileext = IO.Path.GetExtension(filename).ToLower();

            switch (fileext)
            {
            default:
                throw new NotSupportedException();

            case ".jpg":
            {
                JpegDecoder jpegDec = new JpegDecoder();
                ImageTools.ExtendedImage outputImg = new ImageTools.ExtendedImage();
                using (System.IO.FileStream fs = new IO.FileStream(filename, IO.FileMode.Open))
                {
                    jpegDec.Decode(outputImg, fs);
                }
                //return bitmap
                return(new Bitmap(outputImg.PixelWidth, outputImg.PixelHeight, outputImg.Pixels,
                                  outputImg.DensityXInt32, outputImg.DensityYInt32));
            }

            case ".gif":
            {
                GifDecoder gifDec = new GifDecoder();
                ImageTools.ExtendedImage outputImg = new ImageTools.ExtendedImage();
                using (System.IO.FileStream fs = new IO.FileStream(filename, IO.FileMode.Open))
                {
                    gifDec.Decode(outputImg, fs);
                }
                //return bitmap
                return(new Bitmap(outputImg.PixelWidth, outputImg.PixelHeight, outputImg.Pixels,
                                  outputImg.DensityXInt32, outputImg.DensityYInt32));
            }

            case ".png":
            {
                ImageTools.IO.Png.PngDecoder pngDecoder = new PngDecoder();
                //HjgPngDecoder pngDecoder = new HjgPngDecoder();
                //PngDecoder pngDecoder = new PngDecoder();
                ImageTools.ExtendedImage outputImg = new ImageTools.ExtendedImage();
                using (System.IO.FileStream fs = new IO.FileStream(filename, IO.FileMode.Open))
                {
                    pngDecoder.Decode(outputImg, fs);
                }

                Bitmap bmp = new Bitmap(outputImg.PixelWidth,
                                        outputImg.PixelHeight, outputImg.Pixels,
                                        outputImg.DensityXInt32, outputImg.DensityYInt32);
                bmp.PixelFormat = Imaging.PixelFormat.Format32bppArgb;
                return(bmp);
            }
            }
            return(null);
        }
コード例 #4
0
        private bool LoadFile(string path)
        {
            // reset stuff
            _data = null;
            _stageIDOffset = -1;
            stageSelection.Enabled = false;
            itemSelection.Enabled = false;
            lblCurrentStage.Text = lblIDValue.Text = lblOffsetValue.Text = "?";
            btnOkay.Enabled = false;

            _path = path;

            txtPath.Text = _path;
            _data = new byte[new IO.FileInfo(_path).Length];
            FileStream input = new IO.FileStream(_path, FileMode.Open,
                FileAccess.Read, FileShare.Read, 8, FileOptions.SequentialScan);
            input.Read(_data, 0, _data.Length);
            input.Dispose();

            lblSizeValue.Text = _data.Length.ToString();
            lblNameValue.Text = getModuleName();
            _stageIDOffset = findStageIDOffset();
            if (_stageIDOffset < 0)
            {
                MessageBox.Show("Could not find the stage ID offset.");
                return false;
            }
            lblOffsetValue.Text = "0x" + Convert.ToString(_stageIDOffset, 16);
            byte currentID = findCurrentID();
            lblIDValue.Text = "0x" + Convert.ToString(currentID, 16);

            IEnumerator<Stage> e = stageList.GetEnumerator();
            bool found = false;
            while (e.MoveNext() && !found)
            {
                Stage s = e.Current;
                if (s.ID == currentID)
                {
                    found = true;
                    lblCurrentStage.Text = s.Name;
                    stageSelection.SelectedItem = s;
                }
            }

            if (lblNameValue.Text.StartsWith("stOnline"))
            {
                itemSelection.Enabled = true;
                itemSelection.SelectedIndex = _data[1223];
                lblCurrentStage.Text += " / " + itemSelection.Text;
            }
            else
            {
                itemSelection.Enabled = false;
            }

            stageSelection.Enabled = true;
            btnOkay.Enabled = true;
            return true;
        }