通过NPP_Newstream创建流时,将传递一个流的模式参数,plug-in在它返回时设置这个参数,缺省设置是
NP_Normal;通过NPP_DestroyStream删除流.Plug-in也可以调用NPN_DestroyStream删除流.这三种模
式分别如下:
◆正常模式.当参数设置为NP_Normal时采用该模式,当有数据可发送时Netscape就把数据发送给
plug-in,这些数据可能是以非正常顺序到达的.Netscape通过调用一系列的NPP_WriteReady和NPP_Write
来发送数据的.Netscape通过len这个参数告诉plug-in它将发送多少数据,Netscape调用NPP_WriteReady
来确定plug-in每次准备接收多少字节的数据,再调用NPP_Write发送数据.此种模式的效率较高.
◆随机存取模式.若调用NPP_NewStream时将其中的布尔型参数Seekable设为真时,就采用此种模
式.此时,流中的数据先由plug-in调用NPN_RequestRead加以指明所要获取的数据的范围,然后Netscape
调用NPP_WriteReady和NPP_Write把数据传送给plug-in.这种模式需要远程服务器的支持或Netscape先
将流数据存到本地的临时文件中.用这种模式时,用户可以从服务器的数据文件中任意读取自己想要的记
录,就如同从本地硬盘上读取一个记录一样.
◆文件模式.把参数设置为NP_AsFile即可.Netscape先将整个Url数据存到一个本地文件中,然后
通过NPP_StreamAsFile将文件名传给plug-in.Plug-in可以通过文件操作获得所要数据.
===========================================================
NPN_ReleaseObject
NPN_ReleaseVariantValue
NPN_Evaluate
在 NP_Initialize 时会传递出一个 struct NPNetscapeFuncs *
你要把它存储在一个变量中
然后参照头文件中的定义来实现那些函数
例如存储在一个名为 g_pNavigatorFunc 的全局变量
NPError OSCALL NP_Initialize(NPNetscapeFuncs* pFuncs)
{
g_pNavigatorFuncs=pFuncs;
return NPERR_NO_ERROR;
}
void NPN_ReleaseVariantValue(NPVariant *variant)
{
g_pNavigatorFuncs->releasevariantvalue(variant);
}