Code:

type

TForm1 = class(TForm)

   Button1: TButton;

   Memo1: TMemo;

   procedure Button1Click(Sender: TObject);

private

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

function enumResNamesProc(module: HMODULE; restype, resname: PChar;

list: TStrings): Integer; stdcall;

begin

if HiWord(Cardinal(resname)) <> 0 then

   list.Add('  ' + resname)

else

   list.Add(Format('  #%d', [loword(Cardinal(resname))]));

Result := 1;

end;

 

Function StockResourceType(restype: PChar): string;

const

restypenames: Array [1..22] of String =

   ( 'RT_CURSOR', //       = MakeIntResource(1);

     'RT_BITMAP', //       = MakeIntResource(2);

     'RT_ICON',   //       = MakeIntResource(3);

     'RT_MENU',   //       = MakeIntResource(4);

     'RT_DIALOG', //       = MakeIntResource(5);

     'RT_STRING', //       = MakeIntResource(6);

     'RT_FONTDIR',//       = MakeIntResource(7);

     'RT_FONT',   //       = MakeIntResource(8);

     'RT_ACCELERATOR',//   = MakeIntResource(9);

     'RT_RCDATA', //       = MakeIntResource(10);

     'RT_MESSAGETABLE',//  = MakeIntResource(11);

     // DIFFERENCE = 11;

     'RT_GROUP_CURSOR',// = MakeIntResource(DWORD(RT_CURSOR +7DIFFERENCE));

     'UNKNOWN',        // 13 not used

     'RT_GROUP_ICON'//   = MakeIntResource(DWORD(RT_ICON +DIFFERENCE));

     'UNKNOWN',        // 15 not used

     'RT_VERSION',     // = MakeIntResource(16);

     'RT_DLGINCLUDE'// = MakeIntResource(17);

     'UNKNOWN',

     'RT_PLUGPLAY',    // = MakeIntResource(19);

     'RT_VXD',         // = MakeIntResource(20);

     'RT_ANICURSOR',   // = MakeIntResource(21);

     'RT_ANIICON'     // = MakeIntResource(22);

   );

var

resid: Cardinal absolute restype;

begin

if resid in [1..22] then

   Result := restypenames[resid]

else

   Result := 'UNKNOWN';

end;

 

 

function enumResTypesProc(module: HMODULE; restype: PChar; list: TStrings): Integer; stdcall;

begin

if HiWord(Cardinal(restype)) <> 0 then

   list.Add(restype)

else

   list.Add(Format('Stock type %d: %s', [LoWord(Cardinal(restype)),

     StockResourcetype(restype)]));

EnumResourceNames(module, restype, @enumResNamesProc, Integer(list));

Result := 1;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

memo1.Clear;

if not EnumResourceTypes(hinstance, @enumResTypesProc, Integer(memo1.Lines)) then

   memo1.Lines.Add(Format('GetLastError= %8.8x', [GetLastError]))

else

   memo1.Lines.Add('Successful');

end;

 

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить