updated win32 clipboard to match new model.
This commit is contained in:
parent
f5a6d2738a
commit
8cb0302665
|
@ -18,44 +18,23 @@ CMSWindowsClipboard::~CMSWindowsClipboard()
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CMSWindowsClipboard::open(Time time)
|
bool CMSWindowsClipboard::empty()
|
||||||
{
|
{
|
||||||
log((CLOG_DEBUG "open clipboard"));
|
log((CLOG_DEBUG "empty clipboard"));
|
||||||
|
|
||||||
if (!OpenClipboard(m_window)) {
|
if (!EmptyClipboard()) {
|
||||||
log((CLOG_WARN "failed to open clipboard"));
|
log((CLOG_DEBUG "failed to grab clipboard"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (EmptyClipboard()) {
|
|
||||||
log((CLOG_DEBUG "grabbed clipboard"));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
log((CLOG_WARN "failed to grab clipboard"));
|
|
||||||
CloseClipboard();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_time = time;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMSWindowsClipboard::close()
|
|
||||||
{
|
|
||||||
log((CLOG_DEBUG "close clipboard"));
|
|
||||||
CloseClipboard();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMSWindowsClipboard::add(
|
void CMSWindowsClipboard::add(
|
||||||
EFormat format, const CString& data)
|
EFormat format, const CString& data)
|
||||||
{
|
{
|
||||||
log((CLOG_DEBUG "add %d bytes to clipboard format: %d", data.size(), format));
|
log((CLOG_DEBUG "add %d bytes to clipboard format: %d", data.size(), format));
|
||||||
|
|
||||||
if (!OpenClipboard(m_window)) {
|
|
||||||
log((CLOG_WARN "failed to open clipboard"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// convert data to win32 required form
|
// convert data to win32 required form
|
||||||
const UINT win32Format = convertFormatToWin32(format);
|
const UINT win32Format = convertFormatToWin32(format);
|
||||||
HANDLE win32Data;
|
HANDLE win32Data;
|
||||||
|
@ -73,8 +52,25 @@ void CMSWindowsClipboard::add(
|
||||||
if (win32Data != NULL) {
|
if (win32Data != NULL) {
|
||||||
SetClipboardData(win32Format, win32Data);
|
SetClipboardData(win32Format, win32Data);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// done with clipboard
|
bool CMSWindowsClipboard::open(Time time) const
|
||||||
|
{
|
||||||
|
log((CLOG_DEBUG "open clipboard"));
|
||||||
|
|
||||||
|
if (!OpenClipboard(m_window)) {
|
||||||
|
log((CLOG_WARN "failed to open clipboard"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_time = time;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMSWindowsClipboard::close() const
|
||||||
|
{
|
||||||
|
log((CLOG_DEBUG "close clipboard"));
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,11 +92,6 @@ CString CMSWindowsClipboard::get(EFormat format) const
|
||||||
if (win32Format == 0)
|
if (win32Format == 0)
|
||||||
return CString();
|
return CString();
|
||||||
|
|
||||||
if (!OpenClipboard(m_window)) {
|
|
||||||
log((CLOG_WARN "failed to open clipboard"));
|
|
||||||
return CString();
|
|
||||||
}
|
|
||||||
|
|
||||||
// get a handle to the clipboard data and convert it
|
// get a handle to the clipboard data and convert it
|
||||||
HANDLE win32Data = GetClipboardData(win32Format);
|
HANDLE win32Data = GetClipboardData(win32Format);
|
||||||
CString data;
|
CString data;
|
||||||
|
@ -112,9 +103,6 @@ CString CMSWindowsClipboard::get(EFormat format) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// close the clipboard
|
|
||||||
CloseClipboard();
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,9 +10,10 @@ public:
|
||||||
virtual ~CMSWindowsClipboard();
|
virtual ~CMSWindowsClipboard();
|
||||||
|
|
||||||
// IClipboard overrides
|
// IClipboard overrides
|
||||||
virtual bool open(Time);
|
virtual bool empty();
|
||||||
virtual void close();
|
|
||||||
virtual void add(EFormat, const CString& data);
|
virtual void add(EFormat, const CString& data);
|
||||||
|
virtual bool open(Time) const;
|
||||||
|
virtual void close() const;
|
||||||
virtual Time getTime() const;
|
virtual Time getTime() const;
|
||||||
virtual bool has(EFormat) const;
|
virtual bool has(EFormat) const;
|
||||||
virtual CString get(EFormat) const;
|
virtual CString get(EFormat) const;
|
||||||
|
@ -24,7 +25,7 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
HWND m_window;
|
HWND m_window;
|
||||||
Time m_time;
|
mutable Time m_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue