EnglishРусский  

   ..

   dll2bin.g

   ico.g

   linker.g

   res.g

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Ads

Installer and installation software
Commercial and Freeware installers.

 1 /******************************************************************************
 2 *
 3 * Copyright (C) 2008, The Gentee Group. All rights reserved. 
 4 * This file is part of the Gentee open source project - http://www.gentee.com. 
 5 * 
 6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT"). 
 7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS 
 8 * ACCEPTANCE OF THE AGREEMENT.
 9 *
10 * Author: Alexey Krivonogov ( gentee )
11 *
12 ******************************************************************************/
13 
14 type iBITMAPINFOHEADER{
15   uint   biSize 
16   uint   biWidth 
17   uint   biHeight 
18   ushort biPlanes 
19   ushort biBitCount
20   uint   biCompression
21   uint   biSizeImage
22   uint   biXPelsPerMeter
23   uint   biYPelsPerMeter 
24   uint   biClrUsed 
25   uint   biClrImportant
26 } 
27 
28 type iICONDIRENTRY
29 {
30 	ubyte	   bWidth                // Width of the image
31 	ubyte  	bHeight               // Height of the image (times 2)
32 	ubyte  	bColorCount           // Number of colors in image (0 if >=8bpp)
33 	ubyte  	bReserved             // Reserved
34 	ushort	wPlanes               // Color Planes
35 	ushort	wBitCount             // Bits per pixel
36 	uint  	dwBytesInRes          // how many bytes in this resource?
37 	uint  	dwImageOffset         // where in the file is this image
38 }
39 
40 type iICONDIR
41 {
42 	ushort			idReserved   // Reserved
43 	ushort			idType       // resource type (1 for icons)
44 	ushort			idCount      // how many images?
45 }
46 
47 type iconinfo
48 {
49    iICONDIRENTRY  icondir
50    buf           data
51 }
52 
53 func uint geticoninfo( str iconame, arr result of iconinfo )
54 {
55    buf  input
56    uint dir i cur
57       
58    result.clear()
59    input.read( iconame )
60    if !*input : return 0
61    dir as input.ptr()->iICONDIR
62    cur = input.ptr() + sizeof( iICONDIR )
63    
64    fornum i, dir.idCount
65    {
66       uint bi
67       
68       result.expand( 1 )
69       mcopy( &result[i].icondir, cur, sizeof( iICONDIRENTRY ))
70       cur += sizeof( iICONDIRENTRY )
71       result[i].data.copy( input.ptr() + result[i].icondir.dwImageOffset, 
72                            result[i].icondir.dwBytesInRes )
73       bi as result[i].data.ptr()->iBITMAPINFOHEADER
74       
75       result[i].icondir.wPlanes = bi.biPlanes 
76       result[i].icondir.wBitCount = bi.biBitCount
77       result[i].icondir.bColorCount = bi.biClrUsed 
78    }
79    return 1
80 }
81 
82