GetXYFromDWord, HIBYTE, HIWORD, LOBYTE, LOWORD
GetXYFromDWord
Description
GetXYFromDWord(
LParam,
int *pPosX,
int *pPosY
);Creates pX and pY from the lParam parameter. It is the same as LOWORD(lParam), HIWORD(lParam), but in addition it handles +/- signs correctly.
Parameters
Examples: // LINE_PARALLEL example // This macro fetches offset of user drawn parallel line // Coordinates of reference line dword xStart = 100; dword yStart = 100; dword xEnd = 200; dword yEnd = 200; // Offset of drawn line dword result = 0; int distX = 0; int distY = 0; result = Int_DrawLine(LINE_PARALLEL, 255, 100, 100, 0, &xStart, &yStart, &xEnd, &yEnd, 1); // Get offset coordinates GetXYFromDWord(result, &distX, &distY);
HIBYTE
Description
HIBYTE(
word wParam
);This function extracts and returns the high-order byte from the 16-bit integer value specified by the wParam parameter.
HIWORD
Description
HIWORD(
dword IParam
);This function retrieves the high-order word from the 32-bit integer value specified by the lParam parameter.
LOBYTE
Description
LOBYTE(
dword wParam
);This function extracts and returns the low-order byte from the 16-bit integer value specified by the wParam parameter.
LOWORD
Description
LOWORD(
dword IParam
);This function extracts and returns the low-order word from the 32-bit integer value specified by the lParam parameter.
// LOBYTE,HIBYTE,LOWORD,HIWORD example - shows how to use these functions.
dword carry[100],i;
word p1,p2,p3,p4;
char buf[256];
Int_CreateTextWindow("API Example - LOBYTE,HIBYTE,LOWORD,HIWORD functions.",0,RGB(0,0,128),RGB_WHITE,100);
SetCommandText("Working...");
for(i=0;i<100;i=i+1)
carry[i] = (i/4)+((i/5)*256)+((i/6)*65536)+((i/7)*16777216);
Int_CreateWindow(1,"API Example",7,100,100,180,400,"",1,1,0.00000,0,1,0,"Arial,B,8");
for(i=0;i<100;i=i+1)
{
p1 = LOBYTE(LOWORD(carry[i]));
p2 = HIBYTE(LOWORD(carry[i]));
p3 = LOBYTE(HIWORD(carry[i]));
p4 = HIBYTE(HIWORD(carry[i]));
sprintf(buf," %i\t %i\t %i\t %i\n","p1,p2,p3,p4");
Int_SetWindowText(1,buf,1);
}
Int_CloseTextWindow();