internal ImageImportDirectory( Module module, IMAGE.DATA_DIRECTORY data, IMAGE.DIRECTORY_ENTRY type ) : base(module, data, type) { unsafe { modcount = (int)(data.Size / sizeof(IMAGE.IMPORT_DESCRIPTOR)) - 1; //modcount--; // 最後の空項目を除く } descs = base.pData.Reinterpret <IMAGE.IMPORT_DESCRIPTOR>(); }
public static ImageDataDirectory Create(Module module, IMAGE.DATA_DIRECTORY data, IMAGE.DIRECTORY_ENTRY type) { switch (type) { case IMAGE.DIRECTORY_ENTRY.IMPORT: return(new ImageImportDirectory(module, data, type)); default: return(new ImageDataDirectory(module, data, type)); } }
/// <summary> /// 指定した種類のデータディレクトリが存在しているか否かを取得します。 /// </summary> /// <param name="index">存在を確認したいデータディレクトリの種類を指定します。</param> /// <returns>指定した種類のデータディレクトリが存在していた場合に true を返します。 /// それ以外の場合に false を返します。</returns> public bool HasDirectory(IMAGE.DIRECTORY_ENTRY index) { return((int)index < this.Count && arr[index].Size > 0); }
protected ImageDataDirectory(Module module, IMAGE.DATA_DIRECTORY data, IMAGE.DIRECTORY_ENTRY type) { this.module = module; this.data = data; this.type = type; }
/// <summary> /// 指定した種類のデータディレクトリを取得します。 /// </summary> /// <param name="index">取得するデータディレクトリの種類を指定します。</param> /// <returns></returns> public ImageDataDirectory this[IMAGE.DIRECTORY_ENTRY index] { get{ return(ImageDataDirectory.Create(this.module, arr[index], index)); } }