-
Notifications
You must be signed in to change notification settings - Fork 5
/
ClipBord.cpp
103 lines (83 loc) · 2.17 KB
/
ClipBord.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*----------------------------------------------------------
ClipBordクラス
2002/11/16 (c)Keizi
----------------------------------------------------------*/
#include "stdafx.h"
#include "Charu3.h"
#include "ClipBord.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//---------------------------------------------------
//関数名 ClipBord
//機能 コンストラクタ
//---------------------------------------------------
CClipBord::CClipBord()
{
m_hParentWnd = NULL;
}
//---------------------------------------------------
//関数名 ~ClipBord
//機能 デストラクタ
//---------------------------------------------------
CClipBord::~CClipBord()
{
}
//---------------------------------------------------
//関数名 setClipboardText(const CString& sData)
//機能 クリップボードにテキストを設定
//---------------------------------------------------
BOOL CClipBord::setClipboardText(const TCHAR *szString)
{
HGLOBAL hMem;
int nStrLength=_tcsclen(szString)+1;
LPTSTR pPtr;
bool isRet = false;
UINT uFormat;
#ifdef _UNICODE
uFormat = CF_UNICODETEXT;
#else
uFormat = CF_TEXT;
#endif
if(!::OpenClipboard(m_hParentWnd)) return isRet;
hMem = ::GlobalAlloc(GHND,nStrLength * sizeof(WCHAR));
pPtr=(TCHAR *)::GlobalLock(hMem);
_tcscpy(pPtr,szString);
::GlobalUnlock(hMem);
::EmptyClipboard();
HANDLE hRet = ::SetClipboardData(uFormat,hMem);
::CloseClipboard();
OutputDebugString(_T("setClipboardText\n"));
isRet = true;
return isRet;
}
//---------------------------------------------------
//関数名 getClipboardText(CString& sData)
//機能 クリップボードのテキストを取得
//---------------------------------------------------
BOOL CClipBord::getClipboardText(CString& sData)
{
TCHAR *pPtr;
bool isRet = false;
UINT uFormat;
#ifdef _UNICODE
uFormat = CF_UNICODETEXT;
#else
uFormat = CF_TEXT;
#endif
if(::IsClipboardFormatAvailable(uFormat)==FALSE) return isRet;
if(!::OpenClipboard(m_hParentWnd)) return isRet;
HGLOBAL hGet=::GetClipboardData(uFormat);
if(!hGet) {
::CloseClipboard();
return isRet;
}
pPtr=(TCHAR *)::GlobalLock(hGet);
sData=pPtr;
::GlobalUnlock(hGet);
::CloseClipboard();
isRet = true;
return isRet;
}