af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 1998 Patrick Spinler
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync */
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __WINE_TLHELP32_H
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __WINE_TLHELP32_H
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * CreateToolhelp32Snapshot
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_SNAPHEAPLIST 0x00000001
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_SNAPPROCESS 0x00000002
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_SNAPTHREAD 0x00000004
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_SNAPMODULE 0x00000008
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define TH32CS_INHERIT 0x80000000
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncHANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * thread entry list as created by CreateToolHelp32Snapshot
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagTHREADENTRY32
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD cntUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ThreadID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32OwnerProcessID;
af062818b47340eef15700d2f0211576ba3506eevboxsync LONG tpBasePri;
af062818b47340eef15700d2f0211576ba3506eevboxsync LONG tpDeltaPri;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync} THREADENTRY32, *PTHREADENTRY32, *LPTHREADENTRY32;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Process entry list as created by CreateToolHelp32Snapshot
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagPROCESSENTRY32
af062818b47340eef15700d2f0211576ba3506eevboxsync{
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD dwSize;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD cntUsage;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ProcessID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync ULONG_PTR th32DefaultHeapID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ModuleID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD cntThreads;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ParentProcessID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG pcPriClassBase;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD dwFlags;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync char szExeFile[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync} PROCESSENTRY32, *PPROCESSENTRY32, *LPPROCESSENTRY32;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagPROCESSENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync{
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD dwSize;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD cntUsage;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ProcessID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync ULONG_PTR th32DefaultHeapID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ModuleID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD cntThreads;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD th32ParentProcessID;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync LONG pcPriClassBase;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync DWORD dwFlags;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync WCHAR szExeFile[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync} PROCESSENTRY32W, *PPROCESSENTRY32W, *LPPROCESSENTRY32W;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define Process32First Process32FirstW
af062818b47340eef15700d2f0211576ba3506eevboxsync#define Process32Next Process32NextW
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PROCESSENTRY32 PROCESSENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PPROCESSENTRY32 PPROCESSENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define LPPROCESSENTRY32 LPPROCESSENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Module entry list as created by CreateToolHelp32Snapshot
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define MAX_MODULE_NAME32 255
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagMODULEENTRY32
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ModuleID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ProcessID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD GlblcntUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD ProccntUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE *modBaseAddr;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD modBaseSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync HMODULE hModule;
af062818b47340eef15700d2f0211576ba3506eevboxsync char szModule[MAX_MODULE_NAME32 + 1];
af062818b47340eef15700d2f0211576ba3506eevboxsync char szExePath[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync} MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagMODULEENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ModuleID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ProcessID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD GlblcntUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD ProccntUsage;
af062818b47340eef15700d2f0211576ba3506eevboxsync BYTE *modBaseAddr;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD modBaseSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync HMODULE hModule;
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR szModule[MAX_MODULE_NAME32 + 1];
af062818b47340eef15700d2f0211576ba3506eevboxsync WCHAR szExePath[MAX_PATH];
af062818b47340eef15700d2f0211576ba3506eevboxsync} MODULEENTRY32W, *PMODULEENTRY32W, *LPMODULEENTRY32W;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef UNICODE
af062818b47340eef15700d2f0211576ba3506eevboxsync#define Module32First Module32FirstW
af062818b47340eef15700d2f0211576ba3506eevboxsync#define Module32Next Module32NextW
af062818b47340eef15700d2f0211576ba3506eevboxsync#define MODULEENTRY32 MODULEENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define PMODULEENTRY32 PMODULEENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#define LPMODULEENTRY32 LPMODULEENTRY32W
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagHEAPLIST32
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ProcessID;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG_PTR th32HeapID;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync} HEAPLIST32, *PHEAPLIST32, *LPHEAPLIST32;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#define HF32_DEFAULT 1
af062818b47340eef15700d2f0211576ba3506eevboxsync#define HF32_SHARED 2
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,SIZE_T,SIZE_T*);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct tagHEAPENTRY32
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T dwSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync HANDLE hHandle;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG_PTR dwAddress;
af062818b47340eef15700d2f0211576ba3506eevboxsync SIZE_T dwBlockSize;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwFlags;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwLockCount;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD dwResvd;
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD th32ProcessID;
af062818b47340eef15700d2f0211576ba3506eevboxsync ULONG_PTR th32HeapID;
af062818b47340eef15700d2f0211576ba3506eevboxsync} HEAPENTRY32, *PHEAPENTRY32, *LPHEAPENTRY32;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,ULONG_PTR);
af062818b47340eef15700d2f0211576ba3506eevboxsyncBOOL WINAPI Heap32Next(LPHEAPENTRY32);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync} /* extern "C" */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __WINE_TLHELP32_H */