diff fuhtark_test/include/winapi/tlhelp32.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/tlhelp32.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,168 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_TOOLHELP32
+#define _INC_TOOLHELP32
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_MODULE_NAME32 255
+
+  HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID);
+
+#define TH32CS_SNAPHEAPLIST 0x00000001
+#define TH32CS_SNAPPROCESS 0x00000002
+#define TH32CS_SNAPTHREAD 0x00000004
+#define TH32CS_SNAPMODULE 0x00000008
+#define TH32CS_SNAPMODULE32 0x00000010
+#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
+#define TH32CS_INHERIT 0x80000000
+
+  typedef struct tagHEAPLIST32 {
+    SIZE_T dwSize;
+    DWORD th32ProcessID;
+    ULONG_PTR th32HeapID;
+    DWORD dwFlags;
+  } HEAPLIST32;
+  typedef HEAPLIST32 *PHEAPLIST32;
+  typedef HEAPLIST32 *LPHEAPLIST32;
+
+#define HF32_DEFAULT 1
+#define HF32_SHARED 2
+
+  WINBOOL WINAPI Heap32ListFirst(HANDLE hSnapshot,LPHEAPLIST32 lphl);
+  WINBOOL WINAPI Heap32ListNext(HANDLE hSnapshot,LPHEAPLIST32 lphl);
+
+  typedef struct tagHEAPENTRY32 {
+    SIZE_T dwSize;
+    HANDLE hHandle;
+    ULONG_PTR dwAddress;
+    SIZE_T dwBlockSize;
+    DWORD dwFlags;
+    DWORD dwLockCount;
+    DWORD dwResvd;
+    DWORD th32ProcessID;
+    ULONG_PTR th32HeapID;
+  } HEAPENTRY32;
+  typedef HEAPENTRY32 *PHEAPENTRY32;
+  typedef HEAPENTRY32 *LPHEAPENTRY32;
+
+#define LF32_FIXED 0x00000001
+#define LF32_FREE 0x00000002
+#define LF32_MOVEABLE 0x00000004
+
+  WINBOOL WINAPI Heap32First(LPHEAPENTRY32 lphe,DWORD th32ProcessID,ULONG_PTR th32HeapID);
+  WINBOOL WINAPI Heap32Next(LPHEAPENTRY32 lphe);
+  WINBOOL WINAPI Toolhelp32ReadProcessMemory(DWORD th32ProcessID,LPCVOID lpBaseAddress,LPVOID lpBuffer,SIZE_T cbRead,SIZE_T *lpNumberOfBytesRead);
+
+  typedef struct tagPROCESSENTRY32W {
+    DWORD dwSize;
+    DWORD cntUsage;
+    DWORD th32ProcessID;
+    ULONG_PTR th32DefaultHeapID;
+    DWORD th32ModuleID;
+    DWORD cntThreads;
+    DWORD th32ParentProcessID;
+    LONG pcPriClassBase;
+    DWORD dwFlags;
+    WCHAR szExeFile[MAX_PATH];
+  } PROCESSENTRY32W;
+  typedef PROCESSENTRY32W *PPROCESSENTRY32W;
+  typedef PROCESSENTRY32W *LPPROCESSENTRY32W;
+
+  WINBOOL WINAPI Process32FirstW(HANDLE hSnapshot,LPPROCESSENTRY32W lppe);
+  WINBOOL WINAPI Process32NextW(HANDLE hSnapshot,LPPROCESSENTRY32W lppe);
+
+  typedef struct tagPROCESSENTRY32 {
+    DWORD dwSize;
+    DWORD cntUsage;
+    DWORD th32ProcessID;
+    ULONG_PTR th32DefaultHeapID;
+    DWORD th32ModuleID;
+    DWORD cntThreads;
+    DWORD th32ParentProcessID;
+    LONG pcPriClassBase;
+    DWORD dwFlags;
+    CHAR szExeFile[MAX_PATH];
+  } PROCESSENTRY32;
+  typedef PROCESSENTRY32 *PPROCESSENTRY32;
+  typedef PROCESSENTRY32 *LPPROCESSENTRY32;
+
+  WINBOOL WINAPI Process32First(HANDLE hSnapshot,LPPROCESSENTRY32 lppe);
+  WINBOOL WINAPI Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe);
+
+#ifdef UNICODE
+#define Process32First Process32FirstW
+#define Process32Next Process32NextW
+#define PROCESSENTRY32 PROCESSENTRY32W
+#define PPROCESSENTRY32 PPROCESSENTRY32W
+#define LPPROCESSENTRY32 LPPROCESSENTRY32W
+#endif
+
+  typedef struct tagTHREADENTRY32 {
+    DWORD dwSize;
+    DWORD cntUsage;
+    DWORD th32ThreadID;
+    DWORD th32OwnerProcessID;
+    LONG tpBasePri;
+    LONG tpDeltaPri;
+    DWORD dwFlags;
+  } THREADENTRY32;
+  typedef THREADENTRY32 *PTHREADENTRY32;
+  typedef THREADENTRY32 *LPTHREADENTRY32;
+
+  WINBOOL WINAPI Thread32First(HANDLE hSnapshot,LPTHREADENTRY32 lpte);
+  WINBOOL WINAPI Thread32Next(HANDLE hSnapshot,LPTHREADENTRY32 lpte);
+
+  typedef struct tagMODULEENTRY32W {
+    DWORD dwSize;
+    DWORD th32ModuleID;
+    DWORD th32ProcessID;
+    DWORD GlblcntUsage;
+    DWORD ProccntUsage;
+    BYTE *modBaseAddr;
+    DWORD modBaseSize;
+    HMODULE hModule;
+    WCHAR szModule[MAX_MODULE_NAME32 + 1];
+    WCHAR szExePath[MAX_PATH];
+  } MODULEENTRY32W;
+  typedef MODULEENTRY32W *PMODULEENTRY32W;
+  typedef MODULEENTRY32W *LPMODULEENTRY32W;
+
+  WINBOOL WINAPI Module32FirstW(HANDLE hSnapshot,LPMODULEENTRY32W lpme);
+  WINBOOL WINAPI Module32NextW(HANDLE hSnapshot,LPMODULEENTRY32W lpme);
+
+  typedef struct tagMODULEENTRY32 {
+    DWORD dwSize;
+    DWORD th32ModuleID;
+    DWORD th32ProcessID;
+    DWORD GlblcntUsage;
+    DWORD ProccntUsage;
+    BYTE *modBaseAddr;
+    DWORD modBaseSize;
+    HMODULE hModule;
+    char szModule[MAX_MODULE_NAME32 + 1];
+    char szExePath[MAX_PATH];
+  } MODULEENTRY32;
+  typedef MODULEENTRY32 *PMODULEENTRY32;
+  typedef MODULEENTRY32 *LPMODULEENTRY32;
+
+  WINBOOL WINAPI Module32First(HANDLE hSnapshot,LPMODULEENTRY32 lpme);
+  WINBOOL WINAPI Module32Next(HANDLE hSnapshot,LPMODULEENTRY32 lpme);
+
+#ifdef UNICODE
+#define Module32First Module32FirstW
+#define Module32Next Module32NextW
+#define MODULEENTRY32 MODULEENTRY32W
+#define PMODULEENTRY32 PMODULEENTRY32W
+#define LPMODULEENTRY32 LPMODULEENTRY32W
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif