窗口系统选区中保存的数据不限于纯文本。选区数据可包含图像、其他二进制数据、HTML 格式富文本以及 PostScript 内容等。由于这类数据对应的选区类型与纯文本不同,一组被称为 粘贴媒体处理器(yank-media handlers) 的函数可简化其插入操作。各主模式会注册对应的处理器,并在执行 yank-media 命令时按需调用。
注册适用于当前缓冲区的粘贴媒体处理器。
types 可以是标识选区数据类型的符号(see 选择区访问)、用于匹配类型的正则表达式,或由符号与正则表达式组成的列表。例如:
(yank-media-handler 'text/html #'my-html-handler) (yank-media-handler "image/.*" #'my-image-handler)
当选区提供与 types 匹配的数据类型时,函数 handler 会被调用以插入数据,并传入匹配的选区数据类型符号以及 gui-get-selection 返回的数据。
yank-media-types 命令会列出当前可用的选区数据类型,这在实现粘贴媒体处理器时非常有用,因为不同程序提供的数据类型往往杂乱且不统一。