mozilla
您的搜索结果

    NPClass

    « Gecko Plugin API Reference « Scripting plugins

    Summary

    NPClass 是一个包含着一组函数指针的结构体。这些函数指针所指向的函数是组成NPClass某个实例(例如一个NPObject)的所有行为 。

    Syntax

    struct NPClass
    {
      uint32_t structVersion;
      NPAllocateFunctionPtr allocate;
      NPDeallocateFunctionPtr deallocate;
      NPInvalidateFunctionPtr invalidate;
      NPHasMethodFunctionPtr hasMethod;
      NPInvokeFunctionPtr invoke;
      NPInvokeDefaultFunctionPtr invokeDefault;
      NPHasPropertyFunctionPtr hasProperty;
      NPGetPropertyFunctionPtr getProperty;
      NPSetPropertyFunctionPtr setProperty;
      NPRemovePropertyFunctionPtr removeProperty;
      NPEnumerationFunctionPtr enumerate;
      NPConstructFunctionPtr construct;
    };
    
    警告:不要直接调用这些函数,你应该使用这些 API functions.

    Fields

    structVersion
    结构体的版本号。它的值是NP_STRUCT_VERSION。在Mozilla 1.8.*中,NP_STRUCT_VERSION的值是1, 从Mozilla 1.9a1开始变成2, 从Firefox 3.0b1开始是3。
    allocate
    返回一个新分配的 NPObject对象的指针。 如果该指针不为空,则将会被NPN_CreateObject()函数调用, 否则浏览器会调用 malloc()。 这个函数应该分配并且返回能保存创建出来的NPObject对象的存储区域。
    deallocate
    当一个对象的引用计数为零的时候被NPN_ReleaseObject()调用。如果这个指针为空,那浏览器就直接调free()函数。
    invalidate
    当属于一个插件实例的活跃对象(live objects)被销毁时被调用。这个函数通常在 deallocate 函数或者free()之前被调用。 任何对失效对象(invalidated object)的操作都会导致未定义的行为。
    hasMethod
    NPN_HasMethod()调用,用来判断在给定的NPObject中是否存在某个特定的方法。返回true 如果该方法存在,否则返回false.
    invoke
    NPN_Invoke()调用,来调用给定NPObject对象中的指定方法。如果调用成功,返回true,如果任何错误产生则返回false。
    invokeDefault
    NPN_InvokeDefault()调用,来调用给定NPObject对象中的默认方法(该对象有默认方法的话)。如果调用成功,返回true,如果任何错误产生则返回false。
    hasProperty
    NPN_HasProperty()调用,来检查给定NPObject对象中是否存在某个属性。返回true如果存在该属性,否则返回false。
    getProperty
    NPN_GetProperty()调用,来获取给定NPObject对象中的某个属性。返回true如果属性获取成功,否则返回false。
    setProperty
    NPN_SetProperty()调用,来设置给定NPObject对象中的某个属性。返回true如果属性设置成功,否则返回false。
    removeProperty
    NPN_RemoveProperty()调用,来删除给定NPObject对象中的某个属性。返回true如果属性删除成功,否则返回false。
    enumerate
    被调用。只有当structVersion的值大于等于NP_CLASS_STRUCT_VERSION_ENUM (2)时,该指针才有效。
    construct
    被调用。只有当structVersion的值大于等于NP_CLASS_STRUCT_VERSION_CTOR (3),该指针才有效。

    Function pointer syntax

    typedef NPObject *(*NPAllocateFunctionPtr)(NPP npp, NPClass *aClass);
    typedef void (*NPDeallocateFunctionPtr)(NPObject *npobj);
    typedef void (*NPInvalidateFunctionPtr)(NPObject *npobj);
    typedef bool (*NPHasMethodFunctionPtr)(NPObject *npobj, NPIdentifier name);
    typedef bool (*NPInvokeFunctionPtr)(NPObject *npobj, NPIdentifier name,
                                        const NPVariant *args, uint32_t argCount,
                                        NPVariant *result);
    typedef bool (*NPInvokeDefaultFunctionPtr)(NPObject *npobj,
                                               const NPVariant *args,
                                               uint32_t argCount,
                                               NPVariant *result);
    typedef bool (*NPHasPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name);
    typedef bool (*NPGetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
                                             NPVariant *result);
    typedef bool (*NPSetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
                                             const NPVariant *value);
    typedef bool (*NPRemovePropertyFunctionPtr)(NPObject *npobj,
                                                NPIdentifier name);
    typedef bool (*NPEnumerationFunctionPtr)(NPObject *npobj, NPIdentifier **value,
                                             uint32_t *count);
    typedef bool (*NPConstructFunctionPtr)(NPObject *npobj,
                                           const NPVariant *args,
                                           uint32_t argCount,
                                           NPVariant *result);
    

    See also

    文档标签和贡献者

    Contributors to this page: ericchan1336
    最后编辑者: ericchan1336,