/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _NMSUPP_H
#define _NMSUPP_H
#pragma pack(1)
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __cplusplus
#ifndef try
#define try __try
#endif
#ifndef except
#define except __except
#endif
#endif
#define WINDOWS_VERSION_UNKNOWN 0
#define WINDOWS_VERSION_WIN32S 1
#define WINDOWS_VERSION_WIN32C 2
#define WINDOWS_VERSION_WIN32 3
#define FRAME_MASK_ETHERNET ((BYTE) ~0x01)
#define FRAME_MASK_TOKENRING ((BYTE) ~0x80)
#define FRAME_MASK_FDDI ((BYTE) ~0x01)
typedef enum _ACCESSRIGHTS {
AccessRightsNoAccess,AccessRightsMonitoring,AccessRightsUserAccess,AccessRightsAllAccess
} ACCESSRIGHTS;
typedef ACCESSRIGHTS *PACCESSRIGHTS;
typedef LPVOID HPASSWORD;
#define HANDLE_TYPE_PASSWORD MAKE_IDENTIFIER('P','W','D','$')
typedef LPVOID HOBJECTHEAP;
typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP,LPVOID);
#pragma pack()
typedef struct _TIMER *HTIMER;
typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
extern HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc,LPVOID InstData,DWORD TimeOut);
extern VOID WINAPI BhKillTimer(HTIMER hTimer);
extern LPVOID WINAPI BhAllocSystemMemory(DWORD nBytes);
extern LPVOID WINAPI BhFreeSystemMemory(LPVOID ptr);
extern LPVOID WINAPI BhGetNetworkRequestAddress(DWORD NalRequestType);
extern DWORD WINAPI BhGetLastError(VOID);
extern DWORD WINAPI BhSetLastError(DWORD Error);
extern HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize,OBJECTPROC ObjectProc);
extern HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
extern LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
extern LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap,LPVOID ObjectMemory);
extern DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap,DWORD nObjects);
extern DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
extern VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
extern LPVOID WINAPI AllocMemory(SIZE_T size);
extern LPVOID WINAPI ReallocMemory(LPVOID ptr,SIZE_T NewSize);
extern VOID WINAPI FreeMemory(LPVOID ptr);
extern VOID WINAPI TestMemory(LPVOID ptr);
extern SIZE_T WINAPI MemorySize(LPVOID ptr);
extern HANDLE WINAPI MemoryHandle(LPBYTE ptr);
extern HPASSWORD WINAPI CreatePassword(LPSTR password);
extern VOID WINAPI DestroyPassword(HPASSWORD hPassword);
extern ACCESSRIGHTS WINAPI ValidatePassword(HPASSWORD hPassword);
extern LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression);
extern LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern,LPVOID ptr,DWORD offset,DWORD length);
extern LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
extern LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
extern LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern);
extern LPADDRESSTABLE WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE AddressTable);
extern LPADDRESS WINAPI NormalizeAddress(LPADDRESS Address);
extern LPADDRESSTABLE WINAPI NormalizeAddressTable(LPADDRESSTABLE AddressTable);
extern HANDLE WINAPI BhOpenService(LPSTR ServiceName);
extern VOID WINAPI BhCloseService(HANDLE ServiceHandle);
extern DWORD WINAPI BhStartService(HANDLE ServiceHandle);
extern DWORD WINAPI BhStopService(HANDLE ServiceHandle);
extern DWORD WINAPI BhGetWindowsVersion(VOID);
extern WINBOOL WINAPI IsDaytona(VOID);
extern VOID __cdecl dprintf(LPSTR format,...);
#ifdef __cplusplus
}
#endif
#endif