105#define NP_BEGIN_MACRO do {
106#define NP_END_MACRO } while (0)
118 const NPUTF8 *UTF8Characters;
127 NPVariantType_Double,
128 NPVariantType_String,
153void NPN_ReleaseVariantValue(
NPVariant *variant);
155#define NPVARIANT_IS_VOID(_v) ((_v).type == NPVariantType_Void)
156#define NPVARIANT_IS_NULL(_v) ((_v).type == NPVariantType_Null)
157#define NPVARIANT_IS_BOOLEAN(_v) ((_v).type == NPVariantType_Bool)
158#define NPVARIANT_IS_INT32(_v) ((_v).type == NPVariantType_Int32)
159#define NPVARIANT_IS_DOUBLE(_v) ((_v).type == NPVariantType_Double)
160#define NPVARIANT_IS_STRING(_v) ((_v).type == NPVariantType_String)
161#define NPVARIANT_IS_OBJECT(_v) ((_v).type == NPVariantType_Object)
163#define NPVARIANT_TO_BOOLEAN(_v) ((_v).value.boolValue)
164#define NPVARIANT_TO_INT32(_v) ((_v).value.intValue)
165#define NPVARIANT_TO_DOUBLE(_v) ((_v).value.doubleValue)
166#define NPVARIANT_TO_STRING(_v) ((_v).value.stringValue)
167#define NPVARIANT_TO_OBJECT(_v) ((_v).value.objectValue)
169#define VOID_TO_NPVARIANT(_v) \
171 (_v).type = NPVariantType_Void; \
172 (_v).value.objectValue = NULL; \
175#define NULL_TO_NPVARIANT(_v) \
177 (_v).type = NPVariantType_Null; \
178 (_v).value.objectValue = NULL; \
181#define BOOLEAN_TO_NPVARIANT(_val, _v) \
183 (_v).type = NPVariantType_Bool; \
184 (_v).value.boolValue = !!(_val); \
187#define INT32_TO_NPVARIANT(_val, _v) \
189 (_v).type = NPVariantType_Int32; \
190 (_v).value.intValue = _val; \
193#define DOUBLE_TO_NPVARIANT(_val, _v) \
195 (_v).type = NPVariantType_Double; \
196 (_v).value.doubleValue = _val; \
199#define STRINGZ_TO_NPVARIANT(_val, _v) \
201 (_v).type = NPVariantType_String; \
202 NPString str = { _val, strlen(_val) }; \
203 (_v).value.stringValue = str; \
206#define STRINGN_TO_NPVARIANT(_val, _len, _v) \
208 (_v).type = NPVariantType_String; \
209 NPString str = { _val, _len }; \
210 (_v).value.stringValue = str; \
213#define OBJECT_TO_NPVARIANT(_val, _v) \
215 (_v).type = NPVariantType_Object; \
216 (_v).value.objectValue = _val; \
242typedef void *NPIdentifier;
255NPIdentifier NPN_GetStringIdentifier(
const NPUTF8 *name);
256void NPN_GetStringIdentifiers(
const NPUTF8 **names, int32_t nameCount,
257 NPIdentifier *identifiers);
258NPIdentifier NPN_GetIntIdentifier(int32_t intid);
259bool NPN_IdentifierIsString(NPIdentifier identifier);
264NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier);
270int32_t NPN_IntFromIdentifier(NPIdentifier identifier);
280typedef void (*NPDeallocateFunctionPtr)(
NPObject *npobj);
281typedef void (*NPInvalidateFunctionPtr)(
NPObject *npobj);
282typedef bool (*NPHasMethodFunctionPtr)(
NPObject *npobj, NPIdentifier name);
283typedef bool (*NPInvokeFunctionPtr)(
NPObject *npobj, NPIdentifier name,
284 const NPVariant *args, uint32_t argCount,
286typedef bool (*NPInvokeDefaultFunctionPtr)(
NPObject *npobj,
290typedef bool (*NPHasPropertyFunctionPtr)(
NPObject *npobj, NPIdentifier name);
291typedef bool (*NPGetPropertyFunctionPtr)(
NPObject *npobj, NPIdentifier name,
293typedef bool (*NPSetPropertyFunctionPtr)(
NPObject *npobj, NPIdentifier name,
295typedef bool (*NPRemovePropertyFunctionPtr)(
NPObject *npobj,
297typedef bool (*NPEnumerationFunctionPtr)(
NPObject *npobj, NPIdentifier **value,
299typedef bool (*NPConstructFunctionPtr)(
NPObject *npobj,
329 uint32_t structVersion;
330 NPAllocateFunctionPtr allocate;
331 NPDeallocateFunctionPtr deallocate;
332 NPInvalidateFunctionPtr invalidate;
333 NPHasMethodFunctionPtr hasMethod;
334 NPInvokeFunctionPtr invoke;
335 NPInvokeDefaultFunctionPtr invokeDefault;
336 NPHasPropertyFunctionPtr hasProperty;
337 NPGetPropertyFunctionPtr getProperty;
338 NPSetPropertyFunctionPtr setProperty;
339 NPRemovePropertyFunctionPtr removeProperty;
340 NPEnumerationFunctionPtr enumerate;
341 NPConstructFunctionPtr construct;
344#define NP_CLASS_STRUCT_VERSION 3
346#define NP_CLASS_STRUCT_VERSION_ENUM 2
347#define NP_CLASS_STRUCT_VERSION_CTOR 3
349#define NP_CLASS_STRUCT_VERSION_HAS_ENUM(npclass) \
350 ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM)
352#define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass) \
353 ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR)
357 uint32_t referenceCount;
381void NPN_ReleaseObject(
NPObject *npobj);
395bool NPN_Invoke(
NPP npp,
NPObject *npobj, NPIdentifier methodName,
401bool NPN_GetProperty(
NPP npp,
NPObject *npobj, NPIdentifier propertyName,
403bool NPN_SetProperty(
NPP npp,
NPObject *npobj, NPIdentifier propertyName,
405bool NPN_RemoveProperty(
NPP npp,
NPObject *npobj, NPIdentifier propertyName);
406bool NPN_HasProperty(
NPP npp,
NPObject *npobj, NPIdentifier propertyName);
407bool NPN_HasMethod(
NPP npp,
NPObject *npobj, NPIdentifier methodName);
408bool NPN_Enumerate(
NPP npp,
NPObject *npobj, NPIdentifier **identifier,
419void NPN_SetException(
NPObject *npobj,
const NPUTF8 *message);