Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 885 of file clipboard.c.
Referenced by NtUserSetClipboardData(), and SnapWindow().
{ HANDLE hRet = NULL; PWINSTATION_OBJECT pWinStaObj = NULL; pWinStaObj = IntGetWinStaForCbAccess(); if (!pWinStaObj) goto cleanup; /* If it's delayed rendering we don't have to open clipboard */ if ((pWinStaObj->fInDelayedRendering && pWinStaObj->spwndClipOwner->head.pti != PsGetCurrentThreadWin32Thread()) || !IntIsClipboardOpenByMe(pWinStaObj)) { ERR("Access denied!\n"); EngSetLastError(ERROR_CLIPBOARD_NOT_OPEN); goto cleanup; } if (scd->fIncSerialNumber) pWinStaObj->iClipSerialNumber++; /* Is it a delayed render? */ if (hData) { /* Is it a bitmap? */ if (fmt == CF_BITMAP) { /* Make bitmap public */ GreSetObjectOwner(hData, GDI_OBJ_HMGR_PUBLIC); } /* Save data in the clipboard */ IntAddFormatedData(pWinStaObj, fmt, hData, scd->fGlobalHandle, FALSE); TRACE("hData stored\n"); pWinStaObj->iClipSequenceNumber++; pWinStaObj->fClipboardChanged = TRUE; /* Note: Synthesized formats are added in NtUserCloseClipboard */ } else { /* This is a delayed render */ IntAddFormatedData(pWinStaObj, fmt, DATA_DELAYED, FALSE, FALSE); TRACE("SetClipboardData delayed format: %u\n", fmt); } /* Return hData on success */ hRet = hData; cleanup: TRACE("NtUserSetClipboardData returns: %p\n", hRet); if(pWinStaObj) ObDereferenceObject(pWinStaObj); return hRet; }