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)