]> git.lyx.org Git - lyx.git/blob - development/Win32/vld/src/ntapi.h
Add support for glue length in parskip (#12867)
[lyx.git] / development / Win32 / vld / src / ntapi.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 //  Visual Leak Detector - NT API Definitions
4 //  Copyright (c) 2006-2009 Dan Moulding
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License, or (at your option) any later version.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 //
20 //  See COPYING.txt for the full terms of the GNU Lesser General Public License.
21 //
22 ////////////////////////////////////////////////////////////////////////////////
23
24 #pragma once
25
26 #ifndef VLDBUILD
27 #error \
28 "This header should only be included by Visual Leak Detector when building it from source. \
29 Applications should never include this header."
30 #endif
31
32 #include <windows.h>
33
34 // Return code type used by LdrLoadDll.
35 typedef LONG NTSTATUS;
36 #define   STATUS_SUCCESS 0
37
38 // Unicode string structure used by NT APIs.
39 typedef struct unicodestring_s {
40     USHORT length;    // Length of the string.
41     USHORT maxlength; // Length of the buffer.
42     PWSTR  buffer;    // The buffer containing the string.
43 } unicodestring_t;
44
45 // Function pointer types for explicit dynamic linking with functions that can't
46 // be load-time linked (no import library is available for these).
47 typedef NTSTATUS (__stdcall *LdrLoadDll_t) (LPWSTR, PDWORD, unicodestring_t *, PHANDLE);
48 typedef LPVOID (__stdcall *RtlAllocateHeap_t) (HANDLE, DWORD, SIZE_T);
49 typedef BOOL (__stdcall *RtlFreeHeap_t) (HANDLE, DWORD, LPVOID);
50 typedef LPVOID (__stdcall *RtlReAllocateHeap_t) (HANDLE, DWORD, LPVOID, SIZE_T);
51
52 // Provide forward declarations for the NT APIs for any source files that
53 // include this header.
54 extern LdrLoadDll_t        LdrLoadDll;
55 extern RtlAllocateHeap_t   RtlAllocateHeap;
56 extern RtlFreeHeap_t       RtlFreeHeap;
57 extern RtlReAllocateHeap_t RtlReAllocateHeap;