mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Add structure def for BITMAP (screenshot API)
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
typedef struct tagRECT
|
||||
{
|
||||
LONG left;
|
||||
LONG top;
|
||||
LONG right;
|
||||
LONG bottom;
|
||||
} RECT, *PRECT, *NPRECT, *LPRECT;
|
||||
|
||||
typedef struct tagRGBTRIPLE {
|
||||
BYTE rgbtBlue;
|
||||
BYTE rgbtGreen;
|
||||
BYTE rgbtRed;
|
||||
} RGBTRIPLE, *PRGBTRIPLE, *NPRGBTRIPLE, *LPRGBTRIPLE;
|
||||
|
||||
typedef struct tagBITMAPFILEHEADER {
|
||||
WORD bfType;
|
||||
DWORD bfSize;
|
||||
WORD bfReserved1;
|
||||
WORD bfReserved2;
|
||||
DWORD bfOffBits;
|
||||
} BITMAPFILEHEADER, *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
|
||||
|
||||
typedef struct tagBITMAPCOREHEADER {
|
||||
DWORD bcSize;
|
||||
WORD bcWidth;
|
||||
WORD bcHeight;
|
||||
WORD bcPlanes;
|
||||
WORD bcBitCount;
|
||||
} BITMAPCOREHEADER, *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
|
||||
|
||||
|
||||
typedef struct tagBITMAP
|
||||
{
|
||||
LONG bmType;
|
||||
LONG bmWidth;
|
||||
LONG bmHeight;
|
||||
LONG bmWidthBytes;
|
||||
WORD bmPlanes;
|
||||
WORD bmBitsPixel;
|
||||
LPVOID bmBits;
|
||||
} BITMAP, *PBITMAP, *NPBITMAP, *LPBITMAP;
|
||||
|
||||
typedef struct tagBITMAPINFOHEADER{
|
||||
DWORD biSize;
|
||||
LONG biWidth;
|
||||
LONG biHeight;
|
||||
WORD biPlanes;
|
||||
WORD biBitCount;
|
||||
DWORD biCompression;
|
||||
DWORD biSizeImage;
|
||||
LONG biXPelsPerMeter;
|
||||
LONG biYPelsPerMeter;
|
||||
DWORD biClrUsed;
|
||||
DWORD biClrImportant;
|
||||
} BITMAPINFOHEADER, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
|
||||
|
||||
typedef struct tagRGBQUAD {
|
||||
BYTE rgbBlue;
|
||||
BYTE rgbGreen;
|
||||
BYTE rgbRed;
|
||||
BYTE rgbReserved;
|
||||
} RGBQUAD;
|
||||
|
||||
typedef struct tagBITMAPINFO {
|
||||
BITMAPINFOHEADER bmiHeader;
|
||||
RGBQUAD bmiColors[1];
|
||||
} BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO;
|
||||
|
||||
typedef struct tagBITMAPCOREINFO {
|
||||
BITMAPCOREHEADER bmciHeader;
|
||||
RGBTRIPLE bmciColors[1];
|
||||
} BITMAPCOREINFO, *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
|
||||
@@ -71,6 +71,8 @@ TYPE_EQUIVALENCE = [
|
||||
('HKEY', 'HANDLE'),
|
||||
('HCATADMIN', 'HANDLE'),
|
||||
('HCATINFO', 'HANDLE'),
|
||||
('HDC', 'HANDLE'),
|
||||
('HBITMAP', 'HANDLE'),
|
||||
('SC_HANDLE', 'HANDLE'),
|
||||
('HCERTCHAINENGINE', 'HANDLE'),
|
||||
('LPHANDLE', 'POINTER(HANDLE)'),
|
||||
@@ -274,6 +276,14 @@ class StructGenerator(CtypesGenerator):
|
||||
print("<{0}> generated".format(self.outfilename))
|
||||
return ctypes_code
|
||||
|
||||
def append_input_file(self, filename):
|
||||
print("Adding file <{0}>".format(filename))
|
||||
self.parse()
|
||||
new_data = self.PARSER(open(filename).read()).parse()
|
||||
self.data[0].extend(new_data[0])
|
||||
self.data[1].extend(new_data[1])
|
||||
self.analyse(self.data)
|
||||
|
||||
class FuncGenerator(CtypesGenerator):
|
||||
PARSER = func_parser.WinFuncParser
|
||||
IMPORT_HEADER = dedent ("""
|
||||
@@ -627,6 +637,8 @@ defs_with_ntstatus.append_input_file(from_here("definitions\\wintrust_crypt_def.
|
||||
|
||||
|
||||
structs = StructGenerator(from_here("definitions\\winstruct.txt"), from_here(r"..\windows\generated_def\\winstructs.py"), dependances=[defs_with_ntstatus])
|
||||
structs.append_input_file(from_here("definitions\\display_struct.txt"))
|
||||
|
||||
functions = FuncGenerator(from_here("definitions\\winfunc.txt"), from_here(r"..\windows\generated_def\\winfuncs.py"), dependances=[structs])
|
||||
functions.append_input_file(from_here("definitions\\wintrust_crypt_func.txt"))
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@ PHANDLE = POINTER(HANDLE)
|
||||
HKEY = HANDLE
|
||||
HCATADMIN = HANDLE
|
||||
HCATINFO = HANDLE
|
||||
HDC = HANDLE
|
||||
HBITMAP = HANDLE
|
||||
SC_HANDLE = HANDLE
|
||||
HCERTCHAINENGINE = HANDLE
|
||||
LPHANDLE = POINTER(HANDLE)
|
||||
@@ -3371,3 +3373,110 @@ class _CERT_CHAIN_ENGINE_CONFIG(Structure):
|
||||
]
|
||||
CERT_CHAIN_ENGINE_CONFIG = _CERT_CHAIN_ENGINE_CONFIG
|
||||
PCERT_CHAIN_ENGINE_CONFIG = POINTER(_CERT_CHAIN_ENGINE_CONFIG)
|
||||
|
||||
class tagRECT(Structure):
|
||||
_fields_ = [
|
||||
("left", LONG),
|
||||
("top", LONG),
|
||||
("right", LONG),
|
||||
("bottom", LONG),
|
||||
]
|
||||
LPRECT = POINTER(tagRECT)
|
||||
NPRECT = POINTER(tagRECT)
|
||||
RECT = tagRECT
|
||||
PRECT = POINTER(tagRECT)
|
||||
|
||||
class tagRGBTRIPLE(Structure):
|
||||
_fields_ = [
|
||||
("rgbtBlue", BYTE),
|
||||
("rgbtGreen", BYTE),
|
||||
("rgbtRed", BYTE),
|
||||
]
|
||||
NPRGBTRIPLE = POINTER(tagRGBTRIPLE)
|
||||
LPRGBTRIPLE = POINTER(tagRGBTRIPLE)
|
||||
RGBTRIPLE = tagRGBTRIPLE
|
||||
PRGBTRIPLE = POINTER(tagRGBTRIPLE)
|
||||
|
||||
class tagBITMAPFILEHEADER(Structure):
|
||||
_fields_ = [
|
||||
("bfType", WORD),
|
||||
("bfSize", DWORD),
|
||||
("bfReserved1", WORD),
|
||||
("bfReserved2", WORD),
|
||||
("bfOffBits", DWORD),
|
||||
]
|
||||
BITMAPFILEHEADER = tagBITMAPFILEHEADER
|
||||
PBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER)
|
||||
LPBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER)
|
||||
|
||||
class tagBITMAPCOREHEADER(Structure):
|
||||
_fields_ = [
|
||||
("bcSize", DWORD),
|
||||
("bcWidth", WORD),
|
||||
("bcHeight", WORD),
|
||||
("bcPlanes", WORD),
|
||||
("bcBitCount", WORD),
|
||||
]
|
||||
LPBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER)
|
||||
PBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER)
|
||||
BITMAPCOREHEADER = tagBITMAPCOREHEADER
|
||||
|
||||
class tagBITMAP(Structure):
|
||||
_fields_ = [
|
||||
("bmType", LONG),
|
||||
("bmWidth", LONG),
|
||||
("bmHeight", LONG),
|
||||
("bmWidthBytes", LONG),
|
||||
("bmPlanes", WORD),
|
||||
("bmBitsPixel", WORD),
|
||||
("bmBits", LPVOID),
|
||||
]
|
||||
NPBITMAP = POINTER(tagBITMAP)
|
||||
LPBITMAP = POINTER(tagBITMAP)
|
||||
PBITMAP = POINTER(tagBITMAP)
|
||||
BITMAP = tagBITMAP
|
||||
|
||||
class tagBITMAPINFOHEADER(Structure):
|
||||
_fields_ = [
|
||||
("biSize", DWORD),
|
||||
("biWidth", LONG),
|
||||
("biHeight", LONG),
|
||||
("biPlanes", WORD),
|
||||
("biBitCount", WORD),
|
||||
("biCompression", DWORD),
|
||||
("biSizeImage", DWORD),
|
||||
("biXPelsPerMeter", LONG),
|
||||
("biYPelsPerMeter", LONG),
|
||||
("biClrUsed", DWORD),
|
||||
("biClrImportant", DWORD),
|
||||
]
|
||||
BITMAPINFOHEADER = tagBITMAPINFOHEADER
|
||||
PBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER)
|
||||
LPBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER)
|
||||
|
||||
class tagRGBQUAD(Structure):
|
||||
_fields_ = [
|
||||
("rgbBlue", BYTE),
|
||||
("rgbGreen", BYTE),
|
||||
("rgbRed", BYTE),
|
||||
("rgbReserved", BYTE),
|
||||
]
|
||||
RGBQUAD = tagRGBQUAD
|
||||
|
||||
class tagBITMAPINFO(Structure):
|
||||
_fields_ = [
|
||||
("bmiHeader", BITMAPINFOHEADER),
|
||||
("bmiColors", RGBQUAD * 1),
|
||||
]
|
||||
LPBITMAPINFO = POINTER(tagBITMAPINFO)
|
||||
PBITMAPINFO = POINTER(tagBITMAPINFO)
|
||||
BITMAPINFO = tagBITMAPINFO
|
||||
|
||||
class tagBITMAPCOREINFO(Structure):
|
||||
_fields_ = [
|
||||
("bmciHeader", BITMAPCOREHEADER),
|
||||
("bmciColors", RGBTRIPLE * 1),
|
||||
]
|
||||
LPBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO)
|
||||
BITMAPCOREINFO = tagBITMAPCOREINFO
|
||||
PBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO)
|
||||
|
||||
Reference in New Issue
Block a user