mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 21:05:43 +00:00
[CLIPBRD]
Handle WM_PALETTECHANGED and WM_QUERYNEWPALETTE: realizes any palette found on the clipboard, if there is any, if it receives one of those messages. svn path=/trunk/; revision=70329
This commit is contained in:
parent
1153d6397c
commit
e19711eebf
3 changed files with 75 additions and 0 deletions
|
@ -407,6 +407,30 @@ static LRESULT WINAPI MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case WM_QUERYNEWPALETTE:
|
||||||
|
{
|
||||||
|
if (RealizeClipboardPalette(hWnd) != GDI_ERROR)
|
||||||
|
{
|
||||||
|
InvalidateRect(hWnd, NULL, TRUE);
|
||||||
|
UpdateWindow(hWnd);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
case WM_PALETTECHANGED:
|
||||||
|
{
|
||||||
|
if ((HWND)wParam != hWnd)
|
||||||
|
{
|
||||||
|
if (RealizeClipboardPalette(hWnd) != GDI_ERROR)
|
||||||
|
{
|
||||||
|
InvalidateRect(hWnd, NULL, TRUE);
|
||||||
|
UpdateWindow(hWnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||||
|
|
|
@ -156,3 +156,53 @@ void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect)
|
||||||
hEmf = GetClipboardData(CF_ENHMETAFILE);
|
hEmf = GetClipboardData(CF_ENHMETAFILE);
|
||||||
PlayEnhMetaFile(hdc, hEmf, lpRect);
|
PlayEnhMetaFile(hdc, hEmf, lpRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UINT RealizeClipboardPalette(HWND hWnd)
|
||||||
|
{
|
||||||
|
HPALETTE hPalette;
|
||||||
|
HPALETTE hOldPalette;
|
||||||
|
UINT uResult;
|
||||||
|
HDC hDevContext;
|
||||||
|
|
||||||
|
if (!OpenClipboard(NULL))
|
||||||
|
{
|
||||||
|
return GDI_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsClipboardFormatAvailable(CF_PALETTE))
|
||||||
|
{
|
||||||
|
CloseClipboard();
|
||||||
|
return GDI_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
hPalette = GetClipboardData(CF_PALETTE);
|
||||||
|
if (!hPalette)
|
||||||
|
{
|
||||||
|
CloseClipboard();
|
||||||
|
return GDI_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
hDevContext = GetDC(hWnd);
|
||||||
|
if (!hDevContext)
|
||||||
|
{
|
||||||
|
CloseClipboard();
|
||||||
|
return GDI_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
hOldPalette = SelectPalette(hDevContext, hPalette, FALSE);
|
||||||
|
if (!hOldPalette)
|
||||||
|
{
|
||||||
|
ReleaseDC(hWnd, hDevContext);
|
||||||
|
CloseClipboard();
|
||||||
|
return GDI_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
uResult = RealizePalette(hDevContext);
|
||||||
|
|
||||||
|
SelectPalette(hDevContext, hOldPalette, FALSE);
|
||||||
|
ReleaseDC(hWnd, hDevContext);
|
||||||
|
|
||||||
|
CloseClipboard();
|
||||||
|
|
||||||
|
PlayEnhMetaFile(hdc, hEmf, lpRect);
|
||||||
|
}
|
||||||
|
|
|
@ -15,3 +15,4 @@ void BitBltFromClipboard(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
|
||||||
void SetDIBitsToDeviceFromClipboard(UINT uFormat, HDC hdc, int XDest, int YDest, int XSrc, int YSrc, UINT uStartScan, UINT fuColorUse);
|
void SetDIBitsToDeviceFromClipboard(UINT uFormat, HDC hdc, int XDest, int YDest, int XSrc, int YSrc, UINT uStartScan, UINT fuColorUse);
|
||||||
void PlayMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
void PlayMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
||||||
void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
void PlayEnhMetaFileFromClipboard(HDC hdc, const RECT *lpRect);
|
||||||
|
UINT RealizeClipboardPalette(HWND hWnd);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue