ddesettopic( ) 函数

示例 请参阅

在动态数据交换 (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 = 交互式或自动)

Item、Data 和 Advise Status 参数值取决于 Action 参数,下表列出了 Action 
参数值以及包含在 Item、Data 和 Advise Status 参数中的值。短横线 ( - ) 
表明参数值是个空字符串。
Action 值  Item 值  Data 值  Advise status 值 
INITIATE 主题名
TERMINATE
POKE 项名 新数据
REQUEST 项名
EXECUTE 新命令 
ADVISE 项名 链接类型

如果用户自定义函数成功地处理了客户请求,则用户自定义函数返回“真”(.T.);如果用户自定义函数不能处理请求或发生错误,则用户自定义函数应返回“假”(.F.)。如果 Action 参数值为 INITIATE 时返回“假”,则拒绝客户主题名的请求;如果在 Action 参数值是 POKE、REQUEST 或 EXECUTE 时返回“假”,则忽略请求;如果这个参数值为 ADVISE 时返回“假”,则拒绝客户交互式或自动链接的请求。

说明

创建主题名后,任何对主题名的客户请求都会使 Visual FoxPro 执行 cUDFName 指定的用户自定义函数。向用户自定义函数传递的一组参数值是由客户请求决定的。用户自定义函数的返回值由 DDEPoke( ) 函数传递给客户,其返回值是一个逻辑值,该值表明主题能否提供客户请求的服务。
如果成功地创建或释放主题名,则 DDESetTopic( ) 返回“真”(.T.);如果不能创建或释放主题名,则返回“假”(.F.)。使用 DDELastError( ) 可确定不能创建或释放主题名的原因。