ReactOS 0.4.15-dev-7958-gcd0bb1a
dxg_int.h
Go to the documentation of this file.
1#ifndef _DXG_PCH_
2#define _DXG_PCH_
3
4#include <ntifs.h>
5
6/* Win32 Headers */
7#define WINBASEAPI
8
9#define DDHMG_HANDLE_LIMIT 0x200000
10#define DDHMG_HTOI(DdHandle) ((DWORD_PTR)DdHandle & (DDHMG_HANDLE_LIMIT-1))
11
12#include <windef.h>
13#include <winerror.h>
14#include <wingdi.h>
15#include <winddi.h>
16#include <ddkernel.h>
17#include <initguid.h>
18#include <ddrawi.h>
19#include <ntgdityp.h>
20#include <psfuncs.h>
21
22DEFINE_GUID(GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
23DEFINE_GUID(GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
24DEFINE_GUID(GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x00, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
25
26/* DXG treats this as opaque */
27typedef PVOID PDC;
29
30typedef struct _DD_BASEOBJECT
31{
38
40#include <drivers/directx/dxg.h>
42
43#include "tags.h"
44
45#define CapOver_DisableAccel 0x1
46#define CapOver_DisableD3DDDAccel 0x2
47#define CapOver_DisableD3DAccel 0x4
48#define CapOver_DisableOGL 0x8
49#define CapOver_DisableEscapes 0x10
50
51#define ObjType_DDLOCAL_TYPE 1
52#define ObjType_DDSURFACE_TYPE 2
53#define ObjType_DDCONTEXT_TYPE 3
54#define ObjType_DDVIDEOPORT_TYPE 4
55#define ObjType_DDMOTIONCOMP_TYPE 5
56
57typedef struct _DD_ENTRY
58{
59 union
60 {
63 };
68
69typedef struct _EDD_SURFACE_LOCAL
70{
74
75
84typedef HDEV* (APIENTRY* PFN_DxEngEnumerateHdev)(HDEV*);
118
119
120typedef struct _DXENG_FUNCTIONS
121{
166
167/* exported functions */
173
174/* Global pointers */
175extern ULONG gcSizeDdHmgr;
177extern ULONG gcMaxDdHmgr;
179extern ULONG ghFreeDdHmgr;
180extern HSEMAPHORE ghsemHmgr;
183extern VOID *gpDummyPage;
187
188/* Driver list export functions */
189DWORD NTAPI DxDxgGenericThunk(ULONG_PTR ulIndex, ULONG_PTR ulHandle, SIZE_T *pdwSizeOfPtr1, PVOID pvPtr1, SIZE_T *pdwSizeOfPtr2, PVOID pvPtr2);
190DWORD NTAPI DxDdIoctl(ULONG ulIoctl, PVOID pBuffer, ULONG ulBufferSize);
194BOOL NTAPI DxDdQueryDirectDrawObject(HANDLE DdHandle, DD_HALINFO* pDdHalInfo, DWORD* pCallBackFlags, LPD3DNTHAL_CALLBACKS pd3dNtHalCallbacks,
195 LPD3DNTHAL_GLOBALDRIVERDATA pd3dNtGlobalDriverData, PDD_D3DBUFCALLBACKS pd3dBufCallbacks, LPDDSURFACEDESC pTextureFormats,
196 DWORD* p8, VIDEOMEMORY* p9, DWORD* pdwNumFourCC, DWORD* pdwFourCC);
200DWORD NTAPI DxDdCreateD3DBuffer(HANDLE hDirectDrawLocal, PEDD_SURFACE pDdSurfList, DDSURFACEDESC2 *a3, DD_SURFACE_GLOBAL *pDdSurfGlob, DD_SURFACE_LOCAL *pDdSurfLoc,
201 DD_SURFACE_MORE *pDdSurfMore, DD_CREATESURFACEDATA *pDdCreateSurfaceData, PVOID Address);
202DWORD NTAPI DxDdLock(HANDLE hSurface, PDD_LOCKDATA puLockData, HDC hdcClip);
203DWORD NTAPI DxDdUnlock(HANDLE hSurface, PDD_UNLOCKDATA puUnlockData);
204HANDLE NTAPI DxDdCreateSurfaceObject(HANDLE hDirectDrawLocal, HANDLE hSurface, PDD_SURFACE_LOCAL puSurfaceLocal, PDD_SURFACE_MORE puSurfaceMore, PDD_SURFACE_GLOBAL puSurfaceGlobal, BOOL bComplete);
205
206
207/* Internal functions */
212HANDLE FASTCALL DdHmgAlloc(ULONG objSize, CHAR objType, BOOLEAN objLock);
214 PDD_SURFACE_GLOBAL pDdSurfGlob, PDD_SURFACE_LOCAL pDdSurfLoc, PDD_SURFACE_MORE pDdSurfMore);
215
216#endif /* _DXG_PCH_ */
static HDC hDC
Definition: 3dtext.c:33
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
DWORD_PTR HSEMAPHORE
Definition: axcore.idl:60
LONG NTSTATUS
Definition: precomp.h:26
#define APIENTRY
Definition: api.h:79
DRIVER_INITIALIZE DriverEntry
Definition: condrv.c:21
enum _DXEGSHDEVDATA DXEGSHDEVDATA
DWORD(APIENTRY * PFN_DxEngUploadPaletteEntryToSurface)(DWORD, DWORD, DWORD, DWORD)
Definition: dxg_int.h:111
DWORD(APIENTRY * PFN_DxEngAltLockSurface)(DWORD)
Definition: dxg_int.h:110
PEPROCESS gpepSession
Definition: main.c:17
DWORD(APIENTRY * PFN_DxEngSyncPaletteTableWithDevice)(DWORD, DWORD)
Definition: dxg_int.h:114
BOOLEAN(APIENTRY * PFN_DxEngSetHdevData)(HDEV, DXEGSHDEVDATA, DWORD_PTR)
Definition: dxg_int.h:96
DWORD(APIENTRY * PFN_DxEngMarkSurfaceAsDirectDraw)(DWORD, DWORD)
Definition: dxg_int.h:112
HANDLE FASTCALL DdHmgAlloc(ULONG objSize, CHAR objType, BOOLEAN objLock)
Definition: ddhmg.c:340
DWORD NTAPI DxDdUnlock(HANDLE hSurface, PDD_UNLOCKDATA puUnlockData)
Definition: ddsurf.c:96
BOOL(APIENTRY * PFN_DxEngSetDCOwner)(HGDIOBJ, DWORD)
Definition: dxg_int.h:101
DWORD(APIENTRY * PFN_DxEngLoadImage)(DWORD, DWORD)
Definition: dxg_int.h:117
BOOLEAN(APIENTRY * PFN_DxEngRedrawDesktop)(VOID)
Definition: dxg_int.h:78
HANDLE NTAPI DxDdCreateSurfaceObject(HANDLE hDirectDrawLocal, HANDLE hSurface, PDD_SURFACE_LOCAL puSurfaceLocal, PDD_SURFACE_MORE puSurfaceMore, PDD_SURFACE_GLOBAL puSurfaceGlobal, BOOL bComplete)
Definition: ddraw.c:647
BOOLEAN(APIENTRY * PFN_DxEngCleanDC)(HDC hdc)
Definition: dxg_int.h:100
DWORD(APIENTRY * PFN_DxEngGetRedirectionBitmap)(DWORD)
Definition: dxg_int.h:116
DWORD NTAPI DxDdCreateD3DBuffer(HANDLE hDirectDrawLocal, PEDD_SURFACE pDdSurfList, DDSURFACEDESC2 *a3, DD_SURFACE_GLOBAL *pDdSurfGlob, DD_SURFACE_LOCAL *pDdSurfLoc, DD_SURFACE_MORE *pDdSurfMore, DD_CREATESURFACEDATA *pDdCreateSurfaceData, PVOID Address)
Definition: d3d.c:114
NTSTATUS APIENTRY DxDdCleanupDxGraphics(VOID)
Definition: main.c:118
PVOID PW32THREAD
Definition: dxg_int.h:28
struct _DXENG_FUNCTIONS * PDXENG_FUNCTIONS
PLARGE_INTEGER gpLockShortDelay
Definition: main.c:18
BOOL FASTCALL DdHmgDestroy(VOID)
Definition: ddhmg.c:95
BOOLEAN(APIENTRY * PFN_DxEngSetDeviceGammaRamp)(HDEV, PGAMMARAMP, BOOL)
Definition: dxg_int.h:91
BOOL NTAPI DxDdEnableDirectDraw(HANDLE hDev, BOOL arg2)
Definition: ddraw.c:504
DWORD NTAPI DxDdReenableDirectDrawObject(HANDLE DdHandle, PVOID p2)
Definition: ddraw.c:541
BOOL FASTCALL DdHmgCreate(VOID)
Definition: ddhmg.c:49
BOOLEAN(APIENTRY * PFN_DxEngSetDCState)(HDC, DWORD, DWORD)
Definition: dxg_int.h:104
struct _DD_ENTRY * PDD_ENTRY
PDD_ENTRY gpentDdHmgr
Definition: ddhmg.c:16
BOOLEAN(APIENTRY * PFN_DxEngNUIsTermSrv)(VOID)
Definition: dxg_int.h:76
ULONG(APIENTRY * PFN_DxEngDispUniq)(VOID)
Definition: dxg_int.h:79
PVOID FASTCALL DdHmgLock(HANDLE DdHandle, UCHAR ObjectType, BOOLEAN LockOwned)
Definition: ddhmg.c:147
DWORD(APIENTRY * PFN_DxEngSpSpritesVisible)(DWORD)
Definition: dxg_int.h:94
DWORD(APIENTRY * PFN_DxEngSetPaletteState)(DWORD, DWORD, DWORD)
Definition: dxg_int.h:115
struct _DD_ENTRY DD_ENTRY
DWORD NTAPI DxDdCanCreateD3DBuffer(HANDLE DdHandle, PDD_CANCREATESURFACEDATA SurfaceData)
Definition: d3d.c:14
BOOLEAN(APIENTRY * PFN_DxEngDeleteDC)(HDC, BOOL)
Definition: dxg_int.h:99
BOOLEAN(APIENTRY * PFN_DxEngUnreferenceHdev)(HDEV)
Definition: dxg_int.h:89
struct _DD_BASEOBJECT DD_BASEOBJECT
DWORD(APIENTRY * PFN_DxEngDeleteSurface)(DWORD)
Definition: dxg_int.h:108
BOOL NTAPI DxDdUnlockDirectDrawSurface(PDD_SURFACE_LOCAL pSurface)
Definition: eng.c:31
struct _DD_BASEOBJECT * PDD_BASEOBJECT
DWORD NTAPI DxDdIoctl(ULONG ulIoctl, PVOID pBuffer, ULONG ulBufferSize)
Definition: historic.c:82
DWORD_PTR(APIENTRY * PFN_DxEngGetHdevData)(HDEV, DXEGSHDEVDATA)
Definition: dxg_int.h:95
DXENG_FUNCTIONS gpEngFuncs
Definition: main.c:20
PVOID PDC
Definition: dxg_int.h:27
DWORD NTAPI DxDdCreateDirectDrawObject(HDC hDC)
Definition: ddraw.c:258
PDD_SURFACE_LOCAL NTAPI DxDdLockDirectDrawSurface(HANDLE hDdSurface)
Definition: eng.c:15
PEDD_SURFACE NTAPI intDdCreateNewSurfaceObject(PEDD_DIRECTDRAW_LOCAL peDdL, HANDLE hDirectDrawLocal, PDD_SURFACE_GLOBAL pDdSurfGlob, PDD_SURFACE_LOCAL pDdSurfLoc, PDD_SURFACE_MORE pDdSurfMore)
Definition: ddraw.c:588
NTSTATUS NTAPI GsDriverEntry(IN PVOID Context1, IN PVOID Context2)
struct _DXENG_FUNCTIONS DXENG_FUNCTIONS
BOOLEAN(APIENTRY * PFN_DxEngUnlockDC)(PDC)
Definition: dxg_int.h:103
DWORD(APIENTRY * PFN_DxEngSetBitmapOwner)(DWORD, DWORD)
Definition: dxg_int.h:107
DWORD NTAPI DxDdCanCreateSurface(HANDLE DdHandle, PDD_CANCREATESURFACEDATA SurfaceData)
Definition: dd.c:13
ULONG gcMaxDdHmgr
Definition: ddhmg.c:18
BOOLEAN(APIENTRY * PFN_DxEngUnlockHdev)(HDEV)
Definition: dxg_int.h:86
DWORD(APIENTRY * PFN_DxEngSpTearDownSprites)(DWORD, DWORD, DWORD)
Definition: dxg_int.h:92
PDC(APIENTRY * PFN_DxEngLockDC)(HDC)
Definition: dxg_int.h:102
DWORD(APIENTRY * PFN_DxEngScreenAccessCheck)(VOID)
Definition: dxg_int.h:77
BOOL NTAPI DxDdQueryDirectDrawObject(HANDLE DdHandle, DD_HALINFO *pDdHalInfo, DWORD *pCallBackFlags, LPD3DNTHAL_CALLBACKS pd3dNtHalCallbacks, LPD3DNTHAL_GLOBALDRIVERDATA pd3dNtGlobalDriverData, PDD_D3DBUFCALLBACKS pd3dBufCallbacks, LPDDSURFACEDESC pTextureFormats, DWORD *p8, VIDEOMEMORY *p9, DWORD *pdwNumFourCC, DWORD *pdwFourCC)
Definition: ddraw.c:424
ULONG ghFreeDdHmgr
Definition: ddhmg.c:22
ULONG(APIENTRY * PFN_DxEngVisRgnUniq)(VOID)
Definition: dxg_int.h:81
struct _EDD_SURFACE_LOCAL EDD_SURFACE_LOCAL
LONG gcDummyPageRefCnt
Definition: main.c:14
PDD_ENTRY gpentDdHmgrLast
Definition: ddhmg.c:19
DWORD NTAPI DxDdLock(HANDLE hSurface, PDD_LOCKDATA puLockData, HDC hdcClip)
Definition: ddsurf.c:36
HDEV *(APIENTRY * PFN_DxEngEnumerateHdev)(HDEV *)
Definition: dxg_int.h:84
BOOLEAN(APIENTRY * PFN_DxEngLockHdev)(HDEV)
Definition: dxg_int.h:85
ULONG gcSizeDdHmgr
Definition: ddhmg.c:15
DWORD NTAPI DxDdGetDriverInfo(HANDLE DdHandle, PDD_GETDRIVERINFODATA drvInfoData)
Definition: ddraw.c:309
DWORD(APIENTRY * PFN_DxEngGetSurfaceData)(DWORD, DWORD)
Definition: dxg_int.h:109
BOOL FASTCALL VerifyObjectOwner(PDD_ENTRY pEntry)
Definition: ddhmg.c:27
BOOLEAN(APIENTRY * PFN_DxEngReferenceHdev)(HDEV)
Definition: dxg_int.h:88
BOOLEAN(APIENTRY * PFN_DxEngLockShareSem)(VOID)
Definition: dxg_int.h:82
HSEMAPHORE ghsemDummyPage
Definition: main.c:15
struct _EDD_SURFACE_LOCAL * PEDD_SURFACE_LOCAL
HDC(APIENTRY * PFN_DxEngGetDesktopDC)(ULONG, BOOL, BOOL)
Definition: dxg_int.h:98
DWORD NTAPI DxDxgGenericThunk(ULONG_PTR ulIndex, ULONG_PTR ulHandle, SIZE_T *pdwSizeOfPtr1, PVOID pvPtr1, SIZE_T *pdwSizeOfPtr2, PVOID pvPtr2)
Definition: historic.c:47
HDC(APIENTRY * PFN_DxEngCreateMemoryDC)(HDEV)
Definition: dxg_int.h:97
BOOLEAN(APIENTRY * PFN_DxEngUnlockShareSem)(VOID)
Definition: dxg_int.h:83
BOOLEAN(APIENTRY * PFN_DxEngIncDispUniq)(VOID)
Definition: dxg_int.h:80
DWORD_PTR(APIENTRY * PFN_DxEngGetDCState)(HDC, DWORD)
Definition: dxg_int.h:105
HSEMAPHORE ghsemHmgr
Definition: ddhmg.c:23
VOID * gpDummyPage
Definition: main.c:16
DWORD(APIENTRY * PFN_DxEngSpUnTearDownSprites)(DWORD, DWORD, DWORD)
Definition: dxg_int.h:93
BOOL(APIENTRY * PFN_DxEngGetDeviceGammaRamp)(HDEV, PGAMMARAMP)
Definition: dxg_int.h:90
BOOLEAN(APIENTRY * PFN_DxEngIsHdevLockedByCurrentThread)(HDEV)
Definition: dxg_int.h:87
DWORD(APIENTRY * PFN_DxEngSelectBitmap)(DWORD, DWORD)
Definition: dxg_int.h:106
DWORD(APIENTRY * PFN_DxEngSelectPaletteToSurface)(DWORD, DWORD)
Definition: dxg_int.h:113
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
PLIST_ENTRY pEntry
Definition: fxioqueue.cpp:4484
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: glext.h:9514
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
static const struct update_accum a3
Definition: msg.c:600
ObjectType
Definition: metafile.c:81
#define BOOL
Definition: nt_native.h:43
#define FASTCALL
Definition: nt_native.h:50
#define DWORD
Definition: nt_native.h:44
#define BOOLEAN
Definition: pedump.c:73
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
PVOID pBuffer
USHORT cExclusiveLock
Definition: dxg_int.h:34
PW32THREAD Tid
Definition: dxg_int.h:36
HGDIOBJ hHmgr
Definition: dxg_int.h:32
ULONG ulShareCount
Definition: dxg_int.h:33
USHORT BaseFlags
Definition: dxg_int.h:35
Definition: dxg_int.h:58
PDD_BASEOBJECT pobj
Definition: dxg_int.h:61
USHORT FullUnique
Definition: dxg_int.h:65
ULONG NextFree
Definition: dxg_int.h:62
UCHAR Objt
Definition: dxg_int.h:66
HANDLE Pid
Definition: dxg_int.h:64
PFN_DxEngGetHdevData DxEngGetHdevData
Definition: dxg_int.h:142
PFN_DxEngSpUnTearDownSprites DxEngSpUnTearDownSprites
Definition: dxg_int.h:140
PFN_DxEngSelectBitmap DxEngSelectBitmap
Definition: dxg_int.h:153
PFN_DxEngLockDC DxEngLockDC
Definition: dxg_int.h:149
PFN_DxEngSetBitmapOwner DxEngSetBitmapOwner
Definition: dxg_int.h:154
PFN_DxEngUnlockShareSem DxEngUnlockShareSem
Definition: dxg_int.h:130
PFN_DxEngRedrawDesktop DxEngRedrawDesktop
Definition: dxg_int.h:125
PFN_DxEngSetDeviceGammaRamp DxEngSetDeviceGammaRamp
Definition: dxg_int.h:138
PFN_DxEngVisRgnUniq DxEngVisRgnUniq
Definition: dxg_int.h:128
PFN_DxEngUnreferenceHdev DxEngUnreferenceHdev
Definition: dxg_int.h:136
PFN_DxEngSyncPaletteTableWithDevice DxEngSyncPaletteTableWithDevice
Definition: dxg_int.h:161
PFN_DxEngCreateMemoryDC DxEngCreateMemoryDC
Definition: dxg_int.h:144
PFN_DxEngUnlockHdev DxEngUnlockHdev
Definition: dxg_int.h:133
PFN_DxEngIsHdevLockedByCurrentThread DxEngIsHdevLockedByCurrentThread
Definition: dxg_int.h:134
PFN_DxEngLoadImage DxEngLoadImage
Definition: dxg_int.h:164
PFN_DxEngDispUniq DxEngDispUniq
Definition: dxg_int.h:126
PFN_DxEngSetPaletteState DxEngSetPaletteState
Definition: dxg_int.h:162
PFN_DxEngEnumerateHdev DxEngEnumerateHdev
Definition: dxg_int.h:131
PFN_DxEngGetDeviceGammaRamp DxEngGetDeviceGammaRamp
Definition: dxg_int.h:137
PFN_DxEngDeleteDC DxEngDeleteDC
Definition: dxg_int.h:146
PFN_DxEngSetHdevData DxEngSetHdevData
Definition: dxg_int.h:143
PVOID Reserved
Definition: dxg_int.h:122
PFN_DxEngUploadPaletteEntryToSurface DxEngUploadPaletteEntryToSurface
Definition: dxg_int.h:158
PFN_DxEngNUIsTermSrv DxEngNUIsTermSrv
Definition: dxg_int.h:123
PFN_DxEngGetDesktopDC DxEngGetDesktopDC
Definition: dxg_int.h:145
PFN_DxEngSetDCState DxEngSetDCState
Definition: dxg_int.h:151
PFN_DxEngGetDCState DxEngGetDCState
Definition: dxg_int.h:152
PFN_DxEngSpSpritesVisible DxEngSpSpritesVisible
Definition: dxg_int.h:141
PFN_DxEngGetSurfaceData DxEngGetSurfaceData
Definition: dxg_int.h:156
PFN_DxEngGetRedirectionBitmap DxEngGetRedirectionBitmap
Definition: dxg_int.h:163
PFN_DxEngScreenAccessCheck DxEngScreenAccessCheck
Definition: dxg_int.h:124
PFN_DxEngDeleteSurface DxEngDeleteSurface
Definition: dxg_int.h:155
PFN_DxEngCleanDC DxEngCleanDC
Definition: dxg_int.h:147
PFN_DxEngIncDispUniq DxEngIncDispUniq
Definition: dxg_int.h:127
PFN_DxEngAltLockSurface DxEngAltLockSurface
Definition: dxg_int.h:157
PFN_DxEngSelectPaletteToSurface DxEngSelectPaletteToSurface
Definition: dxg_int.h:160
PFN_DxEngReferenceHdev DxEngReferenceHdev
Definition: dxg_int.h:135
PFN_DxEngLockShareSem DxEngLockShareSem
Definition: dxg_int.h:129
PFN_DxEngSpTearDownSprites DxEngSpTearDownSprites
Definition: dxg_int.h:139
PFN_DxEngUnlockDC DxEngUnlockDC
Definition: dxg_int.h:150
PFN_DxEngSetDCOwner DxEngSetDCOwner
Definition: dxg_int.h:148
PFN_DxEngLockHdev DxEngLockHdev
Definition: dxg_int.h:132
PFN_DxEngMarkSurfaceAsDirectDraw DxEngMarkSurfaceAsDirectDraw
Definition: dxg_int.h:159
DD_SURFACE_LOCAL Surfacelcl
Definition: dxg_int.h:72
DD_BASEOBJECT Object
Definition: dxg_int.h:71
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT Context1
Definition: tdikrnl.h:1095
_In_ PNET_PNP_EVENT _In_ PTDI_PNP_CONTEXT _In_ PTDI_PNP_CONTEXT Context2
Definition: tdikrnl.h:1096
#define DWORD_PTR
Definition: treelist.c:76
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
struct _GAMMARAMP * PGAMMARAMP
_In_ DD_SURFACE_LOCAL * pSurface
Definition: winddi.h:3481
_Out_ DD_HALINFO _Out_ DWORD _Out_ VIDEOMEMORY _Out_ DWORD _Out_ DWORD * pdwFourCC
Definition: winddi.h:4230
void * HGDIOBJ
Definition: windef.h:252
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175