Changeset 27955 in vbox for trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxSeamless.cpp
- Timestamp:
- Apr 2, 2010 9:12:26 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 59659
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxSeamless.cpp
r26562 r27955 38 38 BOOL (* pfnVBoxRemoveHook)(); 39 39 40 LPRGNDATA lpRgnData;40 PVBOXDISPIFESCAPE lpEscapeData; 41 41 } VBOXSEAMLESSCONTEXT; 42 42 … … 144 144 gCtx.pfnVBoxRemoveHook(); 145 145 146 if (gCtx.lp RgnData)147 { 148 free(gCtx.lp RgnData);149 gCtx.lp RgnData = NULL;146 if (gCtx.lpEscapeData) 147 { 148 free(gCtx.lpEscapeData); 149 gCtx.lpEscapeData = NULL; 150 150 } 151 151 } … … 238 238 if (cbSize) 239 239 { 240 LPRGNDATA lpRgnData = (LPRGNDATA)malloc(cbSize); 241 if (lpRgnData) 242 { 240 PVBOXDISPIFESCAPE lpEscapeData = (PVBOXDISPIFESCAPE)malloc(VBOXDISPIFESCAPE_SIZE(cbSize)); 241 if (lpEscapeData) 242 { 243 lpEscapeData->escapeCode = VBOXESC_SETVISIBLEREGION; 244 LPRGNDATA lpRgnData = VBOXDISPIFESCAPE_DATA(lpEscapeData, RGNDATA); 243 245 memset(lpRgnData, 0, cbSize); 244 246 cbSize = GetRegionData(param.hrgn, cbSize, lpRgnData); … … 254 256 } 255 257 #endif 256 if ( !gCtx.lpRgnData 257 || (gCtx.lpRgnData->rdh.dwSize + gCtx.lpRgnData->rdh.nRgnSize != cbSize) 258 || memcmp(gCtx.lpRgnData, lpRgnData, cbSize)) 258 LPRGNDATA lpCtxRgnData = VBOXDISPIFESCAPE_DATA(gCtx.lpEscapeData, RGNDATA); 259 if ( !gCtx.lpEscapeData 260 || (lpCtxRgnData->rdh.dwSize + lpCtxRgnData->rdh.nRgnSize != cbSize) 261 || memcmp(lpCtxRgnData, lpRgnData, cbSize)) 259 262 { 260 263 /* send to display driver */ 261 ExtEscape(param.hdc, VBOXESC_SETVISIBLEREGION, cbSize, (LPCSTR)lpRgnData, 0, NULL);262 263 if (gCtx.lp RgnData)264 free(gCtx.lp RgnData);265 gCtx.lp RgnData = lpRgnData;264 VBoxDispIfEscape(&gCtx.pEnv->dispIf, lpEscapeData, cbSize); 265 266 if (gCtx.lpEscapeData) 267 free(gCtx.lpEscapeData); 268 gCtx.lpEscapeData = lpEscapeData; 266 269 } 267 270 else 268 271 Log(("Visible rectangles haven't changed; ignore\n")); 269 272 } 270 if (lp RgnData != gCtx.lpRgnData)271 free(lp RgnData);273 if (lpEscapeData != gCtx.lpEscapeData) 274 free(lpEscapeData); 272 275 } 273 276 }
Note:
See TracChangeset
for help on using the changeset viewer.