205 |
} |
} |
206 |
|
|
207 |
|
|
208 |
static void |
static gpgme_error_t |
209 |
set_clip_text(wchar_t *data, size_t size) |
set_clip_text(wchar_t *data, size_t size) |
210 |
{ |
{ |
211 |
OpenClipboard(NULL); |
if (!OpenClipboard(NULL)) |
212 |
HANDLE cb = GlobalAlloc(GHND, size * sizeof(wchar_t)); |
return gpg_error(GPG_ERR_INTERNAL); |
213 |
|
|
214 |
|
HANDLE cb = GlobalAlloc(GHND, size * sizeof(wchar_t)); |
215 |
wchar_t *ptr = (wchar_t*)GlobalLock(cb); |
wchar_t *ptr = (wchar_t*)GlobalLock(cb); |
216 |
EmptyClipboard(); |
if (ptr != NULL) { |
217 |
memcpy(ptr, data, size * sizeof(wchar_t)); |
EmptyClipboard(); |
218 |
SetClipboardData(CF_UNICODETEXT, cb); |
memcpy(ptr, data, size * sizeof(wchar_t)); |
219 |
GlobalUnlock(ptr); |
SetClipboardData(CF_UNICODETEXT, cb); |
220 |
|
GlobalUnlock(ptr); |
221 |
|
} |
222 |
CloseClipboard(); |
CloseClipboard(); |
223 |
GlobalFree(cb); |
GlobalFree(cb); |
224 |
|
return gpg_error(GPG_ERR_NO_ERROR); |
225 |
} |
} |
226 |
|
|
227 |
|
|
228 |
/* Set the new clipboard data to @data. */ |
/* Set the new clipboard data to @data. */ |
229 |
static void |
static gpgme_error_t |
230 |
set_w32_clip_text (const char *data, int size) |
set_w32_clip_text (const char *data, int size) |
231 |
{ |
{ |
232 |
HANDLE cb; |
HANDLE cb; |
233 |
char *private_data; |
char *private_data; |
234 |
|
|
235 |
if (!OpenClipboard(NULL)) |
if (!OpenClipboard(NULL)) |
236 |
return; |
return gpg_error(GPG_ERR_INTERNAL); |
237 |
cb = GlobalAlloc (GHND, size+1); |
cb = GlobalAlloc (GHND, size+1); |
238 |
if (!cb) |
if (!cb) |
239 |
BUG (NULL); |
BUG (NULL); |
248 |
|
|
249 |
CloseClipboard (); |
CloseClipboard (); |
250 |
GlobalFree (cb); |
GlobalFree (cb); |
251 |
|
return gpg_error(GPG_ERR_NO_ERROR); |
252 |
} |
} |
253 |
|
|
254 |
|
|