• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Pasteboard
2
3
4## 概述
5
6系统剪贴板支持复制和粘贴多种类型的数据。 可以使用此模块接口操作纯文本、HTML、URI、像素图片等其他类型的数据。
7
8**起始版本:** 13
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [oh_pasteboard.h](oh__pasteboard_8h.md) | 提供访问系统剪贴板的接口、数据结构、枚举类型。 |
19| [oh_pasteboard_err_code.h](oh__pasteboard__err__code_8h.md) | 声明剪贴板框架错误码信息。 |
20
21
22### 类型定义
23
24| 名称 | 描述 |
25| -------- | -------- |
26| typedef enum [Pasteboard_NotifyType](#pasteboard_notifytype) [Pasteboard_NotifyType](#pasteboard_notifytype) | 剪贴板的数据变更类型。  |
27| typedef void(\* [Pasteboard_Notify](#pasteboard_notify)) (void \*context, [Pasteboard_NotifyType](#pasteboard_notifytype) type) | 定义剪贴板内容变更时触发的回调函数。  |
28| typedef void(\* [Pasteboard_Finalize](#pasteboard_finalize)) (void \*context) | 定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。  |
29| typedef struct [OH_PasteboardObserver](#oh_pasteboardobserver) [OH_PasteboardObserver](#oh_pasteboardobserver) | 定义剪贴板数据变更观察者。  |
30| typedef struct [OH_Pasteboard](#oh_pasteboard) [OH_Pasteboard](#oh_pasteboard) | 定义剪贴板对象,用以操作系统剪贴板。  |
31| typedef enum [PASTEBOARD_ErrCode](#pasteboard_errcode) [PASTEBOARD_ErrCode](#pasteboard_errcode) | 错误码信息。  |
32| typedef enum [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) | 定义文件拷贝冲突时的选项。 |
33| typedef enum [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) | 定义进度条指示选项,可选择是否采用系统默认进度显示。 |
34| typedef struct [Pasteboard_ProgressInfo](#pasteboard_progressinfo) [Pasteboard_ProgressInfo](#pasteboard_progressinfo) | 定义进度上报的数据结构。且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为PASTEBOARD_NONE时才会上报此信息。 |
35| typedef void (* [OH_Pasteboard_ProgressListener](#oh_pasteboard_progresslistener))([Pasteboard_ProgressInfo](#pasteboard_progressinfo)* progressInfo) | 定义获取进度数据的回调函数,当选择不使用系统默认进度显示时,可设置该项获取粘贴过程的进度。 |
36| typedef struct [Pasteboard_GetDataParams](#pasteboard_getdataparams) [Pasteboard_GetDataParams](#pasteboard_getdataparams) | 获取剪贴板数据支持进度提示时需要设置的参数,包含进度条指示选项、目标文件路径、文件冲突选项等。 |
37
38
39### 枚举
40
41| 名称 | 描述 |
42| -------- | -------- |
43| [Pasteboard_NotifyType](#pasteboard_notifytype) { NOTIFY_LOCAL_DATA_CHANGE = 1, NOTIFY_REMOTE_DATA_CHANGE = 2 } | 剪贴板的数据变更类型。  |
44| [PASTEBOARD_ErrCode](#pasteboard_errcode) {<br/>ERR_OK = 0, ERR_PERMISSION_ERROR = 201, ERR_INVALID_PARAMETER = 401, ERR_DEVICE_NOT_SUPPORTED = 801,<br/>ERR_INNER_ERROR = 12900000, ERR_BUSY = 12900003, ERR_PASTEBOARD_COPY_FILE_ERROR = 12900007, ERR_PASTEBOARD_PROGRESS_START_ERROR = 12900008, ERR_PASTEBOARD_PROGRESS_ABNORMAL = 12900009, ERR_PASTEBOARD_GET_DATA_FAILED = 12900010,<br/>} | 错误码信息。  |
45| [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) { PASTEBOARD_OVERWRITE = 0, PASTEBOARD_SKIP = 1} | 拷贝文件文件冲突时的选项。 |
46| [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) { PASTEBOARD_NONE = 0, PASTEBOARD_DEFAULT = 1 } | 从剪贴板获取数据时的进度条类型。 |
47
48
49### 函数
50
51| 名称 | 描述 |
52| -------- | -------- |
53| [OH_PasteboardObserver](#oh_pasteboardobserver) \* [OH_PasteboardObserver_Create](#oh_pasteboardobserver_create) () | 创建一个剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)指针及实例对象。  |
54| int [OH_PasteboardObserver_Destroy](#oh_pasteboardobserver_destroy) ([OH_PasteboardObserver](#oh_pasteboardobserver) \*observer) | 销毁剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)指针指向的实例对象。  |
55| int [OH_PasteboardObserver_SetData](#oh_pasteboardobserver_setdata) ([OH_PasteboardObserver](#oh_pasteboardobserver) \*observer, void \*context, const [Pasteboard_Notify](#pasteboard_notify) callback, const [Pasteboard_Finalize](#pasteboard_finalize) finalize) | 向剪贴板数据变更观察者设置回调函数。  |
56| [OH_Pasteboard](#oh_pasteboard) \* [OH_Pasteboard_Create](#oh_pasteboard_create) () | 创建剪贴板[OH_Pasteboard](#oh_pasteboard)指针及实例对象。  |
57| void [OH_Pasteboard_Destroy](#oh_pasteboard_destroy) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard) | 销毁剪贴板[OH_Pasteboard](#oh_pasteboard)实例对象。  |
58| int [OH_Pasteboard_Subscribe](#oh_pasteboard_subscribe) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, int type, const [OH_PasteboardObserver](#oh_pasteboardobserver) \*observer) | 订阅剪贴板的数据变更事件。  |
59| int [OH_Pasteboard_Unsubscribe](#oh_pasteboard_unsubscribe) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, int type, const [OH_PasteboardObserver](#oh_pasteboardobserver) \*observer) | 取消对剪贴板数据变更事件的订阅。  |
60| bool [OH_Pasteboard_IsRemoteData](#oh_pasteboard_isremotedata) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard) | 判断剪贴板中的数据是否来自远端设备。  |
61| int [OH_Pasteboard_GetDataSource](#oh_pasteboard_getdatasource) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, char \*source, unsigned int len) | 获取剪贴板中数据的数据源。  |
62| bool [OH_Pasteboard_HasType](#oh_pasteboard_hastype) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, const char \*type) | 判断剪贴板中是否有指定类型的数据。  |
63| bool [OH_Pasteboard_HasData](#oh_pasteboard_hasdata) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard) | 判断剪贴板中是否有数据。  |
64| OH_UdmfData \* [OH_Pasteboard_GetData](#oh_pasteboard_getdata) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, int \*status) | 获取剪贴板中的数据。  |
65| int [OH_Pasteboard_SetData](#oh_pasteboard_setdata) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, OH_UdmfData \*data) | 将统一数据对象数据写入剪贴板。  |
66| int [OH_Pasteboard_ClearData](#oh_pasteboard_cleardata) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard) | 清空剪贴板中的数据。  |
67| char ** [OH_Pasteboard_GetMimeTypes](#oh_pasteboard_getmimetypes) ([OH_Pasteboard](#oh_pasteboard) \*pasteboard, unsigned int *count) | 获取剪切板中的MIME类型。  |
68| [Pasteboard_GetDataParams](#pasteboard_getdataparams) *[OH_Pasteboard_GetDataParams_Create](#oh_pasteboard_getdataparams_create)(void) | 创建剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)指针及实例对象。 |
69| void [OH_Pasteboard_GetDataParams_Destroy](#oh_pasteboard_getdataparams_destroy)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params) | 销毁剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)实例对象。 |
70| void [OH_Pasteboard_GetDataParams_SetProgressIndicator](#oh_pasteboard_getdataparams_setprogressindicator)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params, [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) progressIndicator) | 向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置进度条指示选项,可选择是否采用系统默认进度显示。 |
71| void [OH_Pasteboard_GetDataParams_SetDestUri](#oh_pasteboard_getdataparams_setdesturi)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params, const char* destUri, uint32_t destUriLen) | 向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置目标路径。 |
72| void [OH_Pasteboard_GetDataParams_SetFileConflictOptions](#oh_pasteboard_getdataparams_setfileconflictoptions)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params, [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) option) | 向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置文件拷贝冲突选项。 |
73| void [OH_Pasteboard_GetDataParams_SetProgressListener](#oh_pasteboard_getdataparams_setprogresslistener)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params, const [OH_Pasteboard_ProgressListener](#oh_pasteboard_progresslistener) listener) | 向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置进度上报回调函数。 |
74| int [OH_Pasteboard_ProgressInfo_GetProgress](#oh_pasteboard_progressinfo_getprogress)([Pasteboard_ProgressInfo](#pasteboard_progressinfo)* progressInfo) | 通过[Pasteboard_ProgressInfo](#pasteboard_progressinfo)获取粘贴进度。 |
75| void [OH_Pasteboard_ProgressCancel](#oh_pasteboard_progresscancel)([Pasteboard_GetDataParams](#pasteboard_getdataparams)* params) | 通过[Pasteboard_GetDataParams](#pasteboard_getdataparams)取消正在进行的拷贝粘贴任务。 |
76| OH_UdmfData* [OH_Pasteboard_GetDataWithProgress](#oh_pasteboard_getdatawithprogress)([OH_Pasteboard](#oh_pasteboard)* pasteboard, [Pasteboard_GetDataParams](#pasteboard_getdataparams)* params, int* status) | 获取剪贴板的数据以及粘贴进度,不支持对文件夹的拷贝。 |
77
78
79## 类型定义说明
80
81
82### OH_Pasteboard
83
84```
85typedef struct OH_Pasteboard OH_Pasteboard
86```
87**描述:**
88
89定义剪贴板对象,用以操作系统剪贴板。
90
91**起始版本:** 13
92
93
94### OH_PasteboardObserver
95
96```
97typedef struct OH_PasteboardObserver OH_PasteboardObserver
98```
99**描述:**
100
101定义剪贴板数据变更观察者。
102
103**起始版本:** 13
104
105
106### PASTEBOARD_ErrCode
107
108```
109typedef enum PASTEBOARD_ErrCode PASTEBOARD_ErrCode
110```
111**描述:**
112
113错误码信息。
114
115**起始版本:** 13
116
117
118### Pasteboard_Finalize
119
120```
121typedef void(* Pasteboard_Finalize) (void *context)
122```
123**描述:**
124
125定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。
126
127**起始版本:** 13
128
129**参数:**
130
131| 名称 | 描述 |
132| -------- | -------- |
133| context | 要释放的上下文指针。  |
134
135
136### Pasteboard_Notify
137
138```
139typedef void(* Pasteboard_Notify) (void *context, Pasteboard_NotifyType type)
140```
141**描述:**
142
143定义剪贴板内容变更时触发的回调函数。
144
145**起始版本:** 13
146
147**参数:**
148
149| 名称 | 描述 |
150| -------- | -------- |
151| context | 上下文信息,由函数[OH_PasteboardObserver_SetData](#oh_pasteboardobserver_setdata)传入。  |
152| type | 数据变更的类型。详见:[Pasteboard_NotifyType](#pasteboard_notifytype)。  |
153
154
155### Pasteboard_NotifyType
156
157```
158typedef enum Pasteboard_NotifyType Pasteboard_NotifyType
159```
160**描述:**
161
162剪贴板的数据变更类型。
163
164**起始版本:** 13
165
166### Pasteboard_FileConflictOptions
167
168```
169typedef enum Pasteboard_FileConflictOptions Pasteboard_FileConflictOptions
170```
171
172**描述:**
173
174定义文件拷贝冲突时的选项,默认为PASTEBOARD_OVERWRITE。
175
176**起始版本:** 15
177
178### Pasteboard_ProgressIndicator
179
180```
181typedef enum Pasteboard_ProgressIndicator Pasteboard_ProgressIndicator
182```
183
184**描述:**
185
186定义进度条指示选项,可选择是否采用系统默认进度显示。
187
188**起始版本:** 15
189
190### Pasteboard_ProgressInfo
191
192```
193typedef struct Pasteboard_ProgressInfo Pasteboard_ProgressInfo
194```
195
196**描述:**
197
198定义进度上报的数据结构,且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为NONE时才会上报此信息。
199
200**起始版本:** 15
201
202### OH_Pasteboard_ProgressListener
203
204```
205typedef void (*OH_Pasteboard_ProgressListener)(Pasteboard_ProgressInfo* progressInfo);
206```
207
208**描述:**
209
210用于在不使用系统默认进度显示时,通知应用拷贝粘贴任务进度。
211
212**起始版本:** 15
213
214**参数:**
215
216| 名称         | 类型                                                | 描述                                                         |
217| ------------ | --------------------------------------------------- | ------------------------------------------------------------ |
218| progressInfo | [Pasteboard_ProgressInfo](#pasteboard_progressinfo) | 定义进度上报的数据结构,且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为NONE时才会上报此信息。 |
219
220### Pasteboard_GetDataParams
221
222```
223typedef struct Pasteboard_GetDataParams Pasteboard_GetDataParams;
224```
225
226**描述:**
227
228获取剪贴板数据支持进度提示时需要设置的参数,包含进度条指示选项、目标文件路径、文件冲突选项等。
229
230**起始版本:** 15
231
232
233## 枚举类型说明
234
235
236### PASTEBOARD_ErrCode
237
238```
239enum PASTEBOARD_ErrCode
240```
241**描述:**
242
243错误码信息。
244
245**起始版本:** 13
246
247| 枚举值 | 描述 |
248| -------- | -------- |
249| ERR_OK  | 执行成功。  |
250| ERR_PERMISSION_ERROR  | 权限校验失败。  |
251| ERR_INVALID_PARAMETER  | 非法参数。  |
252| ERR_DEVICE_NOT_SUPPORTED  | 设备能力不支持。  |
253| ERR_INNER_ERROR  | 内部错误。  |
254| ERR_BUSY  | 系统忙。  |
255| ERR_PASTEBOARD_COPY_FILE_ERROR | 文件拷贝失败。 |
256| ERR_PASTEBOARD_PROGRESS_START_ERROR | 当应用使用系统提供的进度条时,创建进度条失败。 |
257| ERR_PASTEBOARD_PROGRESS_ABNORMAL | 当应用不使用剪贴板提供的进度条时,进度上报异常。 |
258| ERR_PASTEBOARD_GET_DATA_FAILED | 获取粘贴数据失败。 |
259
260
261### Pasteboard_NotifyType
262
263```
264enum Pasteboard_NotifyType
265```
266**描述:**
267
268剪贴板的数据变更类型。
269
270**起始版本:** 13
271
272| 枚举值 | 描述 |
273| -------- | -------- |
274| NOTIFY_LOCAL_DATA_CHANGE  | 本地设备剪贴板数据变更。  ||
275| NOTIFY_REMOTE_DATA_CHANGE  | 组网内的非本地设备剪贴板数据变更。  ||
276
277### Pasteboard_FileConflictOptions
278
279```
280enum Pasteboard_FileConflictOptions
281```
282
283**描述:**
284
285定义拷贝文件文件冲突时的选项。
286
287**起始版本:** 15
288
289| 枚举值               | 描述                                                         |
290| -------------------- | ------------------------------------------------------------ |
291| PASTEBOARD_OVERWRITE | 目标路径存在同文件名时覆盖。                                 |
292| PASTEBOARD_SKIP      | 目标路径存在同文件名时跳过,若设置SKIP,应用获取到的粘贴数据不包含跳过文件。 |
293
294### Pasteboard_ProgressIndicator
295
296```
297enum Pasteboard_ProgressIndicator
298```
299
300**描述:**
301
302定义进度条指示选项,可选择是否采用系统默认进度显示。
303
304**起始版本:** 15
305
306| 枚举值             | 描述                     |
307| ------------------ | ------------------------ |
308| PASTEBOARD_NONE    | 不采用系统默认进度显示。 |
309| PASTEBOARD_DEFAULT | 采用系统默认进度显示。   |
310
311## 函数说明
312
313
314### OH_Pasteboard_ClearData()
315
316```
317int OH_Pasteboard_ClearData (OH_Pasteboard * pasteboard)
318```
319**描述:**
320
321清空剪贴板中的数据。
322
323**起始版本:** 13
324
325**参数:**
326
327| 名称 | 描述 |
328| -------- | -------- |
329| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
330
331**返回:**
332
333返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
334
335**参见:**
336
337[OH_Pasteboard](#oh_pasteboard)
338
339[PASTEBOARD_ErrCode](#pasteboard_errcode)
340
341
342### OH_Pasteboard_Create()
343
344```
345OH_Pasteboard* OH_Pasteboard_Create ()
346```
347**描述:**
348
349创建剪贴板[OH_Pasteboard](#oh_pasteboard)指针及实例对象。
350
351**起始版本:** 13
352
353**返回:**
354
355执行成功则返回一个指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例对象的指针,否则返回nulllptr。
356
357**参见:**
358
359[OH_Pasteboard](#oh_pasteboard)
360
361
362### OH_Pasteboard_Destroy()
363
364```
365void OH_Pasteboard_Destroy (OH_Pasteboard * pasteboard)
366```
367**描述:**
368
369销毁剪贴板[OH_Pasteboard](#oh_pasteboard)实例对象。
370
371**起始版本:** 13
372
373**参数:**
374
375| 名称 | 描述 |
376| -------- | -------- |
377| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
378
379**参见:**
380
381[OH_Pasteboard](#oh_pasteboard)
382
383
384### OH_Pasteboard_GetData()
385
386```
387OH_UdmfData* OH_Pasteboard_GetData (OH_Pasteboard * pasteboard, int * status )
388```
389**描述:**
390
391获取剪贴板中的数据。
392
393**起始版本:** 13
394
395**参数:**
396
397| 名称 | 描述 |
398| -------- | -------- |
399| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
400| status | 该参数是输出参数,表示执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。  |
401
402**返回:**
403
404执行成功时返回统一数据对象**OH_UdmfData**实例的指针。否则返回空指针。
405
406**参见:**
407
408[OH_Pasteboard](#oh_pasteboard)
409
410OH_UdmfData
411
412[PASTEBOARD_ErrCode](#pasteboard_errcode)
413
414
415### OH_Pasteboard_GetDataSource()
416
417```
418int OH_Pasteboard_GetDataSource (OH_Pasteboard * pasteboard, char * source, unsigned int len )
419```
420**描述:**
421
422获取剪贴板中数据的数据源。
423
424**起始版本:** 13
425
426**参数:**
427
428| 名称 | 描述 |
429| -------- | -------- |
430| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
431| source | 该参数是输出参数,表示剪贴板中数据的数据源字符串。  |
432| len | 该参数是输出参数,表示数据源字符串的长度。  |
433
434**返回:**
435
436返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
437
438**参见:**
439
440[OH_Pasteboard](#oh_pasteboard)
441
442[PASTEBOARD_ErrCode](#pasteboard_errcode)
443
444
445### OH_Pasteboard_HasData()
446
447```
448bool OH_Pasteboard_HasData (OH_Pasteboard * pasteboard)
449```
450**描述:**
451
452判断剪贴板中是否有数据。
453
454**起始版本:** 13
455
456**参数:**
457
458| 名称 | 描述 |
459| -------- | -------- |
460| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
461
462**返回:**
463
464返回剪贴板中是否有数据。返回true表示剪贴板中有数据,返回false表示剪贴板中没有数据。
465
466**参见:**
467
468[OH_Pasteboard](#oh_pasteboard)
469
470
471### OH_Pasteboard_HasType()
472
473```
474bool OH_Pasteboard_HasType (OH_Pasteboard * pasteboard, const char * type )
475```
476**描述:**
477
478判断剪贴板中是否有指定类型的数据。
479
480**起始版本:** 13
481
482**参数:**
483
484| 名称 | 描述 |
485| -------- | -------- |
486| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
487| type | 表示要检查的数据类型。  |
488
489**返回:**
490
491返回剪贴板中是否有指定类型的数据。返回true表示剪贴板中包含指定类型的数据,返回false表示剪贴板中没有指定类型的数据。
492
493**参见:**
494
495[OH_Pasteboard](#oh_pasteboard)
496
497
498### OH_Pasteboard_IsRemoteData()
499
500```
501bool OH_Pasteboard_IsRemoteData (OH_Pasteboard * pasteboard)
502```
503**描述:**
504
505判断剪贴板中的数据是否来自远端设备。
506
507**起始版本:** 13
508
509**参数:**
510
511| 名称 | 描述 |
512| -------- | -------- |
513| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
514
515**返回:**
516
517返回剪贴板中的数据是否来自远端设备。返回true表示剪贴板中的数据来自远端设备,返回false表示剪贴板中数据来自本端设备。
518
519**参见:**
520
521[OH_Pasteboard](#oh_pasteboard)
522
523
524### OH_Pasteboard_SetData()
525
526```
527int OH_Pasteboard_SetData (OH_Pasteboard * pasteboard, OH_UdmfData * data )
528```
529**描述:**
530
531将统一数据对象数据写入剪贴板。
532
533**起始版本:** 13
534
535**参数:**
536
537| 名称 | 描述 |
538| -------- | -------- |
539| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
540| data | 表示指向统一数据对象**OH_UdmfData**实例的指针。  |
541
542**返回:**
543
544返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
545
546**参见:**
547
548[OH_Pasteboard](#oh_pasteboard)
549
550OH_UdmfData
551
552[PASTEBOARD_ErrCode](#pasteboard_errcode)
553
554
555### OH_Pasteboard_Subscribe()
556
557```
558int OH_Pasteboard_Subscribe (OH_Pasteboard * pasteboard, int type, const OH_PasteboardObserver * observer )
559```
560**描述:**
561
562订阅剪贴板的数据变更事件。
563
564**起始版本:** 13
565
566**参数:**
567
568| 名称 | 描述 |
569| -------- | -------- |
570| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
571| type | 表示订阅的剪贴板数据变更类型,详见:[Pasteboard_NotifyType](#pasteboard_notifytype)。  |
572| observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)实例的指针。 它指定了剪贴板数据变更时触发的回调函数,详见:[OH_PasteboardObserver](#oh_pasteboardobserver)。  |
573
574**返回:**
575
576返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
577
578**参见:**
579
580[OH_Pasteboard](#oh_pasteboard)
581
582[OH_PasteboardObserver](#oh_pasteboardobserver)
583
584[Pasteboard_NotifyType](#pasteboard_notifytype)
585
586[PASTEBOARD_ErrCode](#pasteboard_errcode)
587
588
589### OH_Pasteboard_Unsubscribe()
590
591```
592int OH_Pasteboard_Unsubscribe (OH_Pasteboard * pasteboard, int type, const OH_PasteboardObserver * observer )
593```
594**描述:**
595
596取消对剪贴板数据变更事件的订阅。
597
598**起始版本:** 13
599
600**参数:**
601
602| 名称 | 描述 |
603| -------- | -------- |
604| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。  |
605| type | 表示订阅的剪贴板数据变更类型,详见:[Pasteboard_NotifyType](#pasteboard_notifytype)。  |
606| observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)实例的指针。 它指定了剪贴板数据变更时触发的回调函数,详见:[OH_PasteboardObserver](#oh_pasteboardobserver)。  |
607
608**返回:**
609
610返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
611
612**参见:**
613
614[OH_Pasteboard](#oh_pasteboard)
615
616[OH_PasteboardObserver](#oh_pasteboardobserver)
617
618[Pasteboard_NotifyType](#pasteboard_notifytype)
619
620[PASTEBOARD_ErrCode](#pasteboard_errcode)
621
622
623### OH_PasteboardObserver_Create()
624
625```
626OH_PasteboardObserver* OH_PasteboardObserver_Create ()
627```
628**描述:**
629
630创建一个剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)指针及实例对象。
631
632**起始版本:** 13
633
634**返回:**
635
636执行成功时返回一个指向剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)实例对象的指针,否则返回空指针。 当不再需要使用指针时,请使用[OH_PasteboardObserver_Destroy](#oh_pasteboardobserver_destroy)销毁实例对象,否则会导致内存泄漏。
637
638**参见:**
639
640[OH_PasteboardObserver](#oh_pasteboardobserver)
641
642
643### OH_PasteboardObserver_Destroy()
644
645```
646int OH_PasteboardObserver_Destroy (OH_PasteboardObserver * observer)
647```
648**描述:**
649
650销毁剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)指针指向的实例对象。
651
652**起始版本:** 13
653
654**参数:**
655
656| 名称 | 描述 |
657| -------- | -------- |
658| observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)实例的指针。  |
659
660**返回:**
661
662返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
663
664**参见:**
665
666[OH_PasteboardObserver](#oh_pasteboardobserver)
667
668[PASTEBOARD_ErrCode](#pasteboard_errcode)
669
670
671### OH_PasteboardObserver_SetData()
672
673```
674int OH_PasteboardObserver_SetData (OH_PasteboardObserver * observer, void * context, const Pasteboard_Notify callback, const Pasteboard_Finalize finalize )
675```
676**描述:**
677
678向剪贴板数据变更观察者设置回调函数。
679
680**起始版本:** 13
681
682**参数:**
683
684| 名称 | 描述 |
685| -------- | -------- |
686| observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](#oh_pasteboardobserver)实例的指针。  |
687| context | 表示指向上下文数据的指针,将作为第一个参数传入[Pasteboard_Notify](#pasteboard_notify)。  |
688| callback | 表示数据变更回调函数。详见:[Pasteboard_Notify](#pasteboard_notify)。  |
689| finalize | 表示可选的回调函数,可以用于剪贴板数据变更观察者销毁时释放上下文数据。详见:[Pasteboard_Finalize](#pasteboard_finalize)。  |
690
691**返回:**
692
693返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 若返回ERR_OK,表示指向成功。 若返回ERR_INVALID_PARAMETER,表示传入了无效参数。
694
695**参见:**
696
697[OH_PasteboardObserver](#oh_pasteboardobserver)
698
699[Pasteboard_Notify](#pasteboard_notify)
700
701[PASTEBOARD_ErrCode](#pasteboard_errcode)
702
703### OH_Pasteboard_GetMimeTypes()
704
705```
706char ** OH_Pasteboard_GetMimeTypes (OH_Pasteboard * pasteboard, unsigned int * count)
707```
708
709**描述:**
710
711获取剪切板中的MIME类型。
712
713**起始版本:** 14
714
715**参数:**
716
717| 名称       | 描述                                                      |
718| ---------- | --------------------------------------------------------- |
719| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。 |
720| count      | 该参数是输出参数,结果集中的类型数量会写入该变量。        |
721
722**返回:**
723
724执行成功时返回剪切板所有内容的MIME类型,否则返回nullptr。
725
726本接口返回对象的生命周期由入参对象pasteboard管理,应用调用[OH_Pasteboard_Destroy](#oh_pasteboard_destroy)销毁入参对象pasteboard时同步释放本接口返回的结果,不允许应用主动释放。
727
728入参对象pasteboard只保存本接口最新返回的结果,接口历史调用获得的结果将失效。
729
730**参见:**
731
732[OH_Pasteboard](#oh_pasteboard)
733
734### OH_Pasteboard_GetDataParams_Create()
735
736```c
737Pasteboard_GetDataParams *OH_Pasteboard_GetDataParams_Create(void);
738```
739
740**描述:**
741
742创建剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)指针及实例对象。
743
744**起始版本:** 15
745
746**返回:**
747
748执行成功时返回一个指向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)实例对象的指针,否则返回空指针。 当不再需要使用指针时,请使用[OH_Pasteboard_GetDataParams_Destroy](#oh_pasteboard_getdataparams_destroy)销毁实例对象,否则会导致内存泄漏。
749
750**参见:**
751
752[Pasteboard_GetDataParams](#pasteboard_getdataparams)
753
754### OH_Pasteboard_GetDataParams_Destroy()
755
756```c
757void OH_Pasteboard_GetDataParams_Destroy(Pasteboard_GetDataParams* params)
758```
759
760**描述:**
761
762销毁剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)指针指向的实例对象。
763
764**起始版本:** 15
765
766**参数:**
767
768| 名称   | 描述                                                         |
769| ------ | ------------------------------------------------------------ |
770| params | 表示指向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)实例的指针。 |
771
772**参见:**
773
774[Pasteboard_GetDataParams](#pasteboard_getdataparams)
775
776### OH_Pasteboard_GetDataParams_SetProgressIndicator()
777
778```c
779void OH_Pasteboard_GetDataParams_SetProgressIndicator(Pasteboard_GetDataParams* params,
780    Pasteboard_ProgressIndicator progressIndicator)
781```
782
783**描述:**
784
785向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置进度条指示选项,可选择是否采用系统默认进度显示。
786
787**起始版本:** 15
788
789**参数:**
790
791| 名称              | 描述                                                 |
792| ----------------- | ---------------------------------------------------- |
793| params            | 表示指向上下文数据的指针。                           |
794| progressIndicator | 表示进度条指示选项,可选择是否采用系统默认进度显示。 |
795
796**参见:**
797
798[Pasteboard_GetDataParams](#pasteboard_getdataparams)
799
800[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)
801
802### OH_Pasteboard_GetDataParams_SetDestUri()
803
804```c
805void OH_Pasteboard_GetDataParams_SetDestUri(Pasteboard_GetDataParams* params, const char* destUri, uint32_t destUriLen)
806```
807
808**描述:**
809
810 向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置拷贝文件时目标路径。若不支持文件处理,则不需要设置此参数;若应用涉及复杂文件处理策略或需要区分文件多路径存储,建议不设置此参数,由应用自行完成文件copy处理。
811
812**起始版本:** 15
813
814**参数:**
815
816| 名称       | 描述                       |
817| ---------- | -------------------------- |
818| params     | 表示指向上下文数据的指针。 |
819| destUri    | 表示拷贝文件时的目标路径。 |
820| destUriLen | 表示目标路径长度。         |
821
822**参见:**
823
824[Pasteboard_GetDataParams](#pasteboard_getdataparams)
825
826[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)
827
828### OH_Pasteboard_GetDataParams_SetFileConflictOptions()
829
830```c
831void OH_Pasteboard_GetDataParams_SetFileConflictOptions(Pasteboard_GetDataParams* params,
832    Pasteboard_FileConflictOptions option)
833```
834
835**描述:**
836
837向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置文件拷贝冲突选项,默认为PASTEBOARD_OVERWRITE。
838
839**起始版本:** 15
840
841**参数:**
842
843| 名称   | 描述                                                   |
844| ------ | ------------------------------------------------------ |
845| params | 表示指向上下文数据的指针。                             |
846| option | 表示文件拷贝冲突时的选项,默认为PASTEBOARD_OVERWRITE。 |
847
848**参见:**
849
850[Pasteboard_GetDataParams](#pasteboard_getdataparams)
851
852[Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions)
853
854### OH_Pasteboard_GetDataParams_SetProgressListener()
855
856```c
857void OH_Pasteboard_GetDataParams_SetProgressListener(Pasteboard_GetDataParams* params,
858    const OH_Pasteboard_ProgressListener listener)
859```
860
861**描述:**
862
863向剪贴板[Pasteboard_GetDataParams](#pasteboard_getdataparams)设置进度上报回调函数。
864
865**起始版本:** 15
866
867**参数:**
868
869| 名称     | 描述                                                         |
870| -------- | ------------------------------------------------------------ |
871| params   | 表示指向上下文数据的指针。                                   |
872| listener | 表示进度数据变化的订阅函数,当选择不使用系统默认进度显示时,可设置该项获取粘贴过程的进度。 |
873
874**参见:**
875
876[Pasteboard_GetDataParams](#pasteboard_getdataparams)
877
878[OH_Pasteboard_ProgressListener](#oh_pasteboard_progresslistener)
879
880### OH_Pasteboard_ProgressInfo_GetProgress()
881
882```c
883int OH_Pasteboard_ProgressInfo_GetProgress(Pasteboard_ProgressInfo* progressInfo)
884```
885
886**描述:**
887
888通过[Pasteboard_ProgressInfo](#pasteboard_progressinfo)获取粘贴进度,且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为PASTEBOARD_NONE时,才可以获取到此信息。
889
890**起始版本:** 15
891
892**参数:**
893
894| 名称         | 描述                                                         |
895| ------------ | ------------------------------------------------------------ |
896| progressInfo | 定义进度上报的数据结构,且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为PASTEBOARD_NONE时才会上报此信息。 |
897
898**返回:**
899
900系统拷贝粘贴任务进度百分比。
901
902**参见:**
903
904[Pasteboard_ProgressInfo](#pasteboard_progressinfo)
905
906### OH_Pasteboard_ProgressCancel()
907
908```c
909void OH_Pasteboard_ProgressCancel(Pasteboard_GetDataParams* params);
910```
911
912**描述:**
913
914通过[Pasteboard_GetDataParams](#pasteboard_getdataparams)取消正在进行的拷贝粘贴任务,且仅当进度指示选项[Pasteboard_ProgressIndicator](#pasteboard_progressindicator)设置为PASTEBOARD_NONE时此参数才有意义。
915
916**起始版本:** 15
917
918**参数:**
919
920| 名称   | 描述                       |
921| ------ | -------------------------- |
922| params | 表示指向上下文数据的指针。 |
923
924**参见:**
925
926[Pasteboard_GetDataParams](#pasteboard_getdataparams)
927
928### OH_Pasteboard_GetDataWithProgress()
929
930```c
931OH_UdmfData* OH_Pasteboard_GetDataWithProgress(OH_Pasteboard* pasteboard, Pasteboard_GetDataParams* params, int* status);
932```
933
934**描述:**
935
936获取剪贴板的内容和进度,不支持对文件夹的拷贝。
937
938**起始版本:** 15
939
940**参数:**
941
942| 名称       | 描述                                                         |
943| ---------- | ------------------------------------------------------------ |
944| pasteboard | 表示指向剪贴板[OH_Pasteboard](#oh_pasteboard)实例的指针。    |
945| params     | 应用在使用剪贴板提供的文件拷贝能力的情况下需要的参数。定义详见[Pasteboard_GetDataParams](#pasteboard_getdataparams)。 |
946| status     | 该参数是输出参数,表示执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](#pasteboard_errcode)。 |
947
948**返回:**
949
950执行成功时返回统一数据对象**OH_UdmfData**实例的指针。否则返回空指针。
951
952**参见:**
953
954[Pasteboard_GetDataParams](#pasteboard_getdataparams)