add last backwards-compatible version

This commit is contained in:
2021-12-14 00:33:46 -07:00
parent 68b10d413b
commit b0dd3f07f3
335 changed files with 4746 additions and 19627 deletions

View File

@@ -0,0 +1,47 @@
#pragma once
#ifdef FOOBAR2000_DESKTOP_WINDOWS
#include "win32_misc.h"
namespace ClipboardHelper {
class OpenScope {
public:
OpenScope() : m_open(false) {}
~OpenScope() {Close();}
void Open(HWND p_owner) {
Close();
WIN32_OP(OpenClipboard(p_owner));
m_open = true;
}
void Close() {
if (m_open) {
m_open = false;
CloseClipboard();
}
}
private:
bool m_open;
PFC_CLASS_NOT_COPYABLE_EX(OpenScope)
};
void SetRaw(UINT format,const void * buffer, t_size size);
void SetString(const char * in);
bool GetString(pfc::string_base & out);
template<typename TArray>
bool GetRaw(UINT format,TArray & out) {
pfc::assert_byte_type<typename TArray::t_item>();
HANDLE data = GetClipboardData(format);
if (data == NULL) return false;
CGlobalLockScope lock(data);
out.set_size( lock.GetSize() );
memcpy(out.get_ptr(), lock.GetPtr(), lock.GetSize() );
return true;
}
bool IsTextAvailable();
};
#endif // FOOBAR2000_DESKTOP_WINDOWS