|
1
|
1 #pragma once
|
|
|
2
|
|
|
3 namespace ClipboardHelper {
|
|
|
4
|
|
|
5 class OpenScope {
|
|
|
6 public:
|
|
|
7 OpenScope() : m_open(false) {}
|
|
|
8 ~OpenScope() {Close();}
|
|
|
9 void Open(HWND p_owner);
|
|
|
10 void Close();
|
|
|
11 private:
|
|
|
12 bool m_open;
|
|
|
13
|
|
|
14 PFC_CLASS_NOT_COPYABLE_EX(OpenScope)
|
|
|
15 };
|
|
|
16
|
|
|
17 void SetRaw(UINT format,const void * buffer, t_size size);
|
|
|
18 void SetString(const char * in);
|
|
|
19
|
|
|
20 bool GetString(pfc::string_base & out);
|
|
|
21
|
|
|
22 template<typename TArray>
|
|
|
23 bool GetRaw(UINT format,TArray & out) {
|
|
|
24 pfc::assert_byte_type<typename TArray::t_item>();
|
|
|
25 HANDLE data = GetClipboardData(format);
|
|
|
26 if (data == NULL) return false;
|
|
|
27 CGlobalLockScope lock(data);
|
|
|
28 out.set_size( lock.GetSize() );
|
|
|
29 memcpy(out.get_ptr(), lock.GetPtr(), lock.GetSize() );
|
|
|
30 return true;
|
|
|
31 }
|
|
|
32 bool IsTextAvailable();
|
|
|
33 };
|