mirror of
https://github.com/reactos/reactos.git
synced 2025-07-28 12:01:55 +00:00
Delete all Trailing spaces in code.
svn path=/trunk/; revision=29688
This commit is contained in:
parent
dd02e006bb
commit
622c29bffb
161 changed files with 1944 additions and 1944 deletions
|
@ -7,18 +7,18 @@
|
|||
|
||||
/* Black Box program for D3DParseUnknownCommand in ddraw.dll
|
||||
*
|
||||
* This program scaning all return valu that D3DParseUnknownCommand have in ddraw.dll
|
||||
* This command is not 100% document in MSDN so I using ddk kit doc and WinCE document
|
||||
* and ms ddk / ms sdk to figout the basic. and MSDN was unclare what this command support for
|
||||
* This program scaning all return valu that D3DParseUnknownCommand have in ddraw.dll
|
||||
* This command is not 100% document in MSDN so I using ddk kit doc and WinCE document
|
||||
* and ms ddk / ms sdk to figout the basic. and MSDN was unclare what this command support for
|
||||
* D3DHAL_DP2COMMAND dp2command->bCommand so I wrote this small scanner
|
||||
*
|
||||
* it will show D3DParseUnknownCommand dp2command->bCommand support follow command
|
||||
* command hex dec
|
||||
* command hex dec
|
||||
* D3DDP2OP_VIEWPORTINFO (aka 0x1c) 28
|
||||
* D3DDP2OP_WINFO (aka 0x1d) 29
|
||||
* Unknown (aka 0x0d) 13
|
||||
*
|
||||
* no doc in msdn about command 13 (dec) I will exaime it later
|
||||
* no doc in msdn about command 13 (dec) I will exaime it later
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -39,11 +39,11 @@ VOID BuildReturnCode(DWORD * ReturnCode)
|
|||
INT t;
|
||||
D3DHAL_DP2COMMAND dp2command;
|
||||
DWORD lplpvReturnedCommand[2];
|
||||
|
||||
|
||||
for (t=0;t<256;t++)
|
||||
{
|
||||
dp2command.bCommand = t;
|
||||
ReturnCode[t] = D3DParseUnknownCommand ( (LPVOID) &dp2command, (LPVOID *) lplpvReturnedCommand) ;
|
||||
ReturnCode[t] = D3DParseUnknownCommand ( (LPVOID) &dp2command, (LPVOID *) lplpvReturnedCommand) ;
|
||||
printf("D3DParseUnknownCommand return code = %x command %d \n", ReturnCode[t], t);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
|
||||
// TODO:
|
||||
//
|
||||
//
|
||||
// - free memory
|
||||
// - Check if we ran out of memory (HeapAlloc == NULL)
|
||||
HDC hdc;
|
||||
|
@ -67,7 +67,7 @@ typedef struct _DD_MISCELLANEOUSCALLBACKS {
|
|||
} DD_MISCELLANEOUSCALLBACKS;
|
||||
|
||||
|
||||
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
||||
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
||||
LPSTR lpCmdLine, int nCmdShow)
|
||||
{
|
||||
/* get the functions we need */
|
||||
|
@ -84,13 +84,13 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
const UINT bmiSize = sizeof(BITMAPINFOHEADER) + 0x10;
|
||||
UCHAR *pbmiData;
|
||||
BITMAPINFO *pbmi;
|
||||
|
||||
|
||||
DWORD *pMasks;
|
||||
//BOOL newmode = FALSE;
|
||||
//DWORD Status; /* for create surface */
|
||||
UINT i;
|
||||
UINT j;
|
||||
|
||||
|
||||
|
||||
printf("This apps showing how to start up directx draw/d3d interface and some other as well\n");
|
||||
printf("This code have been releae to some close applactons with my premtions, if any company\n");
|
||||
|
@ -104,17 +104,17 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
printf("and a overlay sufrace and blt to the primary surface\n");
|
||||
|
||||
|
||||
/*
|
||||
Get and Create mode info
|
||||
/*
|
||||
Get and Create mode info
|
||||
*/
|
||||
mcModeInfos = 1;
|
||||
mpModeInfos = (DDHALMODEINFO*)HeapAlloc(GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
mcModeInfos * sizeof(DDHALMODEINFO));
|
||||
|
||||
mpModeInfos = (DDHALMODEINFO*)HeapAlloc(GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
mcModeInfos * sizeof(DDHALMODEINFO));
|
||||
|
||||
if (mpModeInfos == NULL)
|
||||
{
|
||||
printf("Fail to alloc mpModeInfos\n");
|
||||
printf("Fail to alloc mpModeInfos\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
@ -128,28 +128,28 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mpModeInfos[0].wRefreshRate = (WORD)devmode.dmDisplayFrequency;
|
||||
|
||||
/*
|
||||
Setup HDC and mDDrawGlobal right
|
||||
*/
|
||||
hdc = CreateDCW(L"DISPLAY",L"DISPLAY",NULL,NULL);
|
||||
Setup HDC and mDDrawGlobal right
|
||||
*/
|
||||
hdc = CreateDCW(L"DISPLAY",L"DISPLAY",NULL,NULL);
|
||||
|
||||
if (hdc == NULL)
|
||||
{
|
||||
printf("Fail to create HDC\n");
|
||||
printf("Fail to create HDC\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
Dectect RGB bit mask
|
||||
*/
|
||||
hbmp = CreateCompatibleBitmap(hdc, 1, 1);
|
||||
Dectect RGB bit mask
|
||||
*/
|
||||
hbmp = CreateCompatibleBitmap(hdc, 1, 1);
|
||||
if (hbmp==NULL)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
printf("Fail to Create Compatible Bitmap\n");
|
||||
printf("Fail to Create Compatible Bitmap\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
||||
pbmiData = (UCHAR *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, bmiSize);
|
||||
pbmi = (BITMAPINFO*)pbmiData;
|
||||
|
||||
|
@ -159,7 +159,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
free(mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
DeleteObject(hbmp);
|
||||
printf("Fail to Alloc pbmiData\n");
|
||||
printf("Fail to Alloc pbmiData\n");
|
||||
return DDERR_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
@ -180,32 +180,32 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
|
||||
HeapFree(GetProcessHeap(), 0, pbmiData);
|
||||
|
||||
/*
|
||||
prepare start up the DX Draw HAL interface now
|
||||
/*
|
||||
prepare start up the DX Draw HAL interface now
|
||||
*/
|
||||
|
||||
|
||||
memset(&mDDrawGlobal, 0, sizeof(DDRAWI_DIRECTDRAW_GBL));
|
||||
memset(&mHALInfo, 0, sizeof(DDHALINFO));
|
||||
memset(&mCallbacks, 0, sizeof(DDHAL_CALLBACKS));
|
||||
|
||||
/*
|
||||
Startup DX HAL step one of three
|
||||
|
||||
/*
|
||||
Startup DX HAL step one of three
|
||||
*/
|
||||
if (!DdCreateDirectDrawObject(&mDDrawGlobal, hdc))
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
DeleteObject(hbmp);
|
||||
printf("Fail to Create Direct DrawObject\n");
|
||||
printf("Fail to Create Direct DrawObject\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
mDDrawGlobal.dwRefCnt = 1; //addref / remove ref
|
||||
|
||||
// Do not relase HDC it have been map in kernel mode
|
||||
// Do not relase HDC it have been map in kernel mode
|
||||
// DeleteDC(hdc);
|
||||
|
||||
/* we need reanable it if screen res have changes, and some bad drv need be reanble very few
|
||||
|
||||
/* we need reanable it if screen res have changes, and some bad drv need be reanble very few
|
||||
to contiune */
|
||||
/*
|
||||
if (!DdReenableDirectDrawObject(&mDDrawGlobal, &newmode))
|
||||
|
@ -215,11 +215,11 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
DeleteObject(hbmp);
|
||||
return DD_FALSE;
|
||||
}*/
|
||||
|
||||
|
||||
/*
|
||||
Setup the DirectDraw Local
|
||||
Setup the DirectDraw Local
|
||||
*/
|
||||
|
||||
|
||||
mDDrawLocal.lpDDCB = &mCallbacks;
|
||||
mDDrawLocal.lpGbl = &mDDrawGlobal;
|
||||
mDDrawLocal.dwProcessId = GetCurrentProcessId();
|
||||
|
@ -228,16 +228,16 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mDDrawGlobal.lpExclusiveOwner = &mDDrawLocal;
|
||||
//mDDrawLocal.dwLocalFlags = DDRAWILCL_DIRECTDRAW7;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Startup DX HAL step two of three
|
||||
Startup DX HAL step two of three
|
||||
*/
|
||||
|
||||
if (!DdQueryDirectDrawObject(&mDDrawGlobal,
|
||||
&mHALInfo,
|
||||
&mCallbacks.HALDD,
|
||||
&mCallbacks.HALDDSurface,
|
||||
&mCallbacks.HALDDPalette,
|
||||
&mCallbacks.HALDDPalette,
|
||||
&mD3dCallbacks,
|
||||
&mD3dDriverData,
|
||||
&mD3dBufferCallbacks,
|
||||
|
@ -255,12 +255,12 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mcvmList = mHALInfo.vmiData.dwNumHeaps;
|
||||
mpvmList = (VIDMEM*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(VIDMEM) * mcvmList);
|
||||
if (mpvmList == NULL)
|
||||
{
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
DeleteObject(hbmp);
|
||||
// FIXME Close DX fristcall and second call
|
||||
printf("Fail to QueryDirect Draw Object frist pass\n");
|
||||
printf("Fail to QueryDirect Draw Object frist pass\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
@ -279,14 +279,14 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mcTextures = mD3dDriverData.dwNumTextureFormats;
|
||||
mpTextures = (DDSURFACEDESC*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC) * mcTextures);
|
||||
if (mpTextures == NULL)
|
||||
{
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mpFourCC);
|
||||
HeapFree(GetProcessHeap(), 0, mpvmList);
|
||||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
DeleteObject(hbmp);
|
||||
// FIXME Close DX fristcall and second call
|
||||
printf("Fail QueryDirect Draw Object to Alloc mpTextures \n");
|
||||
printf("Fail QueryDirect Draw Object to Alloc mpTextures \n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
@ -299,14 +299,14 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
&mHALInfo,
|
||||
&mCallbacks.HALDD,
|
||||
&mCallbacks.HALDDSurface,
|
||||
&mCallbacks.HALDDPalette,
|
||||
&mCallbacks.HALDDPalette,
|
||||
&mD3dCallbacks,
|
||||
&mD3dDriverData,
|
||||
&mCallbacks.HALDDExeBuf,
|
||||
mpTextures,
|
||||
mpFourCC,
|
||||
mpvmList))
|
||||
|
||||
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mpTextures);
|
||||
HeapFree(GetProcessHeap(), 0, mpFourCC);
|
||||
|
@ -314,7 +314,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
HeapFree(GetProcessHeap(), 0, mpModeInfos);
|
||||
DeleteDC(hdc);
|
||||
DeleteObject(hbmp);
|
||||
printf("Fail to QueryDirect Draw Object second pass\n");
|
||||
printf("Fail to QueryDirect Draw Object second pass\n");
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
@ -322,7 +322,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
Copy over from HalInfo to DirectDrawGlobal
|
||||
*/
|
||||
|
||||
// this is wrong, cDriverName need be in ASC code not UNICODE
|
||||
// this is wrong, cDriverName need be in ASC code not UNICODE
|
||||
//memcpy(mDDrawGlobal.cDriverName, mDisplayAdapter, sizeof(wchar)*MAX_DRIVER_NAME);
|
||||
|
||||
memcpy(&mDDrawGlobal.vmiData, &mHALInfo.vmiData,sizeof(VIDMEMINFO));
|
||||
|
@ -336,11 +336,11 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mDDrawGlobal.dwModeIndex = mHALInfo.dwModeIndex;
|
||||
mDDrawGlobal.dwNumModes = mHALInfo.dwNumModes;
|
||||
mDDrawGlobal.lpModeInfo = mHALInfo.lpModeInfo;
|
||||
mDDrawGlobal.hInstance = mHALInfo.hInstance;
|
||||
|
||||
mDDrawGlobal.hInstance = mHALInfo.hInstance;
|
||||
|
||||
mDDrawGlobal.lp16DD = &mDDrawGlobal;
|
||||
|
||||
|
||||
|
||||
|
||||
/* Hal insate is down now */
|
||||
|
||||
|
@ -358,7 +358,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
/* cleare surface ends now */
|
||||
|
||||
/* create primare surface now */
|
||||
|
||||
|
||||
memset(&mddsdPrimary, 0, sizeof(DDSURFACEDESC));
|
||||
mddsdPrimary.dwSize = sizeof(DDSURFACEDESC);
|
||||
mddsdPrimary.dwFlags = DDSD_CAPS;
|
||||
|
@ -369,16 +369,16 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mDdCanCreateSurface.CanCreateSurface = mCallbacks.HALDD.CanCreateSurface;
|
||||
mDdCanCreateSurface.bIsDifferentPixelFormat = FALSE; //isDifferentPixelFormat;
|
||||
mDdCanCreateSurface.lpDDSurfaceDesc = &mddsdPrimary; // pDDSD;
|
||||
|
||||
if (mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||
|
||||
if (mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||
{
|
||||
printf("Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED\n");
|
||||
printf("Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED\n");
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
if (mDdCanCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCanCreateSurface mDdCanCreateSurface.ddRVal = %d:%s\n",(int)mDdCanCreateSurface.ddRVal,DDErrorString(mDdCanCreateSurface.ddRVal));
|
||||
printf("Fail to mDdCanCreateSurface mDdCanCreateSurface.ddRVal = %d:%s\n",(int)mDdCanCreateSurface.ddRVal,DDErrorString(mDdCanCreateSurface.ddRVal));
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
|
@ -393,7 +393,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
memset(&mPrimaryMore, 0, sizeof(DDRAWI_DDRAWSURFACE_MORE));
|
||||
mPrimaryMore.dwSize = sizeof(DDRAWI_DDRAWSURFACE_MORE);
|
||||
|
||||
|
||||
|
||||
//mPrimaryMore. = mpr
|
||||
|
||||
memset(&mPrimaryLocal, 0, sizeof(DDRAWI_DDRAWSURFACE_LCL));
|
||||
|
@ -407,7 +407,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
|
||||
DDHAL_CREATESURFACEDATA mDdCreateSurface;
|
||||
mDdCreateSurface.lpDD = &mDDrawGlobal;
|
||||
mDdCreateSurface.CreateSurface = mCallbacks.HALDD.CreateSurface;
|
||||
mDdCreateSurface.CreateSurface = mCallbacks.HALDD.CreateSurface;
|
||||
mDdCreateSurface.lpDDSurfaceDesc = &mddsdPrimary;//pDDSD;
|
||||
mDdCreateSurface.lplpSList = mpPrimaryLocals; //cSurfaces;
|
||||
mDdCreateSurface.dwSCnt = 1 ; //ppSurfaces;
|
||||
|
@ -417,11 +417,11 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
printf("Fail to mDdCreateSurface DDHAL_DRIVER_NOTHANDLED \n");
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
|
||||
if (mDdCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCanCreateSurface mDdCreateSurface.ddRVal = %d:%s\n",(int)mDdCreateSurface.ddRVal,DDErrorString(mDdCreateSurface.ddRVal));
|
||||
|
||||
if (mDdCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCanCreateSurface mDdCreateSurface.ddRVal = %d:%s\n",(int)mDdCreateSurface.ddRVal,DDErrorString(mDdCreateSurface.ddRVal));
|
||||
return mDdCreateSurface.ddRVal;
|
||||
}
|
||||
|
||||
|
@ -429,7 +429,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
memset(&mPrimaryClipperGlobal, 0, sizeof(DDRAWI_DDRAWCLIPPER_GBL));
|
||||
mPrimaryClipperGlobal.dwFlags = DDRAWICLIP_ISINITIALIZED;
|
||||
mPrimaryClipperGlobal.dwProcessId = GetCurrentProcessId();
|
||||
//mPrimaryClipperGlobal.hWnd = (ULONG_PTR)hwnd;
|
||||
//mPrimaryClipperGlobal.hWnd = (ULONG_PTR)hwnd;
|
||||
mPrimaryClipperGlobal.hWnd = (ULONG_PTR)GetDesktopWindow();
|
||||
mPrimaryClipperGlobal.lpDD = &mDDrawGlobal;
|
||||
mPrimaryClipperGlobal.lpStaticClipList = NULL;
|
||||
|
@ -447,12 +447,12 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
//mPrimaryMore.lpDDIClipper = &mPrimaryClipperInterface;
|
||||
|
||||
mDdBlt.lpDDDestSurface = mpPrimaryLocals[0];
|
||||
|
||||
|
||||
|
||||
|
||||
/* create primare surface is down now */
|
||||
|
||||
/* create overlay surface now */
|
||||
|
||||
|
||||
memset(&mddsdOverlay, 0, sizeof(DDSURFACEDESC));
|
||||
mddsdOverlay.dwSize = sizeof(DDSURFACEDESC);
|
||||
mddsdOverlay.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_BACKBUFFERCOUNT | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
|
@ -464,32 +464,32 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mddsdOverlay.dwBackBufferCount = 1; //cBuffers;
|
||||
|
||||
mddsdOverlay.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
|
||||
mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
mddsdOverlay.ddpfPixelFormat.dwFlags = DDPF_RGB;
|
||||
mddsdOverlay.ddpfPixelFormat.dwRGBBitCount = 32;
|
||||
|
||||
|
||||
|
||||
//DDHAL_CANCREATESURFACEDATA mDdCanCreateSurface;
|
||||
mDdCanCreateSurface.lpDD = &mDDrawGlobal;
|
||||
mDdCanCreateSurface.CanCreateSurface = mCallbacks.HALDD.CanCreateSurface;
|
||||
mDdCanCreateSurface.bIsDifferentPixelFormat = TRUE; //isDifferentPixelFormat;
|
||||
mDdCanCreateSurface.lpDDSurfaceDesc = &mddsdOverlay; // pDDSD;
|
||||
|
||||
|
||||
if (mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||
|
||||
|
||||
if (mHALInfo.lpDDCallbacks->CanCreateSurface(&mDdCanCreateSurface)== DDHAL_DRIVER_NOTHANDLED)
|
||||
{
|
||||
// derr(L"DirectDrawImpl[%08x]::__createPrimary Cannot create primary [%08x]", this, rv);
|
||||
|
||||
printf("Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED \n");
|
||||
|
||||
printf("Fail to mDdCanCreateSurface DDHAL_DRIVER_NOTHANDLED \n");
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
if (mDdCanCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCanCreateSurface mDdCanCreateSurface.ddRVal = %d:%s\n",(int)mDdCanCreateSurface.ddRVal,DDErrorString(mDdCanCreateSurface.ddRVal));
|
||||
printf("Fail to mDdCanCreateSurface mDdCanCreateSurface.ddRVal = %d:%s\n",(int)mDdCanCreateSurface.ddRVal,DDErrorString(mDdCanCreateSurface.ddRVal));
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
|
||||
|
||||
memset(&mOverlayGlobal, 0, sizeof(DDRAWI_DDRAWSURFACE_GBL));
|
||||
mOverlayGlobal.dwGlobalFlags = 0;
|
||||
mOverlayGlobal.lpDD = &mDDrawGlobal;
|
||||
|
@ -514,7 +514,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
(DDRAWISURF_IMPLICITROOT|DDRAWISURF_FRONTBUFFER):
|
||||
(DDRAWISURF_IMPLICITCREATE|DDRAWISURF_BACKBUFFER);
|
||||
|
||||
mOverlayLocal[i].dwFlags |=
|
||||
mOverlayLocal[i].dwFlags |=
|
||||
DDRAWISURF_ATTACHED|DDRAWISURF_ATTACHED_FROM|
|
||||
DDRAWISURF_HASPIXELFORMAT|
|
||||
DDRAWISURF_HASOVERLAYDATA;
|
||||
|
@ -527,26 +527,26 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
{
|
||||
j = (i + 1) % cSurfaces;
|
||||
|
||||
|
||||
/*if (!mHALInfo.lpDDSurfaceCallbacks->AddAttachedSurface(mpOverlayLocals[i], mpOverlayLocals[j]))
|
||||
|
||||
/*if (!mHALInfo.lpDDSurfaceCallbacks->AddAttachedSurface(mpOverlayLocals[i], mpOverlayLocals[j]))
|
||||
{
|
||||
// derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
|
||||
return DD_FALSE;
|
||||
}*/
|
||||
|
||||
if (!DdAttachSurface(mpOverlayLocals[i], mpOverlayLocals[j]))
|
||||
if (!DdAttachSurface(mpOverlayLocals[i], mpOverlayLocals[j]))
|
||||
{
|
||||
// derr(L"DirectDrawImpl[%08x]::__setupDevice DdAttachSurface(%d, %d) failed", this, i, j);
|
||||
printf("Fail to DdAttachSurface (%d:%d)\n", i, j);
|
||||
return DD_FALSE;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// DDHAL_CREATESURFACEDATA mDdCreateSurface;
|
||||
mDdCreateSurface.lpDD = &mDDrawGlobal;
|
||||
mDdCreateSurface.CreateSurface = mCallbacks.HALDD.CreateSurface;
|
||||
mDdCreateSurface.CreateSurface = mCallbacks.HALDD.CreateSurface;
|
||||
mDdCreateSurface.lpDDSurfaceDesc = &mddsdOverlay;//pDDSD;
|
||||
mDdCreateSurface.lplpSList = mpOverlayLocals; //cSurfaces;
|
||||
mDdCreateSurface.dwSCnt = 1 ; //ppSurfaces;
|
||||
|
@ -556,11 +556,11 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
printf("Fail to mDdCreateSurface = DDHAL_DRIVER_HANDLED\n");
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
|
||||
if (mDdCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCreateSurface mDdCreateSurface.ddRVal = %d:%s\n",(int)mDdCreateSurface.ddRVal,DDErrorString(mDdCreateSurface.ddRVal));
|
||||
|
||||
if (mDdCreateSurface.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdCreateSurface mDdCreateSurface.ddRVal = %d:%s\n",(int)mDdCreateSurface.ddRVal,DDErrorString(mDdCreateSurface.ddRVal));
|
||||
return mDdCreateSurface.ddRVal;
|
||||
}
|
||||
|
||||
|
@ -577,7 +577,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
copyRect(&mDdUpdateOverlay.rDest, pdst);
|
||||
copyRect(&mDdUpdateOverlay.rSrc, psrc);
|
||||
*/
|
||||
|
||||
|
||||
mDdUpdateOverlay.rDest.top = 0;
|
||||
mDdUpdateOverlay.rDest.left = 0;
|
||||
mDdUpdateOverlay.rDest.right = 50;
|
||||
|
@ -588,63 +588,63 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
|
|||
mDdUpdateOverlay.rSrc.right = 50;
|
||||
mDdUpdateOverlay.rSrc.bottom = 50;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if ( mDdUpdateOverlay.UpdateOverlay(&mDdUpdateOverlay) == DDHAL_DRIVER_NOTHANDLED)
|
||||
{
|
||||
printf("Fail to mDdBlt = DDHAL_DRIVER_HANDLED\n");
|
||||
return DDERR_NOTINITIALIZED;
|
||||
}
|
||||
|
||||
|
||||
if (mDdUpdateOverlay.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdUpdateOverlay mDdUpdateOverlay.ddRVal = %d:%s\n",(int)mDdUpdateOverlay.ddRVal,DDErrorString(mDdUpdateOverlay.ddRVal));
|
||||
|
||||
if (mDdUpdateOverlay.ddRVal != DD_OK)
|
||||
{
|
||||
printf("Fail to mDdUpdateOverlay mDdUpdateOverlay.ddRVal = %d:%s\n",(int)mDdUpdateOverlay.ddRVal,DDErrorString(mDdUpdateOverlay.ddRVal));
|
||||
return mDdUpdateOverlay.ddRVal;
|
||||
}
|
||||
|
||||
|
||||
/* blt */
|
||||
|
||||
|
||||
|
||||
DDRAWI_DDRAWSURFACE_LCL *pDDSurface = mpPrimaryLocals[0];
|
||||
|
||||
if (!DdResetVisrgn(pDDSurface, NULL))
|
||||
if (!DdResetVisrgn(pDDSurface, NULL))
|
||||
{
|
||||
// derr(L"DirectDrawImpl[%08x]::_clear DdResetVisrgn failed", this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
memset(&mDdBlt, 0, sizeof(DDHAL_BLTDATA));
|
||||
memset(&mDdBlt.bltFX, 0, sizeof(DDBLTFX));
|
||||
mDdBlt.bltFX.dwSize = sizeof(DDBLTFX);
|
||||
|
||||
mDdBlt.lpDD = &mDDrawGlobal;
|
||||
mDdBlt.Blt = mCallbacks.HALDDSurface.Blt;
|
||||
mDdBlt.Blt = mCallbacks.HALDDSurface.Blt;
|
||||
mDdBlt.lpDDDestSurface = mpPrimaryLocals[0];
|
||||
|
||||
|
||||
mpPrimaryLocals[0]->hDC = (ULONG_PTR)GetDC(GetDesktopWindow());
|
||||
mDdBlt.rDest.top = 50;
|
||||
mDdBlt.rDest.bottom = 100;
|
||||
mDdBlt.rDest.left = 0;
|
||||
mDdBlt.rDest.right = 100;
|
||||
mDdBlt.lpDDSrcSurface = NULL;
|
||||
mDdBlt.IsClipped = FALSE;
|
||||
mDdBlt.IsClipped = FALSE;
|
||||
mDdBlt.bltFX.dwFillColor = 0xFFFF00;
|
||||
mDdBlt.dwFlags = DDBLT_COLORFILL | DDBLT_WAIT;
|
||||
// mDdBlt.IsClipped = TRUE;
|
||||
|
||||
|
||||
if (mDdBlt.Blt(&mDdBlt) != DDHAL_DRIVER_HANDLED)
|
||||
{
|
||||
printf("Fail to mDdBlt = DDHAL_DRIVER_HANDLED\n");
|
||||
return DDHAL_DRIVER_HANDLED;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (mDdBlt.ddRVal!=DD_OK)
|
||||
{
|
||||
printf("Fail to mDdBlt mDdBlt.ddRVal = %d:%s\n",(int)mDdBlt.ddRVal,DDErrorString(mDdBlt.ddRVal));
|
||||
|
||||
if (mDdBlt.ddRVal!=DD_OK)
|
||||
{
|
||||
printf("Fail to mDdBlt mDdBlt.ddRVal = %d:%s\n",(int)mDdBlt.ddRVal,DDErrorString(mDdBlt.ddRVal));
|
||||
return mDdBlt.ddRVal;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,71 +28,71 @@ extern DDRAWI_DIRECTDRAW_GBL mDDrawGlobal;
|
|||
|
||||
|
||||
|
||||
BOOL (APIENTRY *DdCreateDirectDrawObject) (
|
||||
BOOL (APIENTRY *DdCreateDirectDrawObject) (
|
||||
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
||||
HDC hdc
|
||||
);
|
||||
|
||||
BOOL (APIENTRY *DdQueryDirectDrawObject) (
|
||||
BOOL (APIENTRY *DdQueryDirectDrawObject) (
|
||||
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
||||
LPDDHALINFO pHalInfo,
|
||||
LPDDHAL_DDCALLBACKS pDDCallbacks,
|
||||
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
|
||||
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
|
||||
LPD3DHAL_CALLBACKS pD3dCallbacks,
|
||||
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
|
||||
LPD3DHAL_CALLBACKS pD3dCallbacks,
|
||||
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
|
||||
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
|
||||
LPDDSURFACEDESC pD3dTextureFormats,
|
||||
LPDWORD pdwFourCC,
|
||||
LPVIDMEM pvmList
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdDeleteDirectDrawObject(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdDeleteDirectDrawObject(
|
||||
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdCreateSurfaceObject(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdCreateSurfaceObject(
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
||||
BOOL bPrimarySurface
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdDeleteSurfaceObject(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdDeleteSurfaceObject(
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
|
||||
);
|
||||
|
||||
//BOOL
|
||||
//APIENTRY
|
||||
//DdResetVisrgn(
|
||||
//BOOL
|
||||
//APIENTRY
|
||||
//DdResetVisrgn(
|
||||
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
||||
// HWND hWnd
|
||||
//);
|
||||
BOOL (APIENTRY *DdResetVisrgn) (
|
||||
BOOL (APIENTRY *DdResetVisrgn) (
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
||||
HWND hWnd
|
||||
);
|
||||
|
||||
HDC
|
||||
APIENTRY
|
||||
DdGetDC(
|
||||
HDC
|
||||
APIENTRY
|
||||
DdGetDC(
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
||||
LPPALETTEENTRY pColorTable
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdReleaseDC(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdReleaseDC(
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
|
||||
);
|
||||
|
||||
HBITMAP
|
||||
APIENTRY
|
||||
DdCreateDIBSection(
|
||||
HBITMAP
|
||||
APIENTRY
|
||||
DdCreateDIBSection(
|
||||
HDC hdc,
|
||||
CONST BITMAPINFO *pbmi,
|
||||
UINT iUsage,
|
||||
|
@ -101,62 +101,62 @@ DdCreateDIBSection(
|
|||
DWORD dwOffset
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdReenableDirectDrawObject(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdReenableDirectDrawObject(
|
||||
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
||||
BOOL *pbNewMode
|
||||
);
|
||||
|
||||
//BOOL
|
||||
//APIENTRY
|
||||
//DdAttachSurface(
|
||||
//BOOL
|
||||
//APIENTRY
|
||||
//DdAttachSurface(
|
||||
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
|
||||
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
|
||||
//);
|
||||
|
||||
BOOL (APIENTRY *DdAttachSurface) (
|
||||
BOOL (APIENTRY *DdAttachSurface) (
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
|
||||
);
|
||||
|
||||
VOID
|
||||
APIENTRY
|
||||
DdUnattachSurface(
|
||||
VOID
|
||||
APIENTRY
|
||||
DdUnattachSurface(
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceAttached
|
||||
);
|
||||
|
||||
ULONG
|
||||
APIENTRY
|
||||
ULONG
|
||||
APIENTRY
|
||||
DdQueryDisplaySettingsUniqueness(VOID);
|
||||
|
||||
HANDLE
|
||||
APIENTRY
|
||||
DdGetDxHandle(
|
||||
HANDLE
|
||||
APIENTRY
|
||||
DdGetDxHandle(
|
||||
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
|
||||
BOOL bRelease
|
||||
);
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdSetGammaRamp(
|
||||
BOOL
|
||||
APIENTRY
|
||||
DdSetGammaRamp(
|
||||
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
||||
HDC hdc,
|
||||
LPVOID lpGammaRamp
|
||||
);
|
||||
|
||||
DWORD
|
||||
APIENTRY
|
||||
DdSwapTextureHandles(
|
||||
DWORD
|
||||
APIENTRY
|
||||
DdSwapTextureHandles(
|
||||
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
|
||||
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2
|
||||
);
|
||||
|
||||
char* DDErrorString (HRESULT hr)
|
||||
{
|
||||
{
|
||||
switch (hr)
|
||||
{
|
||||
case DD_OK: return "DD_OK";
|
||||
|
@ -261,7 +261,7 @@ char* DDErrorString (HRESULT hr)
|
|||
case DDERR_NOTPAGELOCKED: return "DDERR_NOTPAGELOCKED";
|
||||
case DDERR_NOTINITIALIZED: return "DDERR_NOTINITIALIZED";
|
||||
}
|
||||
|
||||
|
||||
return "Unknown Error ";
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* PROJECT: ReactOS diskspeed.exe
|
||||
* FILE: apps/tests/diskspeed/diskspeed.c
|
||||
* PURPOSE: Determines disk transfer rates
|
||||
* PROGRAMMER:
|
||||
* PROGRAMMER:
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -29,18 +29,18 @@ const int ID_LISTBOX = 101;
|
|||
|
||||
HINSTANCE hInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int nCmdShow)
|
||||
{
|
||||
hInst = hInstance;
|
||||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.lpszClassName = WndClassName;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
|
@ -52,17 +52,17 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND hWnd =
|
||||
HWND hWnd =
|
||||
CreateWindow(
|
||||
WndClassName, TEXT("Font Enumeration Demo"),
|
||||
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
|
||||
WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 295, 285,
|
||||
NULL, NULL, hInst, NULL
|
||||
);
|
||||
|
||||
if (hWnd)
|
||||
{
|
||||
{
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
UpdateWindow(hWnd);
|
||||
|
||||
|
@ -71,10 +71,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
@ -87,78 +87,78 @@ int CALLBACK MyEnumFontFamExProc(ENUMLOGFONTEX *lpelfe,
|
|||
// if the typeface name is not already in the list
|
||||
LPARAM name = reinterpret_cast<LPARAM>(lpelfe->elfFullName);
|
||||
if (SNDMSG(hListBox, LB_FINDSTRINGEXACT, (ULONG)-1, name) == LB_ERR)
|
||||
{
|
||||
// add each font to the list box
|
||||
{
|
||||
// add each font to the list box
|
||||
int index = SNDMSG(hListBox, LB_ADDSTRING, 0, name);
|
||||
|
||||
|
||||
// fix the size of the font
|
||||
lpelfe->elfLogFont.lfHeight = -20;
|
||||
lpelfe->elfLogFont.lfWidth = 0;
|
||||
|
||||
|
||||
// create a new font and store its handle
|
||||
// as the data of the newly added item
|
||||
HFONT hFont = CreateFontIndirect(&lpelfe->elfLogFont);
|
||||
SNDMSG(hListBox, LB_SETITEMDATA, index,
|
||||
SNDMSG(hListBox, LB_SETITEMDATA, index,
|
||||
reinterpret_cast<LPARAM>(hFont));
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
||||
void AddScreenFonts()
|
||||
{
|
||||
// grab a handle to the screen's DC
|
||||
HDC hScreenDC = GetDC(NULL);
|
||||
try
|
||||
{
|
||||
//
|
||||
// grab a handle to the screen's DC
|
||||
HDC hScreenDC = GetDC(NULL);
|
||||
try
|
||||
{
|
||||
//
|
||||
// NOTE: Windows 95, 98 and Me requires that the lpLogfont
|
||||
// (second) parameter of the EnumFontFamiliesEx function is
|
||||
// (second) parameter of the EnumFontFamiliesEx function is
|
||||
// non-NULL. This parameter can be NULL on Windows NT/2000.
|
||||
//
|
||||
//
|
||||
LOGFONT lf = {0};
|
||||
lf.lfCharSet = DEFAULT_CHARSET;
|
||||
|
||||
// enumerate the current screen fonts
|
||||
// enumerate the current screen fonts
|
||||
EnumFontFamiliesEx(
|
||||
hScreenDC, &lf,
|
||||
hScreenDC, &lf,
|
||||
(FONTENUMPROC)MyEnumFontFamExProc,
|
||||
0, 0
|
||||
);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// release the screen's DC
|
||||
ReleaseDC(NULL, hScreenDC);
|
||||
}
|
||||
// release the screen's DC
|
||||
);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
// release the screen's DC
|
||||
ReleaseDC(NULL, hScreenDC);
|
||||
}
|
||||
// release the screen's DC
|
||||
ReleaseDC(NULL, hScreenDC);
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
hListBox =
|
||||
{
|
||||
hListBox =
|
||||
CreateWindowEx(
|
||||
WS_EX_CLIENTEDGE, TEXT("LISTBOX"), TEXT(""),
|
||||
WS_CHILD | WS_VISIBLE | LBS_STANDARD |
|
||||
LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
|
||||
20, 10, 250, 250,
|
||||
WS_CHILD | WS_VISIBLE | LBS_STANDARD |
|
||||
LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
|
||||
20, 10, 250, 250,
|
||||
hWnd, reinterpret_cast<HMENU>(ID_LISTBOX),
|
||||
hInst, NULL
|
||||
);
|
||||
);
|
||||
if (hListBox)
|
||||
{
|
||||
AddScreenFonts();
|
||||
}
|
||||
}
|
||||
}
|
||||
case WM_MEASUREITEM:
|
||||
{
|
||||
|
@ -193,14 +193,14 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
// if the item is currently selected
|
||||
if (lpdis->itemState & ODS_SELECTED)
|
||||
{
|
||||
// set the text color to white and
|
||||
// set the text color to white and
|
||||
// the background color to black
|
||||
COLORREF clrWhite = PALETTERGB(255, 255, 255);
|
||||
OldColor = SetTextColor(lpdis->hDC, clrWhite);
|
||||
stock = BLACK_BRUSH;
|
||||
}
|
||||
FillRect(
|
||||
lpdis->hDC, &lpdis->rcItem,
|
||||
lpdis->hDC, &lpdis->rcItem,
|
||||
static_cast<HBRUSH>(GetStockObject(stock))
|
||||
);
|
||||
|
||||
|
@ -209,7 +209,7 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
// extract the item's text
|
||||
char text[MAX_PATH];
|
||||
SNDMSG(hListBox, LB_GETTEXT, lpdis->itemID,
|
||||
reinterpret_cast<LPARAM>(text));
|
||||
reinterpret_cast<LPARAM>(text));
|
||||
|
||||
// extract the corresponding font handle
|
||||
DWORD value =
|
||||
|
@ -228,11 +228,11 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
// render the text
|
||||
RECT RText = lpdis->rcItem;
|
||||
InflateRect(&RText, -2, -2);
|
||||
DrawText(lpdis->hDC, text, strlen(text), &RText,
|
||||
DrawText(lpdis->hDC, text, strlen(text), &RText,
|
||||
DT_LEFT | DT_VCENTER | DT_SINGLELINE);
|
||||
|
||||
// restore the previous font
|
||||
SelectObject(lpdis->hDC, HOldFont);
|
||||
SelectObject(lpdis->hDC, HOldFont);
|
||||
}
|
||||
|
||||
// render the focus rectangle
|
||||
|
@ -251,13 +251,13 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
}
|
||||
case WM_DESTROY:
|
||||
{
|
||||
// delete each created font object
|
||||
// delete each created font object
|
||||
int count = SNDMSG(hListBox, LB_GETCOUNT, 0, 0);
|
||||
for (int index = 0; index < count; ++index)
|
||||
{
|
||||
DWORD value = SNDMSG(hListBox, LB_GETITEMDATA, index, 0);
|
||||
DeleteObject(reinterpret_cast<HFONT>(value));
|
||||
}
|
||||
}
|
||||
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
|
|
@ -30,7 +30,7 @@ PVOID GlobalBufferPool, GlobalPacketPool;
|
|||
|
||||
char hwaddr[6] = { 0x08, 0x00, 0x20, 0x0b, 0xb7, 0xbb };
|
||||
|
||||
char hdr[14] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
char hdr[14] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00 };
|
||||
|
||||
|
@ -70,7 +70,7 @@ void receive_complete( void *context, NTSTATUS status, unsigned long count ) {
|
|||
class SocketObject {
|
||||
public:
|
||||
virtual ~SocketObject() { }
|
||||
virtual int send( char *buf, int len, int *bytes,
|
||||
virtual int send( char *buf, int len, int *bytes,
|
||||
struct sockaddr_in *si ) = 0;
|
||||
virtual int recv( char *buf, int len, int *bytes,
|
||||
struct sockaddr_in *si ) = 0;
|
||||
|
@ -88,7 +88,7 @@ UINT TdiAddressSizeFromType( UINT AddressType ) {
|
|||
|
||||
NTSTATUS TdiBuildNullConnectionInfoInPlace
|
||||
( PTDI_CONNECTION_INFORMATION ConnInfo,
|
||||
ULONG Type )
|
||||
ULONG Type )
|
||||
/*
|
||||
* FUNCTION: Builds a NULL TDI connection information structure
|
||||
* ARGUMENTS:
|
||||
|
@ -99,7 +99,7 @@ NTSTATUS TdiBuildNullConnectionInfoInPlace
|
|||
*/
|
||||
{
|
||||
ULONG TdiAddressSize;
|
||||
|
||||
|
||||
TdiAddressSize = TdiAddressSizeFromType(Type);
|
||||
|
||||
RtlZeroMemory(ConnInfo,
|
||||
|
@ -119,7 +119,7 @@ NTSTATUS TdiBuildNullConnectionInfo
|
|||
/*
|
||||
* FUNCTION: Builds a NULL TDI connection information structure
|
||||
* ARGUMENTS:
|
||||
* ConnectionInfo = Address of buffer pointer to allocate connection
|
||||
* ConnectionInfo = Address of buffer pointer to allocate connection
|
||||
* information in
|
||||
* Type = TDI style address type (TDI_ADDRESS_TYPE_XXX).
|
||||
* RETURNS:
|
||||
|
@ -129,7 +129,7 @@ NTSTATUS TdiBuildNullConnectionInfo
|
|||
PTDI_CONNECTION_INFORMATION ConnInfo;
|
||||
ULONG TdiAddressSize;
|
||||
NTSTATUS Status;
|
||||
|
||||
|
||||
TdiAddressSize = TdiAddressSizeFromType(Type);
|
||||
|
||||
ConnInfo = (PTDI_CONNECTION_INFORMATION)
|
||||
|
@ -141,7 +141,7 @@ NTSTATUS TdiBuildNullConnectionInfo
|
|||
|
||||
Status = TdiBuildNullConnectionInfoInPlace( ConnInfo, Type );
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
if (!NT_SUCCESS(Status))
|
||||
ExFreePool( ConnInfo );
|
||||
else
|
||||
*ConnectionInfo = ConnInfo;
|
||||
|
@ -164,11 +164,11 @@ TdiBuildConnectionInfoInPlace
|
|||
( PTDI_CONNECTION_INFORMATION ConnectionInfo,
|
||||
PTA_ADDRESS Address ) {
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
|
||||
RtlCopyMemory( ConnectionInfo->RemoteAddress,
|
||||
Address,
|
||||
Address,
|
||||
ConnectionInfo->RemoteAddressLength );
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -178,10 +178,10 @@ TdiBuildConnectionInfo
|
|||
PTA_ADDRESS Address ) {
|
||||
NTSTATUS Status = TdiBuildNullConnectionInfo( ConnectionInfo,
|
||||
Address->AddressType );
|
||||
|
||||
|
||||
if( NT_SUCCESS(Status) )
|
||||
TdiBuildConnectionInfoInPlace( *ConnectionInfo, Address );
|
||||
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@ -200,10 +200,10 @@ public:
|
|||
TdiBuildConnectionInfo( &ConnInfo, (PTA_ADDRESS)&ConnectTo );
|
||||
|
||||
Connection = TCPAllocateConnectionEndpoint( NULL );
|
||||
*status = TCPSocket( Connection,
|
||||
*status = TCPSocket( Connection,
|
||||
AF_INET,
|
||||
SOCK_STREAM, IPPROTO_TCP );
|
||||
if( !*status )
|
||||
if( !*status )
|
||||
*status = TCPConnect( Connection,
|
||||
ConnInfo,
|
||||
NULL,
|
||||
|
@ -220,7 +220,7 @@ public:
|
|||
NTSTATUS Status = STATUS_UNSUCCESSFUL;
|
||||
|
||||
if( Connection )
|
||||
Status = TCPSendData( Connection,
|
||||
Status = TCPSendData( Connection,
|
||||
buf,
|
||||
len,
|
||||
(PULONG)bytes,
|
||||
|
@ -232,7 +232,7 @@ public:
|
|||
NTSTATUS Status = STATUS_UNSUCCESSFUL;
|
||||
|
||||
if( Connection )
|
||||
Status = TCPSendData( Connection,
|
||||
Status = TCPSendData( Connection,
|
||||
buf,
|
||||
len,
|
||||
(PULONG)bytes,
|
||||
|
@ -244,9 +244,9 @@ private:
|
|||
PCONNECTION_ENDPOINT Connection;
|
||||
};
|
||||
|
||||
VOID SendPacket( PVOID Context,
|
||||
PNDIS_PACKET NdisPacket,
|
||||
UINT Offset,
|
||||
VOID SendPacket( PVOID Context,
|
||||
PNDIS_PACKET NdisPacket,
|
||||
UINT Offset,
|
||||
PVOID LinkAddress,
|
||||
USHORT Type ) {
|
||||
PCHAR DataOut;
|
||||
|
@ -254,9 +254,9 @@ VOID SendPacket( PVOID Context,
|
|||
UINT Size;
|
||||
std::string output_packet;
|
||||
|
||||
printf( "Sending packet: %02x:%02x:%02x:%02x:%02x:%02x\n",
|
||||
printf( "Sending packet: %02x:%02x:%02x:%02x:%02x:%02x\n",
|
||||
Addr[0], Addr[1], Addr[2], Addr[3], Addr[4], Addr[5] );
|
||||
|
||||
|
||||
GetDataPtr( NdisPacket, Offset, &DataOut, &Size );
|
||||
for( int off = 0; off < Size; off += 16 ) {
|
||||
display_row( DataOut, off, Size );
|
||||
|
@ -298,7 +298,7 @@ int main( int argc, char **argv ) {
|
|||
SocketObject *S = NULL;
|
||||
|
||||
RtlInitUnicodeString
|
||||
( &RegistryUnicodePath,
|
||||
( &RegistryUnicodePath,
|
||||
L"\\SYSTEM\\CurrentControlSet\\Services"
|
||||
L"\\Tcpip" );
|
||||
|
||||
|
@ -316,7 +316,7 @@ int main( int argc, char **argv ) {
|
|||
BindInfo.Address = (PUCHAR)hwaddr;
|
||||
BindInfo.AddressLength = sizeof(hwaddr);
|
||||
BindInfo.Transmit = SendPacket;
|
||||
|
||||
|
||||
IPCreateInterface( &BindInfo );
|
||||
|
||||
asock = socket( AF_INET, SOCK_DGRAM, 0 );
|
||||
|
@ -327,32 +327,32 @@ int main( int argc, char **argv ) {
|
|||
printf( "Bind error\n" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
while( true ) {
|
||||
FD_ZERO( &readf );
|
||||
FD_SET( asock, &readf );
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 10000;
|
||||
selret = select( asock + 1, &readf, NULL, NULL, &tv );
|
||||
|
||||
|
||||
if( FD_ISSET( asock, &readf ) ) {
|
||||
fromsize = sizeof( addr_from );
|
||||
dgrecv = recvfrom( asock, datagram, sizeof(datagram), 0,
|
||||
(struct sockaddr *)&addr_from, &fromsize );
|
||||
|
||||
|
||||
if( datagram[0] == 'C' && datagram[1] == 'M' &&
|
||||
datagram[2] == 'D' && datagram[3] == ' ' ) {
|
||||
int theport, bytes, recvret, off, bytin;
|
||||
struct sockaddr_in nam;
|
||||
std::string faddr, word;
|
||||
std::istringstream
|
||||
std::istringstream
|
||||
cmdin( std::string( datagram + 4, dgrecv - 4 ) );
|
||||
|
||||
|
||||
cmdin >> word;
|
||||
|
||||
|
||||
/* UDP Section */
|
||||
if( word == "udpsocket" ) {
|
||||
/* TCP Section */
|
||||
/* TCP Section */
|
||||
} else if( word == "tcpsocket" ) {
|
||||
cmdin >> host >> port;
|
||||
S = new TCPSocketObject( host, port, &Status );
|
||||
|
@ -385,23 +385,23 @@ int main( int argc, char **argv ) {
|
|||
*dst++ = c;
|
||||
}
|
||||
*dst = '\0';
|
||||
if( S )
|
||||
if( S )
|
||||
err = S->send( p, strlen(p), &bytes, NULL );
|
||||
if( err > 0 ) { bytin = err; err = 0; }
|
||||
|
||||
if( err )
|
||||
fprintf ( stderr, "OskitTCPConnect: error %d\n",
|
||||
|
||||
if( err )
|
||||
fprintf ( stderr, "OskitTCPConnect: error %d\n",
|
||||
err );
|
||||
else {
|
||||
printf ( "wrote %d bytes\n", bytin );
|
||||
}
|
||||
}
|
||||
} else if( word == "send" ) {
|
||||
off = 0;
|
||||
while( cmdin >> word ) {
|
||||
datagram[off++] =
|
||||
datagram[off++] =
|
||||
atoi( (std::string("0x") + word).c_str() );
|
||||
}
|
||||
|
||||
|
||||
if( (err = S->send( datagram, off, &bytin, NULL )) != 0 ) {
|
||||
fprintf( stderr, "OskitTCPConnect: error %d\n", err );
|
||||
} else {
|
||||
|
@ -409,21 +409,21 @@ int main( int argc, char **argv ) {
|
|||
}
|
||||
} else if( word == "recv" ) {
|
||||
cmdin >> bytes;
|
||||
|
||||
if( (err = S->recv( datagram,
|
||||
|
||||
if( (err = S->recv( datagram,
|
||||
sizeof(datagram),
|
||||
&bytes,
|
||||
&bytes,
|
||||
NULL )) != 0 ) {
|
||||
fprintf( stderr, "OskitTCPRecv: error %d\n", err );
|
||||
}
|
||||
|
||||
|
||||
/* Misc section */
|
||||
} else if( word == "end" ) {
|
||||
return 0;
|
||||
}
|
||||
} else if( dgrecv > 14 ) {
|
||||
addr_to = addr_from;
|
||||
|
||||
|
||||
if( datagram[12] == 8 && datagram[13] == 6 ) {
|
||||
/* Answer arp query */
|
||||
char laddr[4];
|
||||
|
@ -439,11 +439,11 @@ int main( int argc, char **argv ) {
|
|||
memcpy( datagram + 38, laddr, 4 );
|
||||
/* Set reply opcode */
|
||||
datagram[21] = 2;
|
||||
|
||||
|
||||
err = sendto( asock, datagram, dgrecv, 0,
|
||||
(struct sockaddr *)&addr_to,
|
||||
(struct sockaddr *)&addr_to,
|
||||
sizeof(addr_to) );
|
||||
|
||||
|
||||
if( err != 0 )
|
||||
printf( "sendto: %d\n", err );
|
||||
} else {
|
||||
|
@ -457,20 +457,20 @@ int main( int argc, char **argv ) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
IPTimeout(NULL, NULL, NULL, NULL);
|
||||
|
||||
|
||||
for( i = output_packets.begin(); i != output_packets.end(); i++ ) {
|
||||
err = sendto( asock, i->c_str(), i->size(), 0,
|
||||
err = sendto( asock, i->c_str(), i->size(), 0,
|
||||
(struct sockaddr *)&addr_to, sizeof(addr_to) );
|
||||
|
||||
|
||||
fprintf( stderr, "** SENDING PACKET %d bytes **\n", i->size() );
|
||||
|
||||
|
||||
if( err != 0 )
|
||||
printf( "sendto: %d\n", err );
|
||||
}
|
||||
|
||||
|
||||
output_packets.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -93,10 +93,10 @@ int main( int argc, char **argv ) {
|
|||
NULL,
|
||||
0,
|
||||
0 );
|
||||
|
||||
|
||||
RtlInitUnicodeString( &LanDevice, L"\\Device\\Lan" );
|
||||
|
||||
InitializeObjectAttributes( &Attributes,
|
||||
InitializeObjectAttributes( &Attributes,
|
||||
&LanDevice,
|
||||
OBJ_CASE_INSENSITIVE,
|
||||
NULL,
|
||||
|
@ -106,9 +106,9 @@ int main( int argc, char **argv ) {
|
|||
LAN_FILL_EA_INFO(EaBuffer,sizeof(TypesToListen)/sizeof(USHORT),
|
||||
TypesToListen);
|
||||
|
||||
Status = ZwCreateFile( &LanFile,
|
||||
SYNCHRONIZE | GENERIC_READ | GENERIC_WRITE |
|
||||
GENERIC_EXECUTE,
|
||||
Status = ZwCreateFile( &LanFile,
|
||||
SYNCHRONIZE | GENERIC_READ | GENERIC_WRITE |
|
||||
GENERIC_EXECUTE,
|
||||
&Attributes,
|
||||
&Iosb,
|
||||
NULL,
|
||||
|
@ -123,7 +123,7 @@ int main( int argc, char **argv ) {
|
|||
cerr << "Could not open lan device " << Status << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Status = DeviceIoControl( LanFile,
|
||||
IOCTL_IF_BUFFERED_MODE,
|
||||
&On,
|
||||
|
@ -132,7 +132,7 @@ int main( int argc, char **argv ) {
|
|||
0,
|
||||
&PktLen,
|
||||
NULL );
|
||||
|
||||
|
||||
if( !Status ) {
|
||||
cerr << "Could not turn on buffered mode " << Status << "\n";
|
||||
return 1;
|
||||
|
@ -153,7 +153,7 @@ int main( int argc, char **argv ) {
|
|||
NULL );
|
||||
|
||||
cout << "EnumAdapters: " << Status << "\n";
|
||||
if( Status )
|
||||
if( Status )
|
||||
display_buffer( Packet, PktLen );
|
||||
} else if( word == "query" ) {
|
||||
cin >> PktLen;
|
||||
|
@ -166,18 +166,18 @@ int main( int argc, char **argv ) {
|
|||
sizeof(Packet),
|
||||
&PktLen,
|
||||
NULL );
|
||||
|
||||
|
||||
cout << "QueryAdapterInfo: " << Status << "\n";
|
||||
if( Status )
|
||||
display_buffer( Packet, PktLen );
|
||||
} else if( word == "send" ) {
|
||||
cin >> Hdr->Fixed.Adapter
|
||||
>> Hdr->Fixed.AddressType
|
||||
>> Hdr->Fixed.AddressLen
|
||||
cin >> Hdr->Fixed.Adapter
|
||||
>> Hdr->Fixed.AddressType
|
||||
>> Hdr->Fixed.AddressLen
|
||||
>> Hdr->Fixed.PacketType;
|
||||
Hdr->Fixed.Mdl = NULL;
|
||||
PktLen = byte_till_end( Packet, Hdr->Address - (PCHAR)Hdr );
|
||||
Status = NtWriteFile( LanFile,
|
||||
Status = NtWriteFile( LanFile,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -203,7 +203,7 @@ int main( int argc, char **argv ) {
|
|||
if( Status == STATUS_PENDING ) {
|
||||
LARGE_INTEGER Timeout = { 0 };
|
||||
Status = NtWaitForSingleObject( Event, 1, &Timeout );
|
||||
}
|
||||
}
|
||||
|
||||
ReadLen = Iosb.Information;
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ int main( int argc, char **argv ) {
|
|||
CloseHandle(pi.hProcess);
|
||||
return 6;
|
||||
}
|
||||
|
||||
|
||||
if (pi.hProcess != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(pi.hProcess);
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <reactos/resource.h>
|
||||
#include "resource.h"
|
||||
|
||||
IDR_MAINMENU MENU DISCARDABLE
|
||||
IDR_MAINMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
//#include <reactos/resource.h>
|
||||
#include "resource.h"
|
||||
|
||||
IDR_MAINMENU MENU DISCARDABLE
|
||||
IDR_MAINMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
|
|
|
@ -41,7 +41,7 @@ extern "C" int is_stack_ptr ( const void* p )
|
|||
}
|
||||
|
||||
int TCPSocketState(void *ClientData,
|
||||
void *WhichSocket,
|
||||
void *WhichSocket,
|
||||
void *WhichConnection,
|
||||
OSK_UINT NewState ) {
|
||||
PCONNECTION_ENDPOINT Connection = (PCONNECTION_ENDPOINT)WhichConnection;
|
||||
|
@ -54,22 +54,22 @@ int TCPSocketState(void *ClientData,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if( (NewState & SEL_CONNECT) &&
|
||||
if( (NewState & SEL_CONNECT) &&
|
||||
!(Connection->State & SEL_CONNECT) ) {
|
||||
} else if( (NewState & SEL_READ) || (NewState & SEL_FIN) ) {
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define STRINGIFY(x) #x
|
||||
|
||||
char hdr[14] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
char hdr[14] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0x00 };
|
||||
|
||||
int TCPPacketSend(void *ClientData, OSK_PCHAR data, OSK_UINT len ) {
|
||||
output_packets.push_back( std::string( hdr, 14 ) +
|
||||
output_packets.push_back( std::string( hdr, 14 ) +
|
||||
std::string( (char *)data, (int)len ) );
|
||||
return 0;
|
||||
}
|
||||
|
@ -79,14 +79,14 @@ struct ifaddr *TCPFindInterface( void *ClientData,
|
|||
OSK_UINT FindType,
|
||||
struct sockaddr *ReqAddr ) {
|
||||
static struct sockaddr_in ifa = { AF_INET }, nm = { AF_INET };
|
||||
static struct ifaddr a = {
|
||||
(struct sockaddr *)&ifa,
|
||||
NULL,
|
||||
(struct sockaddr *)&nm,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1500
|
||||
static struct ifaddr a = {
|
||||
(struct sockaddr *)&ifa,
|
||||
NULL,
|
||||
(struct sockaddr *)&nm,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1500
|
||||
};
|
||||
ifa.sin_addr.s_addr = inet_addr( "10.10.2.115" );
|
||||
nm.sin_addr.s_addr = inet_addr( "255.255.255.0" );
|
||||
|
@ -110,7 +110,7 @@ int TCPSleep( void *ClientData, void *token, int priority, char *msg,
|
|||
int tmio ) {
|
||||
#if 0
|
||||
PSLEEPING_THREAD SleepingThread;
|
||||
|
||||
|
||||
TI_DbgPrint(MID_TRACE,
|
||||
("Called TSLEEP: tok = %x, pri = %d, wmesg = %s, tmio = %x\n",
|
||||
token, priority, msg, tmio));
|
||||
|
@ -222,7 +222,7 @@ int main( int argc, char **argv ) {
|
|||
while( true ) {
|
||||
FD_ZERO( &readf );
|
||||
FD_SET( asock, &readf );
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 10000;
|
||||
selret = select( asock + 1, &readf, NULL, NULL, &tv );
|
||||
|
||||
|
@ -236,11 +236,11 @@ int main( int argc, char **argv ) {
|
|||
int theport, bytes, /*recvret,*/ off, bytin;
|
||||
struct sockaddr_in nam;
|
||||
std::string faddr, word;
|
||||
std::istringstream
|
||||
std::istringstream
|
||||
cmdin( std::string( datagram + 4, dgrecv - 4 ) );
|
||||
|
||||
|
||||
cmdin >> word;
|
||||
|
||||
|
||||
if( word == "socket" ) {
|
||||
cmdin >> faddr >> theport;
|
||||
|
||||
|
@ -248,18 +248,18 @@ int main( int argc, char **argv ) {
|
|||
nam.sin_addr.s_addr = inet_addr(faddr.c_str());
|
||||
nam.sin_port = htons(theport);
|
||||
|
||||
if( (err = OskitTCPSocket( NULL, &conn, AF_INET,
|
||||
if( (err = OskitTCPSocket( NULL, &conn, AF_INET,
|
||||
SOCK_STREAM, 0 )) != 0 ) {
|
||||
fprintf( stderr, "OskitTCPSocket: error %d\n", err );
|
||||
}
|
||||
|
||||
if( (err = OskitTCPConnect( conn, NULL, &nam,
|
||||
|
||||
if( (err = OskitTCPConnect( conn, NULL, &nam,
|
||||
sizeof(nam) )) != 0 ) {
|
||||
fprintf( stderr, "OskitTCPConnect: error %d\n", err );
|
||||
} else {
|
||||
printf( "Socket created\n" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* The rest of the commands apply only to an open socket */
|
||||
if( !conn ) continue;
|
||||
|
@ -267,7 +267,7 @@ int main( int argc, char **argv ) {
|
|||
if( word == "recv" ) {
|
||||
cmdin >> bytes;
|
||||
|
||||
if( (err = OskitTCPRecv( conn, (OSK_PCHAR)datagram,
|
||||
if( (err = OskitTCPRecv( conn, (OSK_PCHAR)datagram,
|
||||
sizeof(datagram),
|
||||
(unsigned int *)&bytin, 0 )) != 0 ) {
|
||||
fprintf( stderr, "OskitTCPRecv: error %d\n", err );
|
||||
|
@ -311,12 +311,12 @@ int main( int argc, char **argv ) {
|
|||
} else if( word == "send" ) {
|
||||
off = 0;
|
||||
while( cmdin >> word ) {
|
||||
datagram[off++] =
|
||||
datagram[off++] =
|
||||
atoi( (std::string("0x") + word).c_str() );
|
||||
}
|
||||
|
||||
if( (err = OskitTCPSend( conn, (OSK_PCHAR)datagram,
|
||||
off, (OSK_UINT *)&bytin, 0 ))
|
||||
|
||||
if( (err = OskitTCPSend( conn, (OSK_PCHAR)datagram,
|
||||
off, (OSK_UINT *)&bytin, 0 ))
|
||||
!= 0 ) {
|
||||
fprintf( stderr, "OskitTCPConnect: error %d\n", err );
|
||||
} else {
|
||||
|
@ -346,9 +346,9 @@ int main( int argc, char **argv ) {
|
|||
datagram[21] = 2;
|
||||
|
||||
err = sendto( asock, datagram, dgrecv, 0,
|
||||
(struct sockaddr *)&addr_to,
|
||||
(struct sockaddr *)&addr_to,
|
||||
sizeof(addr_to) );
|
||||
|
||||
|
||||
if( err != 0 )
|
||||
printf( "sendto: %d\n", err );
|
||||
} else {
|
||||
|
@ -356,7 +356,7 @@ int main( int argc, char **argv ) {
|
|||
memcpy( hdr + 6, datagram, 6 );
|
||||
memcpy( hdr + 12, datagram + 12, 2 );
|
||||
OskitTCPReceiveDatagram
|
||||
( (unsigned char *)datagram + 14,
|
||||
( (unsigned char *)datagram + 14,
|
||||
dgrecv - 14, 20 );
|
||||
}
|
||||
}
|
||||
|
@ -365,7 +365,7 @@ int main( int argc, char **argv ) {
|
|||
TimerOskitTCP();
|
||||
|
||||
for( i = output_packets.begin(); i != output_packets.end(); i++ ) {
|
||||
err = sendto( asock, i->c_str(), i->size(), 0,
|
||||
err = sendto( asock, i->c_str(), i->size(), 0,
|
||||
(struct sockaddr *)&addr_to, sizeof(addr_to) );
|
||||
|
||||
fprintf( stderr, "** SENDING PACKET %d bytes **\n", i->size() );
|
||||
|
@ -377,4 +377,4 @@ int main( int argc, char **argv ) {
|
|||
output_packets.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -18,18 +18,18 @@
|
|||
|
||||
HINSTANCE HInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE, LPTSTR,
|
||||
int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE, LPTSTR,
|
||||
int nCmdShow)
|
||||
{
|
||||
HInst = HInstance;
|
||||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.lpszClassName = WndClassName;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
|
@ -41,14 +41,14 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE, LPTSTR,
|
|||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND HWnd =
|
||||
CreateWindow(WndClassName,
|
||||
HWND HWnd =
|
||||
CreateWindow(WndClassName,
|
||||
TEXT("PatBlt Tracking Rect Demo"),
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 640, 480,
|
||||
NULL, NULL, HInst, NULL);
|
||||
|
||||
|
||||
if (HWnd)
|
||||
{
|
||||
ShowWindow(HWnd, nCmdShow);
|
||||
|
@ -59,7 +59,7 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE, LPTSTR,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
@ -101,31 +101,31 @@ void RenderTrackingRect(IN HDC HDestDC, IN const RECT& RRender)
|
|||
const DWORD dwROP3 = DSTINVERT; // experiment with others
|
||||
|
||||
// render top bar
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.top,
|
||||
width, line_width,
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.top,
|
||||
width, line_width,
|
||||
dwROP3);
|
||||
// render bottom bar
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.bottom - line_width,
|
||||
width, line_width,
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.bottom - line_width,
|
||||
width, line_width,
|
||||
dwROP3);
|
||||
// render left bar
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.top + line_width,
|
||||
line_width, height - (2 * line_width),
|
||||
PatBlt(HDestDC,
|
||||
RRender.left, RRender.top + line_width,
|
||||
line_width, height - (2 * line_width),
|
||||
dwROP3);
|
||||
// render right bar
|
||||
PatBlt(HDestDC,
|
||||
RRender.right - line_width, RRender.top + line_width,
|
||||
line_width, height - (2 * line_width),
|
||||
PatBlt(HDestDC,
|
||||
RRender.right - line_width, RRender.top + line_width,
|
||||
line_width, height - (2 * line_width),
|
||||
dwROP3);
|
||||
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam)
|
||||
{
|
||||
switch (Msg)
|
||||
|
@ -138,15 +138,15 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
{
|
||||
// load the penguin bitmap
|
||||
HBITMAP HBmp = static_cast<HBITMAP>(
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP, 0, 0,
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP, 0, 0,
|
||||
LR_LOADFROMFILE | LR_DEFAULTSIZE)
|
||||
);
|
||||
);
|
||||
if (HBmp)
|
||||
{
|
||||
// get the bitmap's dimensions
|
||||
BITMAP bmp;
|
||||
if (GetObject(HBmp, sizeof(BITMAP), &bmp))
|
||||
{
|
||||
{
|
||||
RImage.right += bmp.bmWidth;
|
||||
RImage.bottom += bmp.bmHeight;
|
||||
|
||||
|
@ -166,9 +166,9 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
PMouse.y = HIWORD(LParam);
|
||||
|
||||
RECT RClient;
|
||||
if (PtInRect(&RImage, PMouse) &&
|
||||
if (PtInRect(&RImage, PMouse) &&
|
||||
GetClientRect(HWnd, &RClient))
|
||||
{
|
||||
{
|
||||
MapRect(HWnd, HWND_DESKTOP, RClient);
|
||||
ClipCursor(&RClient);
|
||||
|
||||
|
@ -178,23 +178,23 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
HRGN HClipRgn = CreateRectRgnIndirect(&RClient);
|
||||
SelectClipRgn(HScreenDC, HClipRgn);
|
||||
DeleteObject(HClipRgn);
|
||||
|
||||
|
||||
CopyRect(&RTrack, &RImage);
|
||||
MapRect(HWnd, HWND_DESKTOP, RTrack);
|
||||
MapRect(HWnd, HWND_DESKTOP, RTrack);
|
||||
|
||||
// render the first tracking rect
|
||||
RenderTrackingRect(HScreenDC, RTrack);
|
||||
is_tracking = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
if (HScreenDC && is_tracking)
|
||||
{
|
||||
POINT PCurrent = {LOWORD(LParam), HIWORD(LParam)};
|
||||
{
|
||||
POINT PCurrent = {LOWORD(LParam), HIWORD(LParam)};
|
||||
const int dX = PCurrent.x - PMouse.x;
|
||||
const int dY = PCurrent.y - PMouse.y;
|
||||
const int dY = PCurrent.y - PMouse.y;
|
||||
|
||||
// erase the previous rectangle
|
||||
RenderTrackingRect(HScreenDC, RTrack);
|
||||
|
@ -227,12 +227,12 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
break;
|
||||
}
|
||||
case WM_PAINT:
|
||||
{
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
HDC Hdc = BeginPaint(HWnd, &ps);
|
||||
try
|
||||
{
|
||||
//
|
||||
//
|
||||
// TODO: Add palette support...
|
||||
//
|
||||
|
||||
|
@ -240,7 +240,7 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
BitBlt(Hdc, RImage.left, RImage.top,
|
||||
RImage.right - RImage.left,
|
||||
RImage.bottom - RImage.top,
|
||||
HMemDC, 0, 0,
|
||||
HMemDC, 0, 0,
|
||||
SRCCOPY);
|
||||
}
|
||||
catch (...)
|
||||
|
@ -249,11 +249,11 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
}
|
||||
EndPaint(HWnd, &ps);
|
||||
break;
|
||||
}
|
||||
}
|
||||
case WM_DESTROY:
|
||||
{
|
||||
// clean up
|
||||
if (HOldBmp)
|
||||
if (HOldBmp)
|
||||
{
|
||||
DeleteObject(SelectObject(HMemDC, HOldBmp));
|
||||
}
|
||||
|
|
|
@ -315,10 +315,10 @@ POLYGONFILL_MakeEdge(POINT From, POINT To)
|
|||
** lines will become active first when scanning from
|
||||
** top (min y) to bottom (max y).
|
||||
**
|
||||
** Return Value Meaning
|
||||
** Negative integer element1 < element2
|
||||
** Zero element1 = element2
|
||||
** Positive integer element1 > element2
|
||||
** Return Value Meaning
|
||||
** Negative integer element1 < element2
|
||||
** Zero element1 = element2
|
||||
** Positive integer element1 > element2
|
||||
*/
|
||||
static
|
||||
INT
|
||||
|
@ -427,7 +427,7 @@ fail:
|
|||
|
||||
|
||||
/*
|
||||
** This slow routine uses the data stored in the edge list to
|
||||
** This slow routine uses the data stored in the edge list to
|
||||
** calculate the x intercepts for each line in the edge list
|
||||
** for scanline Scanline.
|
||||
**TODO: Get rid of this floating point arithmetic
|
||||
|
@ -664,14 +664,14 @@ POLYGONFILL_FillScanLineWinding(
|
|||
RopMode); // MIX
|
||||
}
|
||||
|
||||
//When the fill mode is ALTERNATE, GDI fills the area between odd-numbered and
|
||||
//even-numbered polygon sides on each scan line. That is, GDI fills the area between the
|
||||
//first and second side, between the third and fourth side, and so on.
|
||||
//When the fill mode is ALTERNATE, GDI fills the area between odd-numbered and
|
||||
//even-numbered polygon sides on each scan line. That is, GDI fills the area between the
|
||||
//first and second side, between the third and fourth side, and so on.
|
||||
|
||||
//WINDING Selects winding mode (fills any region with a nonzero winding value).
|
||||
//WINDING Selects winding mode (fills any region with a nonzero winding value).
|
||||
//When the fill mode is WINDING, GDI fills any region that has a nonzero winding value.
|
||||
//This value is defined as the number of times a pen used to draw the polygon would go around the region.
|
||||
//The direction of each edge of the polygon is important.
|
||||
//The direction of each edge of the polygon is important.
|
||||
|
||||
BOOL
|
||||
STDCALL
|
||||
|
@ -711,7 +711,7 @@ FillPolygon(
|
|||
else /* default */
|
||||
FillScanLine = POLYGONFILL_FillScanLineAlternate;
|
||||
|
||||
/* For each Scanline from BoundRect.bottom to BoundRect.top,
|
||||
/* For each Scanline from BoundRect.bottom to BoundRect.top,
|
||||
* determine line segments to draw
|
||||
*/
|
||||
for ( ScanLine = BoundRect.top; ScanLine < BoundRect.bottom; ++ScanLine )
|
||||
|
@ -780,7 +780,7 @@ Polygon ( CONST PPOINT UnsafePoints, int Count, int polyFillMode )
|
|||
DestRect.top = MIN(DestRect.top, Points[CurrentPoint].y);
|
||||
DestRect.bottom = MAX(DestRect.bottom, Points[CurrentPoint].y);
|
||||
}
|
||||
|
||||
|
||||
// Draw the Polygon Edges with the current pen
|
||||
for (CurrentPoint = 0; CurrentPoint < Count; ++CurrentPoint)
|
||||
{
|
||||
|
@ -804,9 +804,9 @@ Polygon ( CONST PPOINT UnsafePoints, int Count, int polyFillMode )
|
|||
IntEngLineTo(SurfObj,
|
||||
dc.CombinedClip,
|
||||
OutBrushObj,
|
||||
From.x,
|
||||
From.y,
|
||||
To.x,
|
||||
From.x,
|
||||
From.y,
|
||||
To.x,
|
||||
To.y,
|
||||
&DestRect,
|
||||
EDGE_CHAR); /* MIX */
|
||||
|
|
|
@ -21,7 +21,7 @@ IDM_MAINMENU MENU LOADONCALL MOVEABLE DISCARDABLE
|
|||
MENUITEM "&9", 19
|
||||
}
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Save\tCtrl+S", 3
|
||||
MENUITEM "&Save\tCtrl+S", 3
|
||||
MENUITEM "Save &as...", 4
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "E&xit\tAlt-F4", IDM_EXIT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Windows 2000 Graphics API Black Book
|
||||
// Chapter 4 - Utility functions
|
||||
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -23,7 +23,7 @@ namespace font {
|
|||
HFONT MakeFont(
|
||||
IN HDC hDestDC, // handle to target DC
|
||||
IN LPCSTR typeface_name, // font's typeface name
|
||||
IN int point_size, // font's point size
|
||||
IN int point_size, // font's point size
|
||||
IN const BYTE charset, // font's character set
|
||||
IN const DWORD style // font's styles
|
||||
)
|
||||
|
@ -38,12 +38,12 @@ HFONT MakeFont(
|
|||
int pixels_per_inch = GetDeviceCaps(hDestDC, LOGPIXELSY);
|
||||
|
||||
POINT PSize = {
|
||||
0,
|
||||
-MulDiv(static_cast<int>(xf.eM22 * point_size + 0.5),
|
||||
0,
|
||||
-MulDiv(static_cast<int>(xf.eM22 * point_size + 0.5),
|
||||
pixels_per_inch, 72)
|
||||
};
|
||||
|
||||
HFONT hResult = NULL;
|
||||
HFONT hResult = NULL;
|
||||
if (DPtoLP(hDestDC, &PSize, 1))
|
||||
{
|
||||
LOGFONT lf;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -22,18 +22,18 @@
|
|||
|
||||
HINSTANCE hInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int nCmdShow)
|
||||
{
|
||||
hInst = hInstance;
|
||||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW;
|
||||
wc.lpszClassName = WndClassName;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
|
@ -45,15 +45,15 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND hWnd =
|
||||
HWND hWnd =
|
||||
CreateWindow(
|
||||
WndClassName, TEXT("Output Primitives Demo"),
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 640, 480,
|
||||
NULL, NULL, hInst, NULL
|
||||
);
|
||||
|
||||
|
||||
if (hWnd)
|
||||
{
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
@ -64,10 +64,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
|
||||
|
@ -77,7 +77,7 @@ enum OutPrimitive {
|
|||
opEllipse, opArc, opPie, opChord, opCustom
|
||||
};
|
||||
|
||||
void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
||||
void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
||||
IN OutPrimitive PrimitiveID)
|
||||
{
|
||||
RECT R = RPrimitive;
|
||||
|
@ -98,8 +98,8 @@ void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
|||
{(R.right - R.left) / 2, R.top},
|
||||
{(R.right - R.left) / 2, R.bottom},
|
||||
{R.right, R.bottom}
|
||||
};
|
||||
PolyBezier(hDC, PControlPoints, 4);
|
||||
};
|
||||
PolyBezier(hDC, PControlPoints, 4);
|
||||
break;
|
||||
}
|
||||
case opRectangle:
|
||||
|
@ -122,8 +122,8 @@ void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
|||
const POINT PRads[] = {
|
||||
{(R.right - R.left) / 3 + R.left, R.top},
|
||||
{(R.right - R.left) / 3 + R.left, R.bottom}
|
||||
};
|
||||
Arc(hDC, R.left, R.top, R.right, R.bottom,
|
||||
};
|
||||
Arc(hDC, R.left, R.top, R.right, R.bottom,
|
||||
PRads[0].x, PRads[0].y, PRads[1].x, PRads[1].y);
|
||||
break;
|
||||
}
|
||||
|
@ -132,8 +132,8 @@ void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
|||
const POINT PRads[] = {
|
||||
{(R.right - R.left) / 3 + R.left, R.top},
|
||||
{(R.right - R.left) / 3 + R.left, R.bottom}
|
||||
};
|
||||
Pie(hDC, R.left, R.top, R.right, R.bottom,
|
||||
};
|
||||
Pie(hDC, R.left, R.top, R.right, R.bottom,
|
||||
PRads[0].x, PRads[0].y, PRads[1].x, PRads[1].y);
|
||||
break;
|
||||
}
|
||||
|
@ -142,8 +142,8 @@ void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
|||
const POINT PRads[] = {
|
||||
{(R.right - R.left) / 3 + R.left, R.top},
|
||||
{(R.right - R.left) / 3 + R.left, R.bottom}
|
||||
};
|
||||
Chord(hDC, R.left, R.top, R.right, R.bottom,
|
||||
};
|
||||
Chord(hDC, R.left, R.top, R.right, R.bottom,
|
||||
PRads[0].x, PRads[0].y, PRads[1].x, PRads[1].y);
|
||||
break;
|
||||
}
|
||||
|
@ -153,8 +153,8 @@ void DrawPrimitive(IN HDC hDC, IN const RECT& RPrimitive,
|
|||
{R.left, (R.bottom - R.top) / 2 + R.top},
|
||||
{(R.right - R.left) / 2 + R.left, R.top},
|
||||
{R.right, (R.bottom - R.top) / 2 + R.top},
|
||||
{(R.right - R.left) / 2 + R.left, R.bottom}
|
||||
};
|
||||
{(R.right - R.left) / 2 + R.left, R.bottom}
|
||||
};
|
||||
Polygon(hDC, PVertices, 4);
|
||||
break;
|
||||
}
|
||||
|
@ -168,20 +168,20 @@ HBRUSH hListBrush = NULL; // handle to the list box brush
|
|||
HPEN hListPen = NULL; // handle to the list box pen
|
||||
HFONT hListFont = NULL; // handle to the list box font
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
hListBox =
|
||||
hListBox =
|
||||
CreateWindowEx(
|
||||
WS_EX_CLIENTEDGE, TEXT("LISTBOX"), TEXT(""),
|
||||
WS_EX_CLIENTEDGE, TEXT("LISTBOX"), TEXT(""),
|
||||
WS_CHILD | WS_VISIBLE | WS_VSCROLL |
|
||||
LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT |
|
||||
LBS_OWNERDRAWFIXED,
|
||||
0, 0, 640, 480,
|
||||
LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT |
|
||||
LBS_OWNERDRAWFIXED,
|
||||
0, 0, 640, 480,
|
||||
hWnd, NULL, hInst, NULL
|
||||
);
|
||||
assert(hListBox != NULL);
|
||||
|
@ -190,23 +190,23 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
hListBox, GWL_ID, reinterpret_cast<LONG>(hListBox)
|
||||
);
|
||||
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Line")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Bezier Curve")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Rectangle")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Rounded Rectangle")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Ellipse")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Arc")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Pie Slice")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Chord")));
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(hListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>(TEXT("Custom")));
|
||||
|
||||
hListBrush = CreateSolidBrush(PALETTERGB(64, 192, 64));
|
||||
|
@ -218,9 +218,9 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
{
|
||||
// MakeFont() from Chapter 4
|
||||
hListFont = font::MakeFont(
|
||||
hScreenDC, "Impact", 20, ANSI_CHARSET,
|
||||
hScreenDC, "Impact", 20, ANSI_CHARSET,
|
||||
font::FS_BOLD | font::FS_UNDERLINE
|
||||
);
|
||||
);
|
||||
}
|
||||
#if 0
|
||||
catch (...)
|
||||
|
@ -234,30 +234,30 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
}
|
||||
case WM_MEASUREITEM:
|
||||
{
|
||||
LPMEASUREITEMSTRUCT lpmis =
|
||||
LPMEASUREITEMSTRUCT lpmis =
|
||||
reinterpret_cast<LPMEASUREITEMSTRUCT>(lParam);
|
||||
assert(lpmis != NULL);
|
||||
|
||||
if (lpmis->CtlID == reinterpret_cast<UINT>(hListBox))
|
||||
{
|
||||
lpmis->itemHeight = 150;
|
||||
return TRUE;
|
||||
lpmis->itemHeight = 150;
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WM_DRAWITEM:
|
||||
{
|
||||
LPDRAWITEMSTRUCT lpdis =
|
||||
LPDRAWITEMSTRUCT lpdis =
|
||||
reinterpret_cast<LPDRAWITEMSTRUCT>(lParam);
|
||||
assert(lpdis != NULL);
|
||||
|
||||
if (lpdis->CtlID == reinterpret_cast<UINT>(hListBox))
|
||||
{
|
||||
{
|
||||
SaveDC(lpdis->hDC);
|
||||
#if 0
|
||||
try
|
||||
#endif
|
||||
{
|
||||
{
|
||||
SelectObject(lpdis->hDC, hListBrush);
|
||||
SelectObject(lpdis->hDC, hListPen);
|
||||
SelectObject(lpdis->hDC, hListFont);
|
||||
|
@ -280,11 +280,11 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
0.6 * lpdis->rcItem.right + 0.5
|
||||
);
|
||||
FillRect(
|
||||
lpdis->hDC, &RPrimitive,
|
||||
lpdis->hDC, &RPrimitive,
|
||||
reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1)
|
||||
);
|
||||
DrawPrimitive(
|
||||
lpdis->hDC, RPrimitive,
|
||||
lpdis->hDC, RPrimitive,
|
||||
static_cast<OutPrimitive>(lpdis->itemID)
|
||||
);
|
||||
if (selected) InvertRect(lpdis->hDC, &RPrimitive);
|
||||
|
@ -292,24 +292,24 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
|
||||
// render the text
|
||||
TCHAR text[13];
|
||||
if (SNDMSG(hListBox, LB_GETTEXT, lpdis->itemID,
|
||||
if (SNDMSG(hListBox, LB_GETTEXT, lpdis->itemID,
|
||||
reinterpret_cast<LPARAM>(&text)) != LB_ERR)
|
||||
{
|
||||
{
|
||||
RECT RText = RPrimitive;
|
||||
RText.left = RPrimitive.right;
|
||||
RText.right = lpdis->rcItem.right;
|
||||
RText.right = lpdis->rcItem.right;
|
||||
|
||||
SelectObject(lpdis->hDC, hListFont);
|
||||
SetBkMode(lpdis->hDC, TRANSPARENT);
|
||||
SetTextColor(lpdis->hDC, clrText);
|
||||
|
||||
DrawText(lpdis->hDC, text, -1, &RText,
|
||||
|
||||
DrawText(lpdis->hDC, text, -1, &RText,
|
||||
DT_CENTER | DT_VCENTER | DT_SINGLELINE);
|
||||
}
|
||||
|
||||
// indicate keyboard focus
|
||||
if (lpdis->itemState & ODS_FOCUS)
|
||||
{
|
||||
{
|
||||
RECT RFocus = lpdis->rcItem;
|
||||
InflateRect(&RFocus, -1, -1);
|
||||
DrawFocusRect(lpdis->hDC, &RFocus);
|
||||
|
@ -330,7 +330,7 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
{
|
||||
MoveWindow(
|
||||
hListBox, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE
|
||||
);
|
||||
);
|
||||
return 0;
|
||||
}
|
||||
case WM_DESTROY:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<module name="readconsole" type="win32cui" installbase="bin" installname="readconsole.exe">
|
||||
<define name="UNICODE" />
|
||||
<define name="_UNICODE" />
|
||||
<define name="_UNICODE" />
|
||||
<define name="__USE_W32API" />
|
||||
<library>kernel32</library>
|
||||
<file>main.c</file>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -31,7 +31,7 @@ HINSTANCE HInst;
|
|||
HINSTANCE HPrevInst;
|
||||
TCHAR *cmdline;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
|
@ -44,7 +44,7 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
|||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.hInstance = HInstance;
|
||||
|
@ -54,63 +54,63 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
|||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND HWnd =
|
||||
HWND HWnd =
|
||||
CreateWindow(WndClassName, TEXT("StretchBlt NonUniform Zooming Demo"),
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPSIBLINGS,
|
||||
0, 0, 675, 560,
|
||||
NULL, NULL, HInst, NULL);
|
||||
|
||||
|
||||
if (HWnd)
|
||||
{
|
||||
HListBox =
|
||||
CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "",
|
||||
LBS_NOTIFY | WS_CHILD | WS_VISIBLE,
|
||||
530, 5, 130, 150, HWnd,
|
||||
CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "",
|
||||
LBS_NOTIFY | WS_CHILD | WS_VISIBLE,
|
||||
530, 5, 130, 150, HWnd,
|
||||
reinterpret_cast<HMENU>(ID_LISTBOX),
|
||||
HInst, NULL);
|
||||
VListBox =
|
||||
CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "",
|
||||
LBS_NOTIFY | WS_CHILD | WS_VISIBLE,
|
||||
530, 5+170, 130, 150, HWnd,
|
||||
CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "",
|
||||
LBS_NOTIFY | WS_CHILD | WS_VISIBLE,
|
||||
530, 5+170, 130, 150, HWnd,
|
||||
reinterpret_cast<HMENU>(ID_LISTBOX2),
|
||||
HInst, NULL);
|
||||
|
||||
if (HListBox && VListBox)
|
||||
{
|
||||
// horizontal zoom
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 25%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 50%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 75%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 100%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 125%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 150%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 200%"));
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(HListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 300%"));
|
||||
// vertical zoom
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 25%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 50%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 75%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 100%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 125%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 150%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 200%"));
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
SNDMSG(VListBox, LB_ADDSTRING, 0,
|
||||
reinterpret_cast<LPARAM>("Zoom 300%"));
|
||||
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
@ -143,16 +143,16 @@ HBITMAP HOldBmp = NULL;
|
|||
float zoom_factor_h = 0.5;
|
||||
float zoom_factor_v = 0.5;
|
||||
RECT RDest = {5, 5, 0, 0};
|
||||
enum {ID_ZOOM25, ID_ZOOM50, ID_ZOOM75, ID_ZOOM100,
|
||||
enum {ID_ZOOM25, ID_ZOOM50, ID_ZOOM75, ID_ZOOM100,
|
||||
ID_ZOOM125, ID_ZOOM150, ID_ZOOM200, ID_ZOOM300};
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam)
|
||||
{
|
||||
switch (Msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
{
|
||||
// check commandline
|
||||
if (strlen(cmdline) != 0)
|
||||
{
|
||||
|
@ -167,13 +167,13 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
if (HMemDC)
|
||||
{
|
||||
// load a bitmap from file
|
||||
HBITMAP HBmp =
|
||||
HBITMAP HBmp =
|
||||
static_cast<HBITMAP>(
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
0, 0, LR_LOADFROMFILE)
|
||||
);
|
||||
);
|
||||
if (HBmp)
|
||||
{
|
||||
{
|
||||
// extract dimensions of the bitmap
|
||||
GetObject(HBmp, sizeof(BITMAP), &bmp);
|
||||
|
||||
|
@ -188,7 +188,7 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
bmInfo.bmiHeader.biXPelsPerMeter = 0;
|
||||
bmInfo.bmiHeader.biClrImportant = 0;
|
||||
bmInfo.bmiHeader.biClrUsed = 0;
|
||||
|
||||
|
||||
// associate the bitmap with the memory DC
|
||||
HOldBmp = static_cast<HBITMAP>(
|
||||
SelectObject(HMemDC, HBmp)
|
||||
|
@ -211,11 +211,11 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
fclose(f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
case WM_COMMAND:
|
||||
{
|
||||
if (WParam == MAKEWPARAM(ID_LISTBOX, LBN_SELCHANGE) ||
|
||||
if (WParam == MAKEWPARAM(ID_LISTBOX, LBN_SELCHANGE) ||
|
||||
WParam == MAKEWPARAM(ID_LISTBOX2, LBN_SELCHANGE))
|
||||
{
|
||||
switch (SNDMSG(HListBox, LB_GETCURSEL, 0, 0))
|
||||
|
@ -243,15 +243,15 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
}
|
||||
|
||||
// calculate the new width and height
|
||||
const int new_width =
|
||||
const int new_width =
|
||||
static_cast<int>(zoom_factor_h * bmp.bmWidth);
|
||||
const int new_height =
|
||||
const int new_height =
|
||||
static_cast<int>(zoom_factor_v * bmp.bmHeight);
|
||||
|
||||
// is zooming in?
|
||||
bool zoom_in = (new_width > RDest.right - RDest.left);
|
||||
|
||||
// caculate the area that needs to be updated
|
||||
// caculate the area that needs to be updated
|
||||
RECT RUpdate = {
|
||||
RDest.left, RDest.top,
|
||||
RDest.left + max(new_width, RDest.right - RDest.left),
|
||||
|
@ -260,20 +260,20 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
|
||||
// adjust the dimenstions of the
|
||||
// destination rectangle
|
||||
RDest.right = RDest.left + new_width;
|
||||
RDest.bottom = RDest.top + new_height;
|
||||
RDest.right = RDest.left + new_width;
|
||||
RDest.bottom = RDest.top + new_height;
|
||||
|
||||
// create an update region from the XOR combination
|
||||
// of the update and destination rectangles
|
||||
HRGN HUpdateRgn = CreateRectRgnIndirect(&RUpdate);
|
||||
HRGN HDestRgn = CreateRectRgnIndirect(&RDest);
|
||||
int result =
|
||||
int result =
|
||||
CombineRgn(HUpdateRgn, HUpdateRgn, HDestRgn, RGN_XOR);
|
||||
|
||||
// incite a repaint
|
||||
if (result != NULLREGION && result != ERROR)
|
||||
{
|
||||
InvalidateRgn(HWnd, HUpdateRgn, true);
|
||||
{
|
||||
InvalidateRgn(HWnd, HUpdateRgn, true);
|
||||
RedrawWindow(HWnd, &RDest, NULL, RDW_NOERASE | RDW_INVALIDATE);
|
||||
}
|
||||
else if (result == NULLREGION)
|
||||
|
@ -301,36 +301,36 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
if (useDIBits)
|
||||
{
|
||||
if (RDest.right - RDest.left > 0)
|
||||
{
|
||||
{
|
||||
if (zoom_factor_h < 1.0 || zoom_factor_v < 1.0)
|
||||
{
|
||||
SetStretchBltMode(Hdc, COLORONCOLOR);
|
||||
}
|
||||
|
||||
// render the zoomed image
|
||||
StretchDIBits(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
StretchDIBits(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
RDest.bottom - RDest.top,
|
||||
0, 0,
|
||||
0, 0,
|
||||
bmp.bmWidth, bmp.bmHeight,
|
||||
bbits, &bmInfo,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY);
|
||||
SRCCOPY);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (RDest.right - RDest.left > 0)
|
||||
{
|
||||
|
||||
|
||||
// use BitBlt when not zooming
|
||||
if (zoom_factor_h == 1.0 && zoom_factor_v == 1.0)
|
||||
{
|
||||
BitBlt(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
BitBlt(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
RDest.bottom - RDest.top,
|
||||
HMemDC, 0, 0,
|
||||
SRCCOPY);
|
||||
HMemDC, 0, 0,
|
||||
SRCCOPY);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -340,17 +340,17 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
}
|
||||
|
||||
// render the zoomed image
|
||||
StretchBlt(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
StretchBlt(Hdc, RDest.left, RDest.top,
|
||||
RDest.right - RDest.left,
|
||||
RDest.bottom - RDest.top,
|
||||
HMemDC, 0, 0,
|
||||
HMemDC, 0, 0,
|
||||
bmp.bmWidth, bmp.bmHeight,
|
||||
SRCCOPY);
|
||||
SRCCOPY);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
#if 0
|
||||
catch (...)
|
||||
#endif
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Windows 2000 Graphics API Black Book
|
||||
// Chapter 4 - Utility functions
|
||||
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -23,7 +23,7 @@ namespace font {
|
|||
HFONT MakeFont(
|
||||
IN HDC hDestDC, // handle to target DC
|
||||
IN LPCSTR typeface_name, // font's typeface name
|
||||
IN int point_size, // font's point size
|
||||
IN int point_size, // font's point size
|
||||
IN const BYTE charset, // font's character set
|
||||
IN const DWORD style // font's styles
|
||||
)
|
||||
|
@ -38,12 +38,12 @@ HFONT MakeFont(
|
|||
int pixels_per_inch = GetDeviceCaps(hDestDC, LOGPIXELSY);
|
||||
|
||||
POINT PSize = {
|
||||
0,
|
||||
-MulDiv(static_cast<int>(xf.eM22 * point_size + 0.5),
|
||||
0,
|
||||
-MulDiv(static_cast<int>(xf.eM22 * point_size + 0.5),
|
||||
pixels_per_inch, 72)
|
||||
};
|
||||
|
||||
HFONT hResult = NULL;
|
||||
HFONT hResult = NULL;
|
||||
if (DPtoLP(hDestDC, &PSize, 1))
|
||||
{
|
||||
LOGFONT lf;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
|
@ -23,18 +23,18 @@
|
|||
|
||||
HINSTANCE hInst;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
||||
int nCmdShow)
|
||||
{
|
||||
hInst = hInstance;
|
||||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW;
|
||||
wc.lpszClassName = WndClassName;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
|
@ -46,15 +46,15 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND hWnd =
|
||||
HWND hWnd =
|
||||
CreateWindow(
|
||||
WndClassName, TEXT("Scaled Text Demo"),
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPCHILDREN,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 800, 300,
|
||||
NULL, NULL, hInst, NULL
|
||||
);
|
||||
|
||||
|
||||
if (hWnd)
|
||||
{
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
|
@ -65,10 +65,10 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
@ -78,7 +78,7 @@ HFONT hTTFont = NULL;
|
|||
double scale = 0.0;
|
||||
LPCSTR pText = TEXT("The Scaled Text!");
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
|
@ -91,13 +91,13 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
|
||||
InitCommonControlsEx(&icx);
|
||||
|
||||
hTrackBar =
|
||||
hTrackBar =
|
||||
CreateWindow(
|
||||
TRACKBAR_CLASS, "",
|
||||
TBS_HORZ | TBS_BOTH | TBS_AUTOTICKS |
|
||||
TRACKBAR_CLASS, "",
|
||||
TBS_HORZ | TBS_BOTH | TBS_AUTOTICKS |
|
||||
TBS_FIXEDLENGTH | TBS_ENABLESELRANGE |
|
||||
WS_CHILD | WS_VISIBLE,
|
||||
10, 260, 375, 40,
|
||||
WS_CHILD | WS_VISIBLE,
|
||||
10, 260, 375, 40,
|
||||
hWnd, NULL, hInst, NULL
|
||||
);
|
||||
|
||||
|
@ -136,9 +136,9 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
break;
|
||||
}
|
||||
case WM_ERASEBKGND:
|
||||
{
|
||||
{
|
||||
LRESULT res = DefWindowProc(hWnd, msg, wParam, lParam);
|
||||
|
||||
|
||||
HDC hDC = reinterpret_cast<HDC>(wParam);
|
||||
HFONT hOldFont = static_cast<HFONT>(
|
||||
SelectObject(hDC, hTTFont)
|
||||
|
@ -182,8 +182,8 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
);
|
||||
pPEnds[iPoint].y = static_cast<LONG>(
|
||||
scale * pPEnds[iPoint].y + 0.5
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
for (iPoint = 0; iPoint < num_points; ++iPoint)
|
||||
{
|
||||
|
@ -227,9 +227,9 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
delete [] pPEnds;
|
||||
throw;
|
||||
}
|
||||
// clean up
|
||||
delete [] pTypes;
|
||||
delete [] pPEnds;
|
||||
// clean up
|
||||
delete [] pTypes;
|
||||
delete [] pPEnds;
|
||||
}
|
||||
// ...
|
||||
}
|
||||
|
@ -243,11 +243,11 @@ LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||
case WM_SIZE:
|
||||
{
|
||||
MoveWindow(
|
||||
hTrackBar,
|
||||
hTrackBar,
|
||||
0, HIWORD(lParam) - 40, LOWORD(lParam), 40,
|
||||
false
|
||||
);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
case WM_DESTROY:
|
||||
{
|
||||
|
|
|
@ -242,7 +242,7 @@ static BOOL CALLBACK find_top_window(HWND hwnd, LPARAM lParam)
|
|||
return TRUE;
|
||||
hwnd=control;
|
||||
}
|
||||
|
||||
|
||||
pwindow = (HWND*)lParam;
|
||||
*pwindow = hwnd;
|
||||
return FALSE;
|
||||
|
@ -298,7 +298,7 @@ static void do_click(HWND window, DWORD down, DWORD up)
|
|||
if (dragto_y<window_info.rcWindow.top || dragto_y>=window_info.rcWindow.bottom)
|
||||
dragto_y=(window_info.rcWindow.bottom+window_info.rcWindow.top)/2;
|
||||
dragto_y=(dragto_y << 16)/GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
|
||||
dx = g_dragto_x - g_x;
|
||||
dy = g_dragto_y - g_y;
|
||||
step_per_x = dx / 4;
|
||||
|
@ -309,8 +309,8 @@ static void do_click(HWND window, DWORD down, DWORD up)
|
|||
x=dragto_x;
|
||||
y=dragto_y;
|
||||
}
|
||||
}
|
||||
if (up)
|
||||
}
|
||||
if (up)
|
||||
mouse_event(MOUSEEVENTF_ABSOLUTE | up, x, y, 0, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
// Created by Damon Chandler <dmc27@ee.cornell.edu>
|
||||
// Updates can be downloaded at: <www.coriolis.com>
|
||||
//
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// Please do not hesistate to e-mail me at dmc27@ee.cornell.edu
|
||||
// if you have any questions about this code.
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
//*********************************************************//
|
||||
// //
|
||||
// //
|
||||
// SYNOPSIS: //
|
||||
// This sample project demonstrates how to render //
|
||||
// a background image in response to the WM_ERASEBKGND //
|
||||
// message. It also shows how to create a transparent //
|
||||
// static (text) control by handling the //
|
||||
// WM_CTLCOLORSTATIC message. //
|
||||
// //
|
||||
// //
|
||||
//*********************************************************//
|
||||
|
||||
|
||||
|
@ -31,7 +31,7 @@ HINSTANCE HInst;
|
|||
HINSTANCE HPrevInst;
|
||||
TCHAR *cmdline;
|
||||
const char* WndClassName = "GMainWnd";
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam);
|
||||
|
||||
|
||||
|
@ -44,25 +44,25 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
|||
|
||||
WNDCLASS wc;
|
||||
memset(&wc, 0, sizeof(WNDCLASS));
|
||||
|
||||
|
||||
wc.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
|
||||
wc.lpfnWndProc = MainWndProc;
|
||||
wc.hInstance = HInstance;
|
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||
wc.hbrBackground =
|
||||
wc.hbrBackground =
|
||||
reinterpret_cast<HBRUSH>(COLOR_BTNFACE + 1);
|
||||
wc.lpszClassName = WndClassName;
|
||||
|
||||
if (RegisterClass(&wc))
|
||||
{
|
||||
HWND HWnd =
|
||||
CreateWindow(WndClassName,
|
||||
HWND HWnd =
|
||||
CreateWindow(WndClassName,
|
||||
TEXT("WM_ERASEBKGND Demo"),
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_OVERLAPPEDWINDOW | WS_CAPTION |
|
||||
WS_VISIBLE | WS_CLIPSIBLINGS,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 205, 85,
|
||||
NULL, NULL, HInstance, NULL);
|
||||
|
||||
|
||||
if (HWnd)
|
||||
{
|
||||
ShowWindow(HWnd, nCmdShow);
|
||||
|
@ -73,7 +73,7 @@ int APIENTRY WinMain(HINSTANCE HInstance, HINSTANCE HPrevInstance,
|
|||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
@ -87,17 +87,17 @@ HDC HMemDC;
|
|||
HBITMAP HBmp, HOldBmp;
|
||||
const char* filename = "BACKBITMAP.BMP";
|
||||
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
||||
LPARAM LParam)
|
||||
{
|
||||
switch (Msg)
|
||||
{
|
||||
case WM_CREATE:
|
||||
{
|
||||
HStatic =
|
||||
CreateWindow(TEXT("STATIC"), TEXT("Static Text"),
|
||||
WS_CHILD | WS_VISIBLE | SS_CENTER,
|
||||
10, 20, 175, 30,
|
||||
HStatic =
|
||||
CreateWindow(TEXT("STATIC"), TEXT("Static Text"),
|
||||
WS_CHILD | WS_VISIBLE | SS_CENTER,
|
||||
10, 20, 175, 30,
|
||||
HWnd, NULL, HInst, NULL);
|
||||
|
||||
// create a memory DC compatible with the screen
|
||||
|
@ -106,7 +106,7 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
{
|
||||
// load a DDB from file
|
||||
HBmp = static_cast<HBITMAP>(
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
LoadImage(HInst, filename, IMAGE_BITMAP,
|
||||
0, 0, LR_LOADFROMFILE)
|
||||
);
|
||||
if (HBmp)
|
||||
|
@ -139,19 +139,19 @@ LRESULT CALLBACK MainWndProc(HWND HWnd, UINT Msg, WPARAM WParam,
|
|||
RECT RClient;
|
||||
GetClientRect(HWnd, &RClient);
|
||||
|
||||
HDC Hdc = reinterpret_cast<HDC>(WParam);
|
||||
HDC Hdc = reinterpret_cast<HDC>(WParam);
|
||||
SetStretchBltMode(Hdc, COLORONCOLOR);
|
||||
|
||||
|
||||
//
|
||||
// TODO: add palette handling code for
|
||||
// TODO: add palette handling code for
|
||||
// palettized displays (see Chapter 9)...
|
||||
//
|
||||
|
||||
// render the background image
|
||||
StretchBlt(Hdc, 0, 0,
|
||||
// render the background image
|
||||
StretchBlt(Hdc, 0, 0,
|
||||
RClient.right - RClient.left,
|
||||
RClient.bottom - RClient.top,
|
||||
HMemDC, 0, 0, bmp.bmWidth, bmp.bmHeight,
|
||||
HMemDC, 0, 0, bmp.bmWidth, bmp.bmHeight,
|
||||
SRCCOPY);
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue