!IS_DATA_SYNTHESIZED(pElement))
{
if (pElement->fGlobalHandle)
- UserDeleteObject(pElement->hData, otClipBoardData);
+ UserDeleteObject(pElement->hData, TYPE_CLIPDATA);
else if (pElement->fmt == CF_BITMAP || pElement->fmt == CF_PALETTE ||
pElement->fmt == CF_DSPBITMAP)
{
NULL,
NULL,
&hMem,
- otClipBoardData,
+ TYPE_CLIPDATA,
cjDataSize);
if (!pClipboardData)
{
/* Add the clipboard data */
IntAddFormatedData(pWinStaObj, CF_DIB, hMem, TRUE, TRUE);
+ /* Release the extra reference (UserCreateObject added 2 references) */
+ UserDereferenceObject(pClipboardData);
+
cleanup:
UserReleaseDC(NULL, hdc, FALSE);
}
if(!pDibEl->fGlobalHandle)
return;
- pMemObj = (PCLIPBOARDDATA)UserGetObject(gHandleTable, pDibEl->hData, otClipBoardData);
+ pMemObj = (PCLIPBOARDDATA)UserGetObject(gHandleTable, pDibEl->hData, TYPE_CLIPDATA);
if (!pMemObj)
return;
UserReleaseDC(NULL, hdc, FALSE);
if (pConvertedBmi)
- DIB_FreeConvertedBitmapInfo(pConvertedBmi, pBmi);
+ DIB_FreeConvertedBitmapInfo(pConvertedBmi, pBmi, -1);
}
VOID static NTAPI
PCLIPBOARDDATA pMemObj;
HANDLE hMem;
- pMemObj = (PCLIPBOARDDATA)UserCreateObject(gHandleTable, NULL, NULL, &hMem, otClipBoardData,
+ pMemObj = (PCLIPBOARDDATA)UserCreateObject(gHandleTable, NULL, NULL, &hMem, TYPE_CLIPDATA,
sizeof(CLIPBOARDDATA) + sizeof(LCID));
if (pMemObj)
{
pMemObj->cbData = sizeof(LCID);
*((LCID*)pMemObj->Data) = NtCurrentTeb()->CurrentLocale;
IntAddFormatedData(pWinStaObj, CF_LOCALE, hMem, TRUE, TRUE);
+
+ /* Release the extra reference (UserCreateObject added 2 references) */
+ UserDereferenceObject(pMemObj);
}
}
UserEnterExclusive();
/* Create Clipboard data object */
- pMemObj = UserCreateObject(gHandleTable, NULL, NULL, &hMem, otClipBoardData, sizeof(CLIPBOARDDATA) + cbData);
+ pMemObj = UserCreateObject(gHandleTable, NULL, NULL, &hMem, TYPE_CLIPDATA, sizeof(CLIPBOARDDATA) + cbData);
if (!pMemObj)
goto cleanup;
}
_SEH2_END;
+ /* Release the extra reference (UserCreateObject added 2 references) */
+ UserDereferenceObject(pMemObj);
+
/* If we failed to copy data, remove handle */
if (!pMemObj)
{
- UserDeleteObject(hMem, otClipBoardData);
+ UserDeleteObject(hMem, TYPE_CLIPDATA);
hMem = NULL;
}
UserEnterShared();
/* Get Clipboard data object */
- pMemObj = (PCLIPBOARDDATA)UserGetObject(gHandleTable, hMem, otClipBoardData);
+ pMemObj = (PCLIPBOARDDATA)UserGetObject(gHandleTable, hMem, TYPE_CLIPDATA);
if (!pMemObj)
{
Status = STATUS_INVALID_HANDLE;