亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? utilunit.pas

?? delphi的殼
?? PAS
字號:
unit UtilUnit;

interface

uses
  SysUtils, Classes, JwaWinnt, Graphics, JwaWinGDI,
  JwaWinBase, JwaWintype, JwaWinUser;

const
  NULL_VALUE = $FFFFFFFF;

function PtrAdd(Ptr: Pointer; Delta: integer): Pointer;
function PtrDiff(Ptr1, Ptr2: Pointer): integer;
function Min(p1, p2: Cardinal): Cardinal;
{Copy from jcl}
procedure SaveIconToFile(Icon: HICON; const FileName: string);procedure WriteIcon(Stream: TStream; ColorBitmap, MaskBitmap: HBITMAP;  WriteLength: Boolean = False); overload;procedure WriteIcon(Stream: TStream; Icon: HICON; WriteLength: Boolean = False); overload;
                                                                                           
procedure PoorCreateMainIcon(IconStream: TMemoryStream; RVA: Cardinal);

implementation

const  rc3_Icon = 1;type  PCursorOrIcon = ^TCursorOrIcon;  TCursorOrIcon = packed record    Reserved: Word;    wType: Word;    Count: Word;  end;  PIconRec = ^TIconRec;  TIconRec = packed record    Width: Byte;    Height: Byte;    Colors: Word;    Reserved1: Word;    Reserved2: Word;    DIBSize: Longint;    DIBOffset: Longint;  end;


type
  PIconHeader = ^TIconHeader;
  TIconHeader = packed record
    wReserved: WORD;          // Currently zero
    wType: WORD;              // 1 for icons
    wCount: WORD;             // Number of components
    bWidth: BYTE;
    bHeight: BYTE;
    bColorCount: BYTE;
    bReserved: BYTE;
    wPlanes: WORD;
    wBitCount: WORD;
    lBytesInRes: DWORD;
    wNameOrdinal: WORD;       // Points to component
  end;

function PtrAdd(Ptr: Pointer; Delta: integer): Pointer;
begin
  result := Pointer(integer(Ptr) + Delta);
end;

function PtrDiff(Ptr1, Ptr2: Pointer): integer;
begin
  result := Cardinal(Ptr1) - Cardinal(Ptr2);
end;

function Min(p1, p2: Cardinal): Cardinal;
begin
  if p1 < p2 then
    result := p1
  else
    result := p2;
end;

{Copy from jcl}
procedure WriteIcon(Stream: TStream; ColorBitmap, MaskBitmap: HBITMAP; WriteLength: Boolean = False);var  MonoInfoSize, ColorInfoSize: DWORD;  MonoBitsSize, ColorBitsSize: DWORD;  MonoInfo, MonoBits, ColorInfo, ColorBits: Pointer;  CI: TCursorOrIcon;  List: TIconRec;  Length: Longint;begin  FillChar(CI, SizeOf(CI), 0);  FillChar(List, SizeOf(List), 0);  GetDIBSizes(MaskBitmap, MonoInfoSize, MonoBitsSize);  GetDIBSizes(ColorBitmap, ColorInfoSize, ColorBitsSize);  MonoInfo := nil;  MonoBits := nil;  ColorInfo := nil;  ColorBits := nil;  try    MonoInfo := AllocMem(MonoInfoSize);    MonoBits := AllocMem(MonoBitsSize);    ColorInfo := AllocMem(ColorInfoSize);    ColorBits := AllocMem(ColorBitsSize);    GetDIB(MaskBitmap, 0, MonoInfo^, MonoBits^);    GetDIB(ColorBitmap, 0, ColorInfo^, ColorBits^);    if WriteLength then    begin      Length := SizeOf(CI) + SizeOf(List) + ColorInfoSize +        ColorBitsSize + MonoBitsSize;      Stream.Write(Length, SizeOf(Length));    end;    with CI do    begin      CI.wType := RC3_ICON;      CI.Count := 1;    end;    Stream.Write(CI, SizeOf(CI));    with List, PBitmapInfoHeader(ColorInfo)^ do    begin      Width := biWidth;      Height := biHeight;      Colors := biPlanes * biBitCount;      DIBSize := ColorInfoSize + ColorBitsSize + MonoBitsSize;      DIBOffset := SizeOf(CI) + SizeOf(List);    end;    Stream.Write(List, SizeOf(List));    with PBitmapInfoHeader(ColorInfo)^ do      Inc(biHeight, biHeight); { color height includes mono bits }    Stream.Write(ColorInfo^, ColorInfoSize);    Stream.Write(ColorBits^, ColorBitsSize);    Stream.Write(MonoBits^, MonoBitsSize);  finally    FreeMem(ColorInfo, ColorInfoSize);    FreeMem(ColorBits, ColorBitsSize);    FreeMem(MonoInfo, MonoInfoSize);    FreeMem(MonoBits, MonoBitsSize);  end;end;// WriteIcon depends on unit Graphics by use of GetDIBSizes and GetDIBprocedure WriteIcon(Stream: TStream; Icon: HICON; WriteLength: Boolean = False);var  IconInfo: TIconInfo;begin  if GetIconInfo(Icon, IconInfo) then  try    WriteIcon(Stream, IconInfo.hbmColor, IconInfo.hbmMask, WriteLength);  finally    DeleteObject(IconInfo.hbmColor);    DeleteObject(IconInfo.hbmMask);  end  else    RaiseLastOSError;end;procedure SaveIconToFile(Icon: HICON; const FileName: string);var  Stream: TFileStream;begin  Stream := TFileStream.Create(FileName, fmCreate);  try    WriteIcon(Stream, Icon, False);  finally    Stream.Free;  end;end;

