WSBrowseCallbackFunction (C 函数)
WSBrowseCallbackFunction
是一个 WSTP 类型,描述一个函数的函数指针,该函数以一个 WSENV 对象、一个 WSServiceRef 对象、一个 int 对象、一个 const char * 对象和一个 void * 对象为自变量并返回 void.
更多信息
- WSBrowseForLinkServices() 函数可在网络上开始一段浏览操作,以寻找可用的 WSTP 链接服务. WSBrowseForLinkServices() 仅开始此段浏览操作并迅速返回. WSTP 库会通过 WSBrowseCallbackFunction 函数异步回调该应用,以在网络浏览事件中更新程序.
- WSBrowseCallbackFunction 函数有如下形式:
- WSBrowseCallbackFunction 函数有如下形式:void function(WSENV e, WSServiceRef r, int flags, const char *name, void *context);
- int 参数包括代表已发生在网络中的事件的标志参数.
- 标志参数可有如下值:
-
WSSDADDSERVICE the const char * 包含现在网络上可用的新服务名称指针的参数 WSSDREMOVESERVICE the const char * 包含网络上不再可用的服务名称指针的参数 WSSDBROWSEERROR 浏览操作发生错误;程序应使用 WSStopBrowsingForLinkServices() 以中止浏览操作;另外,应移除所有缓存服务名称;若要进一步接收库关于浏览事件的更新,程序必须再次调用 WSBrowseForLinkServices() 并重新开始一段浏览操作
范例
基本范例 (1)
#include "wstp.h"
void BrowseCallbackFunction(WSENV env, WSServiceRef ref, int flags, const char *serviceName, void *context);
WSServiceRef startBrowseOperation(WSENV e)
{
int apiResult;
WSServiceRef theRef;
apiResult = WSBrowseForLinkServices(e, BrowseCallbackFunction, NULL /* Use the default browse domain */, NULL /* no specific context object for this example */, &theRef);
if(apiResult != 0)
{ /* Handle the error. */ }
return theRef;
}
void BrowseCallbackFunction(WSENV env, WSServiceRef ref, int flags, const char *serviceName, void *context)
{
if(flags & WSSDADDSERVICE)
{ /* Register the service named in serviceName */ }
else if(flags & WSSDREMOVESERVICE)
{ /* Remove the service named in serviceName from the registry */ }
else if(flags & WSSDBROWSEERROR)
{ /* Stop the browse operation and clear the service name cache */ }
}