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 参数包括代表已发生在网络中的事件的标志参数.
  • 标志参数可有如下值:
  • WSSDADDSERVICEthe const char * 包含现在网络上可用的新服务名称指针的参数
    WSSDREMOVESERVICEthe 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 */ }
}