procedure PoorCreateMainIcon(IconStream: TMemoryStream; RVA: Cardinal);
var
  ResBuf: Pointer;
  ResSize: Cardinal;
  IconSize: Cardinal;
  PIco: PIconHeader;
  off: Cardinal;   
  pResDir: PImageResourceDirectory;
  pResDirEntery: PImageResourceDirectoryEntry;
  pResDataEntry: PImageResourceDataEntry;
begin
  IconSize := IconStream.Size;

  ResSize := 5 * (SizeOf(TImageResourceDirectory) + SizeOf(TImageResourceDirectoryEntry)) +
             2 * SizeOf(TImageResourceDataEntry) + SizeOf(TImageResourceDirectoryEntry) + $18 + IconSize;

  ResBuf := AllocMem(ResSize);

  pResDir := ResBuf;                                                    // #1  dir
  pResDir^.MajorVersion := $A001;
  pResDir^.NumberOfIdEntries := 2;
  off := SizeOf(TImageResourceDirectory);
  pResDirEntery := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectoryEntry) * 2);
  pResDirEntery^.Name.Name := $3;
  pResDirEntery^.Directory.OffsetToDirectory := $80000000 + off;

  pResDir := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectory));                           // #2  dir
  pResDir^.MajorVersion := $A001;
  pResDir^.NumberOfIdEntries := 1;
  pResDirEntery := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectoryEntry));
  pResDirEntery^.Name.Name := 1;
  pResDirEntery^.Directory.OffsetToDirectory := $80000000 + off;

  pResDir := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectory));                           // #2  dir
  pResDir^.MajorVersion := $A002;
  pResDir^.NumberOfIdEntries := 1;
  pResDirEntery := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectoryEntry));
  pResDirEntery^.Name.Name := 1;
  pResDirEntery^.Directory.OffsetToDirectory := off;

  pResDataEntry := PtrAdd(ResBuf, off);  // #3 - Data
  pResDataEntry^.OffsetToData := RVA + ResSize - IconSize;
  pResDataEntry^.Size := IconSize;
  inc(off, SizeOf(TImageResourceDataEntry));
  //=======================
  pResDirEntery := PtrAdd(ResBuf, SizeOf(TImageResourceDirectory) + SizeOf(TImageResourceDirectoryEntry));
  pResDirEntery^.Name.Name := $E;
  pResDirEntery^.Directory.OffsetToDirectory := $80000000 + off;

  pResDir := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectory));                           // #2  dir  WriteIcon
  pResDir^.MajorVersion := $B001;
  pResDir^.NumberOfIdEntries := 1;
  pResDirEntery := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectoryEntry));
  pResDirEntery^.Name.Name := 1;
  pResDirEntery^.Directory.OffsetToDirectory := $80000000 + off;

  pResDir := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectory));                           // #2  dir
  pResDir^.MajorVersion := $B002;
  pResDir^.NumberOfIdEntries := 1;
  pResDirEntery := PtrAdd(ResBuf, off);
  inc(off, SizeOf(TImageResourceDirectoryEntry));
  pResDirEntery^.Name.Name := 1;
  pResDirEntery^.Directory.OffsetToDirectory := off;

  pResDataEntry := PtrAdd(ResBuf, off);  // #3 - Data
  pResDataEntry^.OffsetToData := RVA + ResSize - IconSize - $18;
  pResDataEntry^.Size := $18;

  PIco := PtrAdd(pResDataEntry, SizeOf(TImageResourceDataEntry));
  CopyMemory(PIco, IconStream.Memory, $18);
{  PIco^.wType := 1;
  PIco^.wCount := 1;
  PIco^.bWidth := $20;
  PIco^.bHeight := $20;
  PIco^.bColorCount := $0;
  PIco^.wPlanes := 1;
  PIco^.wBitCount := 8;
  PIco^.lBytesInRes := IconSize; }
  PIco^.wNameOrdinal := 1;
  CopyMemory(PtrAdd(pResDataEntry, SizeOf(TImageResourceDataEntry) + $18), PtrAdd(IconStream.Memory, 22), IconSize);
  IconStream.Clear;
  IconStream.Write(ResBuf^, ResSize);
  FreeMem(ResBuf);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里只有精品6| 亚洲欧美日韩国产手机在线 | 欧美三级蜜桃2在线观看| 一区二区三区鲁丝不卡| 欧美男生操女生| 蜜桃视频一区二区三区在线观看 | 亚洲视频每日更新| 欧美在线视频不卡| 麻豆视频观看网址久久| 精品国产乱码久久| 成人激情开心网| 一区二区三区四区乱视频| 91精品中文字幕一区二区三区| 美女一区二区在线观看| 国产欧美精品一区二区三区四区 | 韩国一区二区在线观看| 日本一区二区三区高清不卡| 99久久99久久综合| 亚洲成人777| 久久日韩粉嫩一区二区三区| 99re成人在线| 日本vs亚洲vs韩国一区三区| 久久精品视频在线免费观看| 91丨九色丨蝌蚪丨老版| 日韩精品免费专区| 久久精品男人天堂av| 色婷婷综合久久久中文字幕| 视频一区二区欧美| 国产欧美日韩麻豆91| 欧美视频在线一区| 国产在线精品不卡| 亚洲精品乱码久久久久久日本蜜臀| 777精品伊人久久久久大香线蕉| 国产精品白丝jk黑袜喷水| 亚洲码国产岛国毛片在线| 日韩一区二区电影| 91美女在线观看| 久久精品国产秦先生| 国产精品进线69影院| 欧美一区二区三区电影| 成人国产精品免费网站| 男女男精品网站| 136国产福利精品导航| 日韩一区二区中文字幕| 色综合中文综合网| 一区二区三区高清在线| 精品国产乱码久久久久久免费 | 国产精一品亚洲二区在线视频| 亚洲人亚洲人成电影网站色| 日韩精品一区国产麻豆| 91精品福利视频| 国产激情一区二区三区桃花岛亚洲| 亚洲成人一区在线| 中文字幕日韩一区二区| 日韩视频免费观看高清完整版| 99re这里只有精品首页| 激情综合色综合久久综合| 夜夜嗨av一区二区三区网页| 国产午夜精品久久久久久久 | 蜜桃视频在线观看一区| 亚洲免费观看高清| 久久久电影一区二区三区| 欧美日韩成人综合天天影院| 成人性生交大片免费看视频在线| 麻豆国产91在线播放| 亚洲国产综合91精品麻豆| 国产精品免费免费| 精品国产三级电影在线观看| 欧美日韩国产片| 色呦呦国产精品| 丰满少妇久久久久久久| 裸体歌舞表演一区二区| 午夜免费久久看| 亚洲精品中文字幕乱码三区| 国产精品久久综合| 欧美本精品男人aⅴ天堂| 欧美日韩免费观看一区二区三区 | av成人免费在线| 国产美女精品人人做人人爽 | av电影在线观看一区| 国产成人午夜精品5599| 久久不见久久见免费视频1| 亚洲成人在线观看视频| 亚洲黄色片在线观看| 国产精品久久久久影院亚瑟| 久久人人爽爽爽人久久久| 日韩美女一区二区三区四区| 欧美精品电影在线播放| 欧美视频一区二区三区在线观看| 91在线观看美女| 99久久99久久精品国产片果冻| 国产不卡在线视频| 国产精品99久久久| 狠狠狠色丁香婷婷综合激情| 久草热8精品视频在线观看| 美女视频一区在线观看| 美洲天堂一区二卡三卡四卡视频| 日产国产欧美视频一区精品| 亚洲大尺度视频在线观看| 亚洲国产综合91精品麻豆| 亚洲国产成人精品视频| 亚洲自拍与偷拍| 亚洲一区二区视频| 亚洲一区二区三区三| 亚洲国产综合91精品麻豆| 亚洲亚洲精品在线观看| 亚洲午夜在线视频| 亚洲第一搞黄网站| 亚洲v中文字幕| 日韩电影免费一区| 免费在线观看一区二区三区| 老司机精品视频线观看86| 激情五月婷婷综合网| 国精品**一区二区三区在线蜜桃| 国产精品小仙女| www.欧美精品一二区| 91网站黄www| 欧美四级电影网| 欧美一区二区三区色| 欧美videossexotv100| 久久婷婷国产综合国色天香| 国产亚洲短视频| 1区2区3区国产精品| 亚洲在线中文字幕| 日本中文在线一区| 国产一区二区导航在线播放| 国产成人8x视频一区二区| 91天堂素人约啪| 欧美日韩视频在线第一区| 日韩免费福利电影在线观看| 国产午夜精品一区二区 | 一区二区三区日韩| 午夜视频久久久久久| 久久精品国产网站| 成人h动漫精品| 欧美视频你懂的| 欧美大片在线观看一区| 国产女同性恋一区二区| 亚洲另类春色国产| 日韩经典一区二区| 精品一区二区三区免费视频| 丰满少妇在线播放bd日韩电影| 日本韩国精品一区二区在线观看| 欧美猛男男办公室激情| 久久久久久免费网| 亚洲乱码国产乱码精品精98午夜| 天天操天天综合网| 国产精品白丝jk黑袜喷水| 一本一道综合狠狠老| 日韩午夜精品电影| 国产精品美女久久福利网站| 亚洲图片欧美色图| 国产一区二区精品久久99| 色综合久久久久综合体| 日韩久久精品一区| 国产精品三级电影| 亚洲小少妇裸体bbw| 国产一区二区影院| 91精彩视频在线观看| 精品久久久三级丝袜| 亚洲天天做日日做天天谢日日欢| 日韩精品一二三区| hitomi一区二区三区精品| 欧美老肥妇做.爰bbww| 国产视频一区二区三区在线观看| 亚洲一二三四区不卡| 国产一区二区三区四区在线观看| 色婷婷精品大在线视频| 日韩免费福利电影在线观看| 亚洲精品中文字幕乱码三区| 精品一区二区三区免费| 色噜噜久久综合| 精品免费国产二区三区 | 国产一区二区三区国产| 欧美视频一区在线观看| 国产欧美一区二区精品久导航| 91欧美一区二区| 欧美电视剧在线观看完整版| 一区二区三区产品免费精品久久75| 精品中文av资源站在线观看| 在线观看日韩电影| 久久精品欧美日韩精品| 日韩专区中文字幕一区二区| 97久久精品人人澡人人爽| 欧美mv和日韩mv国产网站| 亚洲国产精品影院| 波波电影院一区二区三区| 日韩欧美三级在线| 夜夜嗨av一区二区三区网页| 丰满白嫩尤物一区二区| 精品国产乱码久久久久久牛牛 | 国产精品亚洲午夜一区二区三区 | 日韩精品一区二区三区蜜臀| 亚洲一区二区欧美日韩| 波多野结衣在线一区| 26uuu国产一区二区三区| 午夜精品免费在线| 一本大道av一区二区在线播放| 国产无一区二区| 黑人巨大精品欧美一区|