谁能帮我解释下 下面这个程序中LPBYTE LPDWORD是在哪里定义过的?
#include <windows.h>
#include <stdio.h>
void main()
{
int nSize;
LPBYTE lpBuf1, lpBuf2;
LPDWORD lpdw1,lpdw2;
char * lpBufOut;
DWORD RGB1,RGB2,RGB3;
HFILE hFile1, hFile2, hFileOut;
LPBITMAPINFO lpInfo;
HDC hDC;
int i;
unsigned char r1,g1,b1;
hFile1 = _lopen("d://1.bmp",OF_READ);
hFile2 = _lopen("d://2.bmp",OF_READ);
hFileOut =_lcreat("d://out.bmp",0);
nSize = GetFileSize((HANDLE) hFile1, NULL);
lpBuf1 =(unsigned char *) LocalAlloc(LPTR, nSize);
lpBuf2 = (unsigned char *)LocalAlloc(LPTR, nSize);
lpBufOut =(char *) LocalAlloc(LPTR, nSize);
_lread(hFile1, lpBuf1, nSize);
_lread(hFile2, lpBuf2, nSize);
memcpy(lpBufOut, lpBuf1, 54);
for(i=0;i<640*480;i++)
{ lpdw1=(LPDWORD)(lpBuf1+54+i*4);
lpdw2=(LPDWORD)(lpBuf2+54+i*4);
RGB1=lpdw1[0];RGB2=lpdw2[0];
r1=(((RGB1>>16)&0xff)+((RGB2>>16)&0xff))/2;
g1=(((RGB1>>8)&0xff)+((RGB2>>8)&0xff))/2;
b1=((RGB1&0xff)+(RGB2&0xff))/2;
RGB1=(r1<<16)|(g1<<8)|b1;
lpdw2=(LPDWORD)(lpBufOut+54+i*4);
lpdw2[0]=RGB1;
}
_lwrite(hFileOut, lpBufOut, nSize);
_lclose(hFile1);
_lclose(hFile2);
_lclose(hFileOut);
lpInfo =(LPBITMAPINFO)(lpBuf1+ 0X0e);
hDC =GetDC(NULL);
SetDIBitsToDevice(hDC, 200, 200, 640, 480, 0, 0, 0, 480, lpBufOut+ 0x36, lpInfo, DIB_RGB_COLORS);
ReleaseDC(NULL,hDC);
LocalFree(lpBuf1);
}