source: trunk/include/win/heap.h@ 4

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

File size: 1.6 KB
Line 
1/* $Id: heap.h,v 1.1 1999-05-24 20:19:12 ktk Exp $ */
2
3/*
4 * Win32 heap definitions
5 *
6 * Copyright 1996 Alexandre Julliard
7 */
8
9#ifndef __WINE_HEAP_H
10#define __WINE_HEAP_H
11
12#include "winbase.h"
13
14extern HANDLE SystemHeap;
15extern HANDLE SegptrHeap;
16
17extern int HEAP_IsInsideHeap( HANDLE heap, DWORD flags, LPCVOID ptr );
18extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr );
19extern LPVOID HEAP_xalloc( HANDLE heap, DWORD flags, DWORD size );
20extern LPVOID HEAP_xrealloc( HANDLE heap, DWORD flags, LPVOID lpMem, DWORD size );
21extern LPSTR HEAP_strdupA( HANDLE heap, DWORD flags, LPCSTR str );
22extern LPWSTR HEAP_strdupW( HANDLE heap, DWORD flags, LPCWSTR str );
23extern LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str );
24extern LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str );
25
26/* SEGPTR helper macros */
27
28#define SEGPTR_ALLOC(size) \
29 (HeapAlloc( SegptrHeap, 0, (size) ))
30#define SEGPTR_NEW(type) \
31 ((type *)HeapAlloc( SegptrHeap, 0, sizeof(type) ))
32#define SEGPTR_STRDUP(str) \
33 (HIWORD(str) ? HEAP_strdupA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
34#define SEGPTR_STRDUP_WtoA(str) \
35 (HIWORD(str) ? HEAP_strdupWtoA( SegptrHeap, 0, (str) ) : (LPSTR)(str))
36 /* define an inline function, a macro won't do */
37static __inline__ SEGPTR WINE_UNUSED SEGPTR_Get(LPCVOID ptr) {
38 return (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, ptr ) : (SEGPTR)ptr);
39}
40#define SEGPTR_GET(ptr) SEGPTR_Get(ptr)
41#define SEGPTR_FREE(ptr) \
42 (HIWORD(ptr) ? HeapFree( SegptrHeap, 0, (ptr) ) : 0)
43
44
45#endif /* __WINE_HEAP_H */
Note: See TracBrowser for help on using the repository browser.