WSRegisterCallbackFunction (C 函数)
WSRegisterCallbackFunction
是一个 WSTP 类型,描述一个函数的函数指针,该函数以一个 WSENV 对象、一个 WSServiceRef 对象、一个 int 对象、一个 const char * 对象和一个 void * 对象为参数,并返回 void.
更多信息

- 函数 WSRegisterLinkService()、WSRegisterLinkServiceWithHostname()、和 WSRegisterLinkServiceWithPortAndHostname() 可在网络上开始一段注册操作,以推广具名服务(named services). 这些函数仅仅开始注册操作并立刻返回. WSTP 库会异步通过 WSRegisterCallbackFunction 的函数回调该应用,以在网络服务注册事件中更新改程序.
- 一个 WSRegisterCallbackFunction 有如下形式:
- void function( WSENV e, WSServiceRef r, int flag, const char *name, void *context);
- int 参数包括一个 flag 值,代表网络上已发生事件的类型.
- flag 参数可有如下值:
-
WSSDADDSERVICE const char * 参数包括一个现在在网络上可用的新服务名称的指针 WSSDREMOVESERVICE the const char * 现在的参数包括一个在网络上不再可用的服务名称的指针;这个函数仅接受使用该回调函数的 WSRegisterLinkService() 函数注册的移除标记.
范例
基本范例 (1)
#include "wstp.h"
void RegisterCallbackFunction(WSENV e, WSServiceRef r, int flags, const char *serviceName, void *context);
WSServiceRef startRegisterOperation(WSENV e, const char *serviceName)
{
WSServiceRef theRef;
WSLINK theLink = (WSLINK)0;
int error;
theLink = WSRegisterLinkService(e,
serviceName,
RegisterCallbackFunction, NULL /* Use the default
network domain */, NULL, /* No context object for this
example */, &theRef, &error);
if(theLink == (WSLINK)0 || error != 0)
{ /* handle the error */ }
return theRef;
}
void RegisterCallbackFunction(WSENV e, WSServiceRef r, int flags, const char *serviceName, void *context)
{
if(flags & WSSDADDSERVICE)
{ /* Handle successful service registration */ }
else if(flags & WSSDREMOVESERVICE)
{ /* Handle service registration failure */ }
else if(flags & WSSDREGISTERERROR)
{ /* Handle error in register operation */ }
}