Current News Archived News Search News Discussion Forum Old Forum Install Programs More Downloads... Troubleshooting Source Code Format Specs. Misc. Information Non-SF Stuff Links Small banner for links to this site: |
diff --git a/grpapi/grpapi.cpp b/grpapi/grpapi.cpp
--- a/grpapi/grpapi.cpp
+++ b/grpapi/grpapi.cpp
@@ -233,7 +233,8 @@ BOOL GRPAPI WINAPI DrawGrp(HANDLE hGrp, HDC hdcDest, int nXDest, int nYDest, WOR
FrameSize = j;\r
}\r
}\r
- if (FrameSize == 0xFFFFFF) {\r
+ if (FrameSize == 0xFFFFFF || FrameSize == GrpFrame->Width * GrpFrame->Height) {\r
+ FrameSize = 0xFFFFFF;\r
for (i = 0; i + 1 < GrpFile->nFrames; i++) {\r
j = GrpFrames[i].Offset - GrpFrames[0].Offset;\r
if (j > 0 && j < FrameSize)\r
return TRUE;\r
}\r
\r
+BOOL GRPAPI WINAPI GetGrpFrameInfo(HANDLE hGrp, WORD nFrame, DWORD *nLeft, DWORD *nTop, DWORD *nWidth, DWORD *nHeight)\r
+{\r
+ if (!hGrp || hGrp==INVALID_HANDLE_VALUE) return FALSE;\r
+ FRAMEHEADER *GrpFrame = &((FRAMEHEADER *)(((char *)hGrp)+6))[nFrame];\r
+\r
+ if (nLeft) *nLeft = GrpFrame->Left;\r
+ if (nTop) *nTop = GrpFrame->Top;\r
+ if (nWidth) *nWidth = GrpFrame->Width;\r
+ if (nHeight) *nHeight = GrpFrame->Height;\r
+\r
+ return TRUE;\r
+}\r
+\r
void GRPAPI WINAPI SetFunctionGetPixel(GETPIXELPROC lpGetPixelProc)\r
{\r
if (!lpGetPixelProc)\r
@@ -472,6 +486,7 @@ HANDLE GRPAPI WINAPI CreateGrp(signed short *lpImageData, WORD nFrames, WORD wMa
GrpHeader.wMaxHeight = wMaxHeight;\r
lpFrameHeaders = (FRAMEHEADER *)malloc(nFrames * sizeof(FRAMEHEADER));\r
lpFrameData = (FRAMEDATA *)malloc(nFrames * sizeof(FRAMEDATA));\r
+ nLastOffset = sizeof(GRPHEADER) + nFrames * sizeof(FRAMEHEADER);\r
\r
for (i = 0; i < nFrames; i++) {\r
// Search for duplicate frames\r
|