WSSetMessageHandler (C 函数)
int WSSetMessageHandler(WSLINK link,WSMessageHandlerObject h)
为 link 安装由 h 引用的紧急消息处理函数.
更多信息
- 当 WSTP 从连接的另一端收到一个紧急消息时会调用紧急消息处理函数.
- 若发生错误,则 WSSetMessageHandler() 返回0;若函数成功,则返回非零值.
- 若 WSSetMessageHandler() 失败,则使用 WSError() 检索错误代码.
- WSMessageHandlerObject 是形式为 void f(WSLINK link,int m1,int m2) 的函数的一个指针.
- WSTP 的标头文件 wstp.h 已对 WSSetMessageHandler() 作出声明.
范例
基本范例 (1)
#include "wstp.h"
/* handle three common WSTP urgent messages */
void f(WSLINK lp, int msg, int arg)
{
if(msg == WSInterruptMessage)
{ /* generate an interrupt menu */ }
else if(msg == WSAbortMessage)
{ /* abort the current operation */ }
else if(msg == WSTerminateMessage)
{ /* shutdown the program */ }
/* ... */
}
int main(int argc, char **argv)
{
WSENV env;
WSLINK link;
int error;
env = WSInitialize((char *)0);
if(env == (WSENV)0)
{ /* unable to initialize WSTP environment */ }
link = WSOpenArgcArgv(env, argc, argv, &error);
if(link == (WSLINK)0 || error != WSEOK)
{ /* unable to create link */ }
if(! WSSetMessageHandler(link, (WSMessageHandlerObject)f)
{ /* unable to install message handler for link */ }
/* ... */
WSClose(link);
WSDeinitialize(env);
return 0;
}