private MultiRectArea decodeComplexRgn(long hRgn, int dx, int dy) {
int nBytes = win32.GetRegionData(hRgn, 0, 0);
Int8Pointer rgnDataPtr = bridge.createInt8Pointer(nBytes, false);
win32.GetRegionData(hRgn, nBytes, rgnDataPtr.lock());
rgnDataPtr.unlock();
Win32.RGNDATA rgnData = win32.createRGNDATA(rgnDataPtr);
Win32.RGNDATAHEADER rdh = rgnData.get_rdh();
Int8Pointer bufferPtr = rgnData.get_Buffer();
int nCount = rdh.get_nCount();