GetMem(rd, sizeof(TRGNDataHeader)+2*sizeof(TRect));
rd^.rdh.dwSize:=sizeof(TRGNDataHeader);
rd^.rdh.iType:=RDH_RECTANGLES;
rd^.rdh.nCount:=1;
rd^.rdh.nRgnSize:=0;
rd^.rdh.rcBound:=Rect(0,0,100,100);
TRect(pointer(dword(rd)+sizeof(TRGNDataHeader))^):=Rect(0,0,20,100);
rgn:=ExtCreateRegion(nil, sizeof(TRGNDataHeader)+sizeof(TRect), rd^);
ShowMessage(IntToStr(getLastError));
ShowMessage(BoolToStr(paintRGN(Canvas.Handle, rgn)));
ShowMessage(IntToStr(getLastError));
freeMem(rd);
deleteObject(rgn);
ShowMessage(IntToStr(getLastError));
создание региона
Вроде структуры TRGNData заполняю правильно, да и ExtCreateRegion ошибок не возвращает, а вот отрисовать, скомбинировать и т.д. не получается GetLastError возвращает 8 во 2 и 3 разы, в первый 0, PaintRgn возвращает -1 :(, но PaintRGN отрисовывает регион. Вопрос: почему getlastError возвращает ошибку?
Код: