在动态数据交换 (DDE) 会话中,创建或释放一个服务名的主题名。
语法
DDESetTopic(cServiceName, cTopicName [, cUDFName])
返回值类型
逻辑型
参数
cServiceName
指定服务名。服务名可用 DDESetTopic( ) 创建。
cTopicName
指定要创建或释放的主题名。如果包括 cUDFName,则 DDESetTopic( ) 创建主题名 cTopicName;如果省略 cUDFName,则释放主题名 cTopicName。若 cTopicName 是一个空字符串,对任何没有明确声明的主题名,执行 cUDFName 指定的用户自定义函数。
cUDFName
在客户应用程序向主题名发出请求时,指定要执行的用户自定义函数。如果省略了 cUDFName,则从服务名中释放主题名 cTopicName。
执行用户自定义函数时,按下列顺序给该函数传递六个参数:
参数 | 内容 |
Channel Number | 客户通道号 |
Action | ADVISE, EXECUTE, INITIATE, POKE, REQUEST, 或 TERMINATE. |
Item | 项名;例如,R1C1 表示一个 Microsoft Excel 工作表单元 |
Data | 来源于客户的数据 |
Format | 数据格式。例如,CF_TEXT |
Advise Status | 链接类型(0 = 人工,2 = 交互式或自动) |
Action 值 | Item 值 | Data 值 | Advise status 值 |
INITIATE | – | 主题名 | – |
TERMINATE | – | – | – |
POKE | 项名 | 新数据 | – |
REQUEST | 项名 | – | – |
EXECUTE | – | 新命令 | – |
ADVISE | 项名 | – | 链接类型 |
说明
创建主题名后,任何对主题名的客户请求都会使 Visual FoxPro 执行 cUDFName 指定的用户自定义函数。向用户自定义函数传递的一组参数值是由客户请求决定的。用户自定义函数的返回值由 DDEPoke( ) 函数传递给客户,其返回值是一个逻辑值,该值表明主题能否提供客户请求的服务。
如果成功地创建或释放主题名,则 DDESetTopic( ) 返回“真”(.T.);如果不能创建或释放主题名,则返回“假”(.F.)。使用 DDELastError( ) 可确定不能创建或释放主题名的原因。