1# oh_pasteboard.h 2<!--Kit: Basic Services Kit--> 3<!--Subsystem: MiscServices--> 4<!--Owner: @yangxiaodong41--> 5<!--Designer: @guo867--> 6<!--Tester: @maxiaorong2--> 7<!--Adviser: @fang-jinxu--> 8 9## 概述 10 11提供访问系统剪贴板的接口、数据结构、枚举类型。 12 13**引用文件:** <database/pasteboard/oh_pasteboard.h> 14 15**库:** libpasteboard.so 16 17**系统能力:** SystemCapability.MiscServices.Pasteboard 18 19**起始版本:** 13 20 21**相关模块:** [Pasteboard](capi-pasteboard.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md) | Pasteboard_ProgressInfo | 定义进度上报的数据结构。 | 30| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md) | Pasteboard_GetDataParams | 表示从剪贴板获取粘贴数据和进度时需要写入的参数。 | 31| [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md) | OH_PasteboardObserver | 定义剪贴板数据变更观察者。 | 32| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md) | OH_Pasteboard | 定义剪贴板对象,用以操作系统剪贴板。 | 33 34### 枚举 35 36| 名称 | typedef关键字 | 描述 | 37| -- | -- | -- | 38| [Pasteboard_NotifyType](#pasteboard_notifytype) | Pasteboard_NotifyType | 剪贴板的数据变更类型。 | 39| [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) | Pasteboard_FileConflictOptions | 定义文件拷贝冲突时的选项。 | 40| [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) | Pasteboard_ProgressIndicator | 定义进度条指示选项,可选择是否采用系统默认进度显示。 | 41 42### 函数 43 44| 名称 | typedef关键字 | 描述 | 45| -- | -- | -- | 46| [typedef void (\*OH_Pasteboard_ProgressListener)(Pasteboard_ProgressInfo* progressInfo)](#oh_pasteboard_progresslistener) | OH_Pasteboard_ProgressListener | 用于在不使用系统默认进度显示时,通知应用拷贝粘贴任务进度。 | 47| [typedef void (\*Pasteboard_Notify)(void* context, Pasteboard_NotifyType type)](#pasteboard_notify) | Pasteboard_Notify | 定义剪贴板内容变更时触发的回调函数。 | 48| [typedef void (\*Pasteboard_Finalize)(void* context)](#pasteboard_finalize) | Pasteboard_Finalize | 定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。 | 49| [OH_PasteboardObserver* OH_PasteboardObserver_Create()](#oh_pasteboardobserver_create) | - | 创建一个剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)指针及实例对象。 | 50| [int OH_PasteboardObserver_Destroy(OH_PasteboardObserver* observer)](#oh_pasteboardobserver_destroy) | - | 销毁剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)指针指向的实例对象。 | 51| [int OH_PasteboardObserver_SetData(OH_PasteboardObserver* observer, void* context,const Pasteboard_Notify callback, const Pasteboard_Finalize finalize)](#oh_pasteboardobserver_setdata) | - | 向剪贴板数据变更观察者设置回调函数。 | 52| [OH_Pasteboard* OH_Pasteboard_Create()](#oh_pasteboard_create) | - | 创建剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)指针及实例对象。 | 53| [void OH_Pasteboard_Destroy(OH_Pasteboard* pasteboard)](#oh_pasteboard_destroy) | - | 销毁剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例对象。 | 54| [int OH_Pasteboard_Subscribe(OH_Pasteboard* pasteboard, int type, const OH_PasteboardObserver* observer)](#oh_pasteboard_subscribe) | - | 订阅剪贴板的数据变更事件。 | 55| [int OH_Pasteboard_Unsubscribe(OH_Pasteboard* pasteboard, int type, const OH_PasteboardObserver* observer)](#oh_pasteboard_unsubscribe) | - | 取消对剪贴板数据变更事件的订阅。 | 56| [bool OH_Pasteboard_IsRemoteData(OH_Pasteboard* pasteboard)](#oh_pasteboard_isremotedata) | - | 判断剪贴板中的数据是否来自远端设备。 | 57| [int OH_Pasteboard_GetDataSource(OH_Pasteboard* pasteboard, char* source, unsigned int len)](#oh_pasteboard_getdatasource) | - | 获取剪贴板中数据的数据源。 | 58| [bool OH_Pasteboard_HasType(OH_Pasteboard* pasteboard, const char* type)](#oh_pasteboard_hastype) | - | 判断剪贴板中是否有指定类型的数据。 | 59| [bool OH_Pasteboard_HasData(OH_Pasteboard* pasteboard)](#oh_pasteboard_hasdata) | - | 判断剪贴板中是否有数据。 | 60| [OH_UdmfData* OH_Pasteboard_GetData(OH_Pasteboard* pasteboard, int* status)](#oh_pasteboard_getdata) | - | 获取剪贴板中的数据。 | 61| [int OH_Pasteboard_SetData(OH_Pasteboard* pasteboard, OH_UdmfData* data)](#oh_pasteboard_setdata) | - | 将统一数据对象数据写入剪贴板。 | 62| [int OH_Pasteboard_ClearData(OH_Pasteboard* pasteboard)](#oh_pasteboard_cleardata) | - | 清空剪贴板中的数据。 | 63| [char **OH_Pasteboard_GetMimeTypes(OH_Pasteboard *pasteboard, unsigned int *count)](#oh_pasteboard_getmimetypes) | - | 获取剪贴板中的MIME类型。 | 64| [Pasteboard_GetDataParams *OH_Pasteboard_GetDataParams_Create(void)](#oh_pasteboard_getdataparams_create) | - | 创建剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)指针及实例对象。 | 65| [void OH_Pasteboard_GetDataParams_Destroy(Pasteboard_GetDataParams* params)](#oh_pasteboard_getdataparams_destroy) | - | 销毁剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)指针指向的实例对象。 | 66| [void OH_Pasteboard_GetDataParams_SetProgressIndicator(Pasteboard_GetDataParams* params,Pasteboard_ProgressIndicator progressIndicator)](#oh_pasteboard_getdataparams_setprogressindicator) | - | 向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置进度条指示选项,可选择是否采用系统默认进度显示。 | 67| [void OH_Pasteboard_GetDataParams_SetDestUri(Pasteboard_GetDataParams* params, const char* destUri, uint32_t destUriLen)](#oh_pasteboard_getdataparams_setdesturi) | - | 向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置拷贝文件时目标路径。若不支持文件处理,则不需要设置此参数;若应用涉及复杂文件处理策略或需要区分文件多路径存储,建议不设置此参数,由应用自行完成文件copy处理。 | 68| [void OH_Pasteboard_GetDataParams_SetFileConflictOptions(Pasteboard_GetDataParams* params,Pasteboard_FileConflictOptions option)](#oh_pasteboard_getdataparams_setfileconflictoptions) | - | 向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置文件冲突选项。 | 69| [void OH_Pasteboard_GetDataParams_SetProgressListener(Pasteboard_GetDataParams* params,const OH_Pasteboard_ProgressListener listener)](#oh_pasteboard_getdataparams_setprogresslistener) | - | 向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置进度上报回调函数。 | 70| [int OH_Pasteboard_ProgressInfo_GetProgress(Pasteboard_ProgressInfo* progressInfo)](#oh_pasteboard_progressinfo_getprogress) | - | 从[Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)获取粘贴进度。 | 71| [void OH_Pasteboard_ProgressCancel(Pasteboard_GetDataParams* params)](#oh_pasteboard_progresscancel) | - | 定义取消函数,用于在获取粘贴数据时取消正在进行的粘贴动作。 | 72| [OH_UdmfData* OH_Pasteboard_GetDataWithProgress(OH_Pasteboard* pasteboard, Pasteboard_GetDataParams* params,int* status)](#oh_pasteboard_getdatawithprogress) | - | 获取剪贴板的数据以及粘贴进度,不支持对文件夹的拷贝。 | 73| [uint32_t OH_Pasteboard_GetChangeCount(OH_Pasteboard *pasteboard)](#oh_pasteboard_getchangecount) | - | 获取剪贴板内容的变化次数。 | 74 75## 枚举类型说明 76 77### Pasteboard_NotifyType 78 79``` 80enum Pasteboard_NotifyType 81``` 82 83**描述:** 84 85剪贴板的数据变更类型。 86 87**起始版本:** 13 88 89| 枚举项 | 描述 | 90| -- | -- | 91| NOTIFY_LOCAL_DATA_CHANGE = 1 | 本地设备剪贴板数据变更。 | 92| NOTIFY_REMOTE_DATA_CHANGE = 2 | 组网内的非本地设备剪贴板数据变更。 | 93 94### Pasteboard_FileConflictOptions 95 96``` 97enum Pasteboard_FileConflictOptions 98``` 99 100**描述:** 101 102定义文件拷贝冲突时的选项。 103 104**起始版本:** 15 105 106| 枚举项 | 描述 | 107| -- | -- | 108| PASTEBOARD_OVERWRITE = 0 | 目标路径存在同文件名时覆盖。 | 109| PASTEBOARD_SKIP = 1 | 目标路径存在同文件名时跳过。 | 110 111### Pasteboard_ProgressIndicator 112 113``` 114enum Pasteboard_ProgressIndicator 115``` 116 117**描述:** 118 119定义进度条指示选项,可选择是否采用系统默认进度显示。 120 121**起始版本:** 15 122 123| 枚举项 | 描述 | 124| -- | -- | 125| PASTEBOARD_NONE = 0 | 不采用系统默认进度显示。 | 126| PASTEBOARD_DEFAULT = 1 | 采用系统默认进度显示。 | 127 128 129## 函数说明 130 131### OH_Pasteboard_ProgressListener() 132 133``` 134typedef void (*OH_Pasteboard_ProgressListener)(Pasteboard_ProgressInfo* progressInfo) 135``` 136 137**描述:** 138 139用于在不使用系统默认进度显示时,通知应用拷贝粘贴任务进度。 140 141**起始版本:** 15 142 143 144**参数:** 145 146| 参数项 | 描述 | 147| -- | -- | 148| [Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)* progressInfo | 定义进度上报的数据结构,且仅当进度指示选项[Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)设置为NONE时才会上报此信息。 | 149 150### Pasteboard_Notify() 151 152``` 153typedef void (*Pasteboard_Notify)(void* context, Pasteboard_NotifyType type) 154``` 155 156**描述:** 157 158定义剪贴板内容变更时触发的回调函数。 159 160**起始版本:** 13 161 162 163**参数:** 164 165| 参数项 | 描述 | 166| -- | -- | 167| void* context | 上下文信息,由函数[OH_PasteboardObserver_SetData](capi-oh-pasteboard-h.md#oh_pasteboardobserver_setdata)传入。 | 168| [Pasteboard_NotifyType](capi-oh-pasteboard-h.md#pasteboard_notifytype) type | 数据变更的类型。详见:[Pasteboard_NotifyType](capi-oh-pasteboard-h.md#pasteboard_notifytype)。 | 169 170### Pasteboard_Finalize() 171 172``` 173typedef void (*Pasteboard_Finalize)(void* context) 174``` 175 176**描述:** 177 178定义用于释放上下文的回调函数,剪贴板数据变更观察者对象销毁时触发。 179 180**起始版本:** 13 181 182 183**参数:** 184 185| 参数项 | 描述 | 186| -- | -- | 187| void* context | 要释放的上下文指针。 | 188 189### OH_PasteboardObserver_Create() 190 191``` 192OH_PasteboardObserver* OH_PasteboardObserver_Create() 193``` 194 195**描述:** 196 197创建一个剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)指针及实例对象。 198 199**起始版本:** 13 200 201**返回:** 202 203| 类型 | 说明 | 204| -- | -- | 205| [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)* | 执行成功时返回一个指向剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)实例对象的指针,否则返回空指针。<br> 当不再需要使用指针时,请使用[OH_PasteboardObserver_Destroy](capi-oh-pasteboard-h.md#oh_pasteboardobserver_destroy)销毁实例对象,否则会导致内存泄漏。 | 206 207### OH_PasteboardObserver_Destroy() 208 209``` 210int OH_PasteboardObserver_Destroy(OH_PasteboardObserver* observer) 211``` 212 213**描述:** 214 215销毁剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)指针指向的实例对象。 216 217**起始版本:** 13 218 219 220**参数:** 221 222| 参数项 | 描述 | 223| -- | -- | 224| [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)* observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)实例的指针。 | 225 226**返回:** 227 228| 类型 | 说明 | 229| -- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 230| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 231 232### OH_PasteboardObserver_SetData() 233 234``` 235int OH_PasteboardObserver_SetData(OH_PasteboardObserver* observer, void* context,const Pasteboard_Notify callback, const Pasteboard_Finalize finalize) 236``` 237 238**描述:** 239 240向剪贴板数据变更观察者设置回调函数。 241 242**起始版本:** 13 243 244 245**参数:** 246 247| 参数项 | 描述 | 248|------------------------------------------------------------------| -- | 249| [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)* observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)实例的指针。 | 250| void* context | 表示指向上下文数据的指针,将作为第一个参数传入[Pasteboard_Notify](capi-oh-pasteboard-h.md#pasteboard_notify)。 | 251| const [Pasteboard_Notify](capi-oh-pasteboard-h.md#pasteboard_notify) callback | 表示数据变更回调函数。详见:[Pasteboard_Notify](capi-oh-pasteboard-h.md#pasteboard_notify)。 | 252| const [Pasteboard_Finalize](capi-oh-pasteboard-h.md#pasteboard_finalize) finalize | 表示可选的回调函数,可以用于剪贴板数据变更观察者销毁时释放上下文数据。详见:[Pasteboard_Finalize](capi-oh-pasteboard-h.md#pasteboard_finalize)。 | 253 254**返回:** 255 256| 类型 | 说明 | 257| -- | -- | 258| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 259 260### OH_Pasteboard_Create() 261 262``` 263OH_Pasteboard* OH_Pasteboard_Create() 264``` 265 266**描述:** 267 268创建剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)指针及实例对象。 269 270**起始版本:** 13 271 272**返回:** 273 274| 类型 | 说明 | 275| -- | -- | 276| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* | 执行成功则返回一个指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例对象的指针,否则返回nulllptr。 | 277 278### OH_Pasteboard_Destroy() 279 280``` 281void OH_Pasteboard_Destroy(OH_Pasteboard* pasteboard) 282``` 283 284**描述:** 285 286销毁剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例对象。 287 288**起始版本:** 13 289 290 291**参数:** 292 293| 参数项 | 描述 | 294| -- | -- | 295| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 296 297### OH_Pasteboard_Subscribe() 298 299``` 300int OH_Pasteboard_Subscribe(OH_Pasteboard* pasteboard, int type, const OH_PasteboardObserver* observer) 301``` 302 303**描述:** 304 305订阅剪贴板的数据变更事件。 306 307**起始版本:** 13 308 309 310**参数:** 311 312| 参数项 | 描述 | 313| -- | -- | 314| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 315| int type | 表示订阅的剪贴板数据变更类型,详见:[Pasteboard_NotifyType](capi-oh-pasteboard-h.md#pasteboard_notifytype)。 | 316| const [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)* observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)实例的指针。它指定了剪贴板数据变更时触发的回调函数,详见:[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)。 | 317 318**返回:** 319 320| 类型 | 说明 | 321| -- | -- | 322| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 323 324### OH_Pasteboard_Unsubscribe() 325 326``` 327int OH_Pasteboard_Unsubscribe(OH_Pasteboard* pasteboard, int type, const OH_PasteboardObserver* observer) 328``` 329 330**描述:** 331 332取消对剪贴板数据变更事件的订阅。 333 334**起始版本:** 13 335 336 337**参数:** 338 339| 参数项 | 描述 | 340| -- | -- | 341| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 342| int type | 表示订阅的剪贴板数据变更类型,详见:[Pasteboard_NotifyType](capi-oh-pasteboard-h.md#pasteboard_notifytype)。 | 343| const [OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)* observer | 表示指向剪贴板数据变更观察者[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)实例的指针。它指定了剪贴板数据变更时触发的回调函数,详见:[OH_PasteboardObserver](capi-pasteboard-oh-pasteboardobserver.md)。 | 344 345**返回:** 346 347| 类型 | 说明 | 348| -- | -- | 349| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 350 351### OH_Pasteboard_IsRemoteData() 352 353``` 354bool OH_Pasteboard_IsRemoteData(OH_Pasteboard* pasteboard) 355``` 356 357**描述:** 358 359判断剪贴板中的数据是否来自远端设备。 360 361**起始版本:** 13 362 363 364**参数:** 365 366| 参数项 | 描述 | 367| -- | -- | 368| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 369 370**返回:** 371 372| 类型 | 说明 | 373| -- | -- | 374| bool | 返回剪贴板中的数据是否来自远端设备。返回true表示剪贴板中的数据来自远端设备,返回false表示剪贴板中数据来自本端设备。 | 375 376### OH_Pasteboard_GetDataSource() 377 378``` 379int OH_Pasteboard_GetDataSource(OH_Pasteboard* pasteboard, char* source, unsigned int len) 380``` 381 382**描述:** 383 384获取剪贴板中数据的数据源。 385 386**起始版本:** 13 387 388 389**参数:** 390 391| 参数项 | 描述 | 392| -- | -- | 393| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 394| char* source | 表示用于存放剪贴板数据数据源实例的指针,开发者需在调用接口前申请指针指向的内存。 | 395| unsigned int len | 表示source指针对应的内存长度,当内存长度不足时调用接口会失败,建议长度:128。 | 396 397**返回:** 398 399| 类型 | 说明 | 400| -- | -- | 401| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 402 403### OH_Pasteboard_HasType() 404 405``` 406bool OH_Pasteboard_HasType(OH_Pasteboard* pasteboard, const char* type) 407``` 408 409**描述:** 410 411判断剪贴板中是否有指定类型的数据。 412 413**起始版本:** 13 414 415 416**参数:** 417 418| 参数项 | 描述 | 419| -- | -- | 420| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 421| const char* type | 表示要检查的数据类型。包含剪贴板基础数据类型与自定义数据类型,其中剪贴板基础数据类型有:"text/plain"、"text/html"、"text/uri"、"text/want"和"pixelMap"。 | 422 423**返回:** 424 425| 类型 | 说明 | 426| -- | -- | 427| bool | 返回剪贴板中是否有指定类型的数据。返回true表示剪贴板中包含指定类型的数据,返回false表示剪贴板中没有指定类型的数据。 | 428 429### OH_Pasteboard_HasData() 430 431``` 432bool OH_Pasteboard_HasData(OH_Pasteboard* pasteboard) 433``` 434 435**描述:** 436 437判断剪贴板中是否有数据。 438 439**起始版本:** 13 440 441 442**参数:** 443 444| 参数项 | 描述 | 445| -- | -- | 446| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 447 448**返回:** 449 450| 类型 | 说明 | 451| -- | -- | 452| bool | 返回剪贴板中是否有数据。返回true表示剪贴板中有数据,返回false表示剪贴板中没有数据。 | 453 454### OH_Pasteboard_GetData() 455 456``` 457OH_UdmfData* OH_Pasteboard_GetData(OH_Pasteboard* pasteboard, int* status) 458``` 459 460**描述:** 461 462获取剪贴板中的数据。 463 464**起始版本:** 13 465 466**需要权限**:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需[申请访问剪贴板权限](../../basic-services/pasteboard/get-pastedata-permission-guidelines.md)。使用[安全控件](../../security/AccessToken/pastebutton.md)访问剪贴板内容的应用,可以无需申请权限。 467 468 469**参数:** 470 471| 参数项 | 描述 | 472| -- | -- | 473| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 474| int* status | 该参数是输出参数,表示执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。 | 475 476**返回:** 477 478| 类型 | 说明 | 479| -- | -- | 480| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* | 执行成功时返回统一数据对象[OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)实例的指针。否则返回空指针。 | 481 482### OH_Pasteboard_SetData() 483 484``` 485int OH_Pasteboard_SetData(OH_Pasteboard* pasteboard, OH_UdmfData* data) 486``` 487 488**描述:** 489 490将统一数据对象数据写入剪贴板。 491 492**起始版本:** 13 493 494 495**参数:** 496 497| 参数项 | 描述 | 498| -- | -- | 499| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 500| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* data | 表示指向统一数据对象[OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)实例的指针。 | 501 502**返回:** 503 504| 类型 | 说明 | 505| -- | -- | 506| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 507 508### OH_Pasteboard_ClearData() 509 510``` 511int OH_Pasteboard_ClearData(OH_Pasteboard* pasteboard) 512``` 513 514**描述:** 515 516清空剪贴板中的数据。 517 518**起始版本:** 13 519 520 521**参数:** 522 523| 参数项 | 描述 | 524| -- | -- | 525| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 526 527**返回:** 528 529| 类型 | 说明 | 530| -- | -- | 531| int | 返回执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。<br> 若返回[ERR_OK](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示指向成功。<br> 若返回[ERR_INVALID_PARAMETER](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode),表示传入了无效参数。 | 532 533### OH_Pasteboard_GetMimeTypes() 534 535``` 536char **OH_Pasteboard_GetMimeTypes(OH_Pasteboard *pasteboard, unsigned int *count) 537``` 538 539**描述:** 540 541获取剪贴板中的MIME类型。 542 543**起始版本:** 14 544 545 546**参数:** 547 548| 参数项 | 描述 | 549| -- | -- | 550| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md) *pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 551| unsigned int *count | 该参数是输出参数,结果集中的类型数量会写入该变量。 | 552 553**返回:** 554 555| 类型 | 说明 | 556| -- | -- | 557| char | 执行成功时返回剪贴板所有内容的MIME类型,否则返回nullptr。 | 558 559### OH_Pasteboard_GetDataParams_Create() 560 561``` 562Pasteboard_GetDataParams *OH_Pasteboard_GetDataParams_Create(void) 563``` 564 565**描述:** 566 567创建剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)指针及实例对象。 568 569**起始版本:** 15 570 571**返回:** 572 573| 类型 | 说明 | 574| -- | -- | 575| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md) | 执行成功时返回一个指向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)实例对象的指针,否则返回空指针。 当不再需要使用指针时,<br> 请使用[OH_Pasteboard_GetDataParams_Destroy](capi-oh-pasteboard-h.md#oh_pasteboard_getdataparams_destroy)销毁实例对象,否则会导致内存泄漏。 | 576 577### OH_Pasteboard_GetDataParams_Destroy() 578 579``` 580void OH_Pasteboard_GetDataParams_Destroy(Pasteboard_GetDataParams* params) 581``` 582 583**描述:** 584 585销毁剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)指针指向的实例对象。 586 587**起始版本:** 15 588 589 590**参数:** 591 592| 参数项 | 描述 | 593| -- | -- | 594| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 595 596### OH_Pasteboard_GetDataParams_SetProgressIndicator() 597 598``` 599void OH_Pasteboard_GetDataParams_SetProgressIndicator(Pasteboard_GetDataParams* params,Pasteboard_ProgressIndicator progressIndicator) 600``` 601 602**描述:** 603 604向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置进度条指示选项,可选择是否采用系统默认进度显示。 605 606**起始版本:** 15 607 608 609**参数:** 610 611| 参数项 | 描述 | 612| -- | -- | 613| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 614| [Pasteboard_ProgressIndicator](#pasteboard_progressindicator) progressIndicator | 定义进度条指示选项。 | 615 616### OH_Pasteboard_GetDataParams_SetDestUri() 617 618``` 619void OH_Pasteboard_GetDataParams_SetDestUri(Pasteboard_GetDataParams* params, const char* destUri, uint32_t destUriLen) 620``` 621 622**描述:** 623 624设置拷贝文件时目标路径。若不支持文件处理,则不需要设置此参数;若应用涉及复杂文件处理策略或需要区分文件多路径存储,建议不设置此参数,由应用自行完成文件copy处理。 625 626**起始版本:** 15 627 628 629**参数:** 630 631| 参数项 | 描述 | 632| -- | -- | 633| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 634| const char* destUri | 定义拷贝文件目标路径。 | 635| uint32_t destUriLen | 定义拷贝文件目标路径长度。 | 636 637### OH_Pasteboard_GetDataParams_SetFileConflictOptions() 638 639``` 640void OH_Pasteboard_GetDataParams_SetFileConflictOptions(Pasteboard_GetDataParams* params,Pasteboard_FileConflictOptions option) 641``` 642 643**描述:** 644 645向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置文件冲突选项。 646 647**起始版本:** 15 648 649 650**参数:** 651 652| 参数项 | 描述 | 653| -- | -- | 654| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 655| [Pasteboard_FileConflictOptions](#pasteboard_fileconflictoptions) option | 定义文件拷贝冲突时的选项,默认为PASTEBOARD_OVERWRITE。 | 656 657### OH_Pasteboard_GetDataParams_SetProgressListener() 658 659``` 660void OH_Pasteboard_GetDataParams_SetProgressListener(Pasteboard_GetDataParams* params,const OH_Pasteboard_ProgressListener listener) 661``` 662 663**描述:** 664 665向剪贴板[Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)设置进度上报回调函数。 666 667**起始版本:** 15 668 669 670**参数:** 671 672| 参数项 | 描述 | 673|----------------------------------------------------------------------------------| -- | 674| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 675| const [OH_Pasteboard_ProgressListener](#oh_pasteboard_progresslistener) listener | 表示进度上报回调函数。 | 676 677### OH_Pasteboard_ProgressInfo_GetProgress() 678 679``` 680int OH_Pasteboard_ProgressInfo_GetProgress(Pasteboard_ProgressInfo* progressInfo) 681``` 682 683**描述:** 684 685从[Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)获取粘贴进度。 686 687**起始版本:** 15 688 689 690**参数:** 691 692| 参数项 | 描述 | 693| -- | -- | 694| [Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)* progressInfo | 表示指向剪贴板[Pasteboard_ProgressInfo](capi-pasteboard-progressinfo.md)的指针。 | 695 696**返回:** 697 698| 类型 | 说明 | 699| -- | -- | 700| int | 返回粘贴进度百分比。 | 701 702### OH_Pasteboard_ProgressCancel() 703 704``` 705void OH_Pasteboard_ProgressCancel(Pasteboard_GetDataParams* params) 706``` 707 708**描述:** 709 710定义取消函数,用于在获取粘贴数据时取消正在进行的粘贴动作。 711 712**起始版本:** 15 713 714 715**参数:** 716 717| 参数项 | 描述 | 718| -- | -- | 719| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 720 721### OH_Pasteboard_GetDataWithProgress() 722 723``` 724OH_UdmfData* OH_Pasteboard_GetDataWithProgress(OH_Pasteboard* pasteboard, Pasteboard_GetDataParams* params,int* status) 725``` 726 727**描述:** 728 729获取剪贴板的数据以及粘贴进度,不支持对文件夹的拷贝。 730 731**起始版本:** 15 732 733**需要权限**:ohos.permission.READ_PASTEBOARD,应用访问剪贴板内容需[申请访问剪贴板权限](../../basic-services/pasteboard/get-pastedata-permission-guidelines.md)。使用[安全控件](../../security/AccessToken/pastebutton.md)访问剪贴板内容的应用,可以无需申请权限。 734 735 736**参数:** 737 738| 参数项 | 描述 | 739| -- | -- | 740| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)* pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 741| [Pasteboard_GetDataParams](capi-pasteboard-getdataparams.md)* params | 表示指向剪贴板OH_Pasteboard_GetDataParams的指针。 | 742| int* status | 该参数是输出参数,表示执行的错误码。错误码定义详见[PASTEBOARD_ErrCode](capi-oh-pasteboard-err-code-h.md#pasteboard_errcode)。 | 743 744**返回:** 745 746| 类型 | 说明 | 747| -- | -- | 748| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* | 执行成功时返回统一数据对象OH_PasteData实例的指针。否则返回空指针。 | 749 750### OH_Pasteboard_GetChangeCount() 751 752``` 753uint32_t OH_Pasteboard_GetChangeCount(OH_Pasteboard *pasteboard) 754``` 755 756**描述:** 757 758获取剪贴板内容的变化次数。 759 760**起始版本:** 18 761 762 763**参数:** 764 765| 参数项 | 描述 | 766| -- | -- | 767| [OH_Pasteboard](capi-pasteboard-oh-pasteboard.md) *pasteboard | 表示指向剪贴板[OH_Pasteboard](capi-pasteboard-oh-pasteboard.md)实例的指针。 | 768 769**返回:** 770 771| 类型 | 说明 | 772| -- | -- | 773| uint32_t | 执行成功时返回剪贴板内容的变化次数,否则返回0。<br> 当剪贴板内容过期或调用OH_Pasteboard_ClearData等接口导致剪贴板内容为空时,内容变化次数不会因此改变。<br> 系统重启或剪贴板服务异常重启时,剪贴板内容变化次数重新从0开始计数。对同一内容连续多次复制会被视作多次更改,每次复制均会导致内容变化次数增加。 | 774 775 776