ole32: OleFlushClipboard should render all formats to the clipboard.
This commit is contained in:
parent
9bacd00ce7
commit
18d413bb74
@ -1709,8 +1709,6 @@ HRESULT WINAPI OleGetClipboard(IDataObject **obj)
|
|||||||
*/
|
*/
|
||||||
HRESULT WINAPI OleFlushClipboard(void)
|
HRESULT WINAPI OleFlushClipboard(void)
|
||||||
{
|
{
|
||||||
IEnumFORMATETC* penumFormatetc = NULL;
|
|
||||||
FORMATETC rgelt;
|
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
ole_clipbrd *clipbrd;
|
ole_clipbrd *clipbrd;
|
||||||
HWND wnd;
|
HWND wnd;
|
||||||
@ -1728,38 +1726,12 @@ HRESULT WINAPI OleFlushClipboard(void)
|
|||||||
|
|
||||||
if (!OpenClipboard(wnd)) return CLIPBRD_E_CANT_OPEN;
|
if (!OpenClipboard(wnd)) return CLIPBRD_E_CANT_OPEN;
|
||||||
|
|
||||||
/*
|
SendMessageW(wnd, WM_RENDERALLFORMATS, 0, 0);
|
||||||
* Render all HGLOBAL formats supported by the source into
|
|
||||||
* the windows clipboard.
|
|
||||||
*/
|
|
||||||
if ( FAILED( hr = IDataObject_EnumFormatEtc( clipbrd->src_data,
|
|
||||||
DATADIR_GET,
|
|
||||||
&penumFormatetc) ))
|
|
||||||
goto end;
|
|
||||||
|
|
||||||
|
|
||||||
while ( S_OK == IEnumFORMATETC_Next(penumFormatetc, 1, &rgelt, NULL) )
|
|
||||||
{
|
|
||||||
if ( rgelt.tymed == TYMED_HGLOBAL )
|
|
||||||
{
|
|
||||||
CHAR szFmtName[80];
|
|
||||||
TRACE("(cfFormat=%d:%s)\n", rgelt.cfFormat,
|
|
||||||
GetClipboardFormatNameA(rgelt.cfFormat, szFmtName, sizeof(szFmtName)-1)
|
|
||||||
? szFmtName : "");
|
|
||||||
|
|
||||||
if ( FAILED(render_format( clipbrd->src_data, &rgelt )) )
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumFORMATETC_Release(penumFormatetc);
|
|
||||||
|
|
||||||
hr = set_dataobject_format(NULL);
|
hr = set_dataobject_format(NULL);
|
||||||
|
|
||||||
set_src_dataobject(clipbrd, NULL);
|
set_src_dataobject(clipbrd, NULL);
|
||||||
|
|
||||||
end:
|
|
||||||
|
|
||||||
if ( !CloseClipboard() ) hr = CLIPBRD_E_CANT_CLOSE;
|
if ( !CloseClipboard() ) hr = CLIPBRD_E_CANT_CLOSE;
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user