创建、释放或更新 DDE 服务名和设置。
语法
DDESetService(cServiceName, cOption [, cDataFormat | lExpression])
返回值类型
逻辑型
参数
cServiceName
指定要创建、释放、更改或返回信息的服务名。
cOption
指定是创建、释放或更改一个服务名,还是返回一个服务名的信息。下表列出了可用 cOption 指定的选项、选项的默认值以及对每个选项的说明。
选项 | 默认值 | 说明 |
DEFINE | – | 创建新的服务名 |
RELEASE | – | 释放一个已有的服务名 |
ADVISE | .F. | 启用或废止有关改变项名的客户通知 |
EXECUTE | .F. | 启用或废止命令的执行 |
POKE | .F. | 启用或废止客户向服务的发送 |
REQUEST | .T. | 启用或废止对服务的请求 |
FORMATS | CF_TEXT | 规定数据格式 |
DEFINE
创建一个新的服务名。例如,下面的命令创建服务名 myservice:
glNewService = DDESetService('myservice', 'DEFINE')
RELEASE
释放一个已有的服务名,从而释放系统资源。当服务名释放后,这个服务的所有主题名也跟着被释放。
下面的命令释放前一个例子的服务名:
glRelease = DDESetService('myservice', 'RELEASE')
要释放默认的 Visual FoxPro 服务,可执行下面这条命令:
glRelFox = DDESetService('Visual FoxPro', 'RELEASE')
ADVISE
当一个项中的数据改变时,指定是否通知客户,或者返回服务名的当前建议状态。有关向客户提供建议的其他内容,请参阅 DDEAdvise( )。
要启用客户通知,可指定 lExpression 为“真”(.T.);将 lExpression 指定为“假”(.F.) 可废止客户通知。
要返回服务名的当前客户通知状态,省略 lExpression 即可。如果已经启用了服务名的客户通知,则 DDESetService( ) 返回“真”;如果已废止客户通知,则返回“假”。
EXECUTE
允许启用或废止向一个服务名的命令请求,或确定服务名的当前执行状态。
要启用客户执行命令的请求,可以指定 lExpression 为“真”(.T.);要废止客户执行命令的请求,则可以指定 lExpression 为“假”(.F.)。“假”(.F.)
为默认值。
要返回服务名的当前命令执行状态,省略 lExpression 即可。如果客户对服务的命令执行请求已启用,则 DDESetService( ) 返回“真”;否则返回“假”。
下面的命令启用服务名 myservice 命令执行,并废止客户应用程序对这个服务名的数据请求,然后显示 myservice 的当前命令执行状态:
glExecute = DDESetService('myservice', 'EXECUTE', .T.)
glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'EXECUTE')
POKE
允许启用或废止对服务名的发送请求,或确定服务名的当前发送状态。有关向服务器或客户发送数据的详细内容,请参阅 DDEPoke( )。
要启用客户发送请求,可以将 lExpression 指定为“真”(.T.);将 lExpression 指定为“假”(.F.),则可以废止客户发送请求。“假”(.F.) 是默认值。
要返回服务名的当前发送状态,省略 lExpression 即可。如果启用了服务名的发送请求,则 DDESetService( ) 返回“真”,否则返回“假”。
REQUEST
可以用 REQUEST 启用或者废止对服务名的用户请求,或返回对服务名的当前请求状态。
要启用对服务名的客户请求,需将 lExpression 指定为“真”(.T.);将 lExpression 指定为“假”(.F.),则可以废止对服务名的客户请求。“真”(.T.) 是默认值。
要想返回服务名的当前请求状态,省略 lExpression 即可。如果启用了服务名的发送请求,则 DDESetService( ) 返回“真”,否则返回“假”。
下面的命令废止从客户应用程序对服务名 myservice 的请求,并显示 myservice 的当前请求状态:
glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'REQUEST')
FORMATS [cDataFormat]
指定服务名支持的数据格式,没有用 cDataFormat 指定格式的服务器请求会被拒绝。当指定数据格式时,请用逗号分隔列表中的格式。例如:
=DDESetService('myservice', 'FORMATS', 'CF_TEXT, CF_SYLK')
如果省略 cDataFormat,则只支持 CF_TEXT 格式。
lExpression
指定 REQUEST、EXECUTE、POKE 或 ADVISE 选项。将 lExpression
指定为“真”(.T.) 可以启用一个选项,指定为“假”(.F.) 则可以废止一个选项。
说明
Visual FoxPro 可以作为一个动态数据交换 (DDE) 服务器向 Microsoft Windows 的客户应用程序发送数据,DDESetService( ) 用来创建、释放或更改 Visual FoxPro 中的服务名和设置。每个服务名可以有多个由 DDESetService( ) 创建的主题名,客户应用程序向 DDE 主题名请求数据。
如果成功地创建、释放或修改了服务名,则 DDESetService( ) 返回“真”(.T.);如果服务名不能被创建、释放或修改,则 DDESetService( ) 返回“假”(.F.)。
DDESetService( ) 也能返回有关服务名的信息。Visual FoxPro 有默认的服务名 Visual FoxPro,Visual FoxPro 服务名有一个称为 System 的主题名。下表列出了 System 主题支持的所有项名。
项名 | 项 |
Topics | 可用的主题名列表 |
Formats | 服务名支持格式列表 |
Status | 繁忙或等待 |
SysItems | 项名列表 |
可以使用 DDESetTopic( ) 修改 Visual FoxPro 服务名或释放服务名。有关 Visual FoxPro 服务名操作的详细内容,请参阅 DDESetTopic( ) 选项。