Summary
NPObject
是个包含着一个指向 NPClass
的指针,和一个整型的引用计数,还有可能的特定成员的实现(特定插件,或者特定的浏览器)的结构体。
NPObject
是用来展示被插件或者浏览器通过这些API暴露出来的对象的类型。浏览器通过这些API来暴露他们的窗口对象和其他可以通过它来获取的东西。
NPObject
s 是有引用计数的对象, 所以调用者必须谨慎地释放他们的引用. Mozilla 提供了 NPN_CreateObject()
, NPN_RetainObject()
, NPN_ReleaseObject()
, 和 NPN_ReleaseVariantValue()这些函数来增加引用技术和进行常规的所有权的管理。
NPObject
的行为是通过调用 NPClass 中定义的一组回调函数来实现的
.
Syntax
struct NPObject { NPClass *_class; uint32_t referenceCount; /* * Additional space may be allocated here by types of NPObjects */ };
Fields
-
_class
-
指向标明当前对象是哪个
NPClass
的成员的指针. -
referenceCount
- 对象的引用计数.
警告:不要直接操纵_class 和 referenceCount 成员,用下面的函数来完成对它们的控制。
Functions
NPN_CreateObject()
NPN_RetainObject()
NPN_ReleaseObject()
NPN_Invoke()
NPN_InvokeDefault()
NPN_Evaluate()
NPN_GetProperty()
NPN_SetProperty()
NPN_RemoveProperty()
NPN_HasProperty()
NPN_HasMethod()
NPN_SetException()