15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ***** BEGIN LICENSE BLOCK *****
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version: MPL 1.1/GPL 2.0/LGPL 2.1
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The contents of this file are subject to the Mozilla Public License Version
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.1 (the "License"); you may not use this file except in compliance with
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the License. You may obtain a copy of the License at
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.mozilla.org/MPL/
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software distributed under the License is distributed on an "AS IS" basis,
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for the specific language governing rights and limitations under the
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Original Code is mozilla.org code.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Initial Developer of the Original Code is
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Netscape Communications Corporation.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portions created by the Initial Developer are Copyright (C) 1998
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the Initial Developer. All Rights Reserved.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contributor(s):
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Alternatively, the contents of this file may be used under the terms of
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * either the GNU General Public License Version 2 or later (the "GPL"), or
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in which case the provisions of the GPL or the LGPL are applicable instead
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of those above. If you wish to allow use of your version of this file only
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * under the terms of either the GPL or the LGPL, and not to allow others to
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * use your version of this file under the terms of the MPL, indicate your
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * decision by deleting the provisions above and replace them with the notice
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and other provisions required by the GPL or the LGPL. If you do not delete
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the provisions above, a recipient may use your version of this file under
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the terms of any one of the MPL, the GPL or the LGPL.
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ***** END LICENSE BLOCK ***** */
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  npapi.h $Revision: 3.46 $
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Netscape client plug-in API spec
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _NPAPI_H_
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NPAPI_H_
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __OS2__
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma pack(1)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "prtypes.h"
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copied from xp_core.h */
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* removed #ifdef for hpux defined in /usr/include/model.h */
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _INT16
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _INT16
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _INT32
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _INT32
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _UINT16
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _UINT16
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _UINT32
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _UINT32
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NO_NSPR_10_SUPPORT disables the inclusion
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of obsolete/protypes.h, whose int16, uint16,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32, and uint32 typedefs conflict with those
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in this file.
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NO_NSPR_10_SUPPORT
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NO_NSPR_10_SUPPORT
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef OJI
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "jri.h"                /* Java Runtime Interface */
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (__OS2__ ) || defined (OS2)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	ifndef XP_OS2
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		define XP_OS2 1
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	endif /* XP_OS2 */
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __OS2__ */
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WINDOWS
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	include <windef.h>
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	ifndef XP_WIN
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		define XP_WIN 1
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	endif /* XP_WIN */
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* _WINDOWS */
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __MWERKS__
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	define _declspec __declspec
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	ifdef __INTEL__
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		undef NULL
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		ifndef XP_WIN
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#			define XP_WIN 1
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		endif /* XP_WIN */
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	endif /* __INTEL__ */
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __MWERKS__ */
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <Carbon/Carbon.h>
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __LP64__
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NO_QUICKDRAW
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_UNIX)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	include <stdio.h>
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	if defined(MOZ_X11)
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		include <X11/Xlib.h>
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#		include <X11/Xutil.h>
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	endif
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                        Plugin Version Constants                      */
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_VERSION_MAJOR 0
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_VERSION_MINOR 19
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The OS/2 version of Netscape uses RC_DATA to define the
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   mime types, file extensions, etc that are required.
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Use a vertical bar to separate types, end types with \0.
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   FileVersion and ProductVersion are 32bit ints, all other
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   entries are strings the MUST be terminated wwith a \0.
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AN EXAMPLE:
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_ProductVersion { 1,0,0,1,}
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_MIMEType    { "video/x-video|",
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "video/x-flick\0" }
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileExtents { "avi|",
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "flc\0" }
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileOpenName{ "MMOS2 video player(*.avi)|",
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             "MMOS2 Flc/Fli player(*.flc)\0" }
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileVersion       { 1,0,0,1 }
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_CompanyName       { "Netscape Communications\0" }
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_FileDescription   { "NPAVI32 Extension DLL\0"
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_InternalName      { "NPAVI32\0" )
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_LegalCopyright    { "Copyright Netscape Communications \251 1996\0"
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_OriginalFilename  { "NVAPI32.DLL" }
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RCDATA NP_INFO_ProductName       { "NPAVI32 Dynamic Link Library\0" }
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - required */
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_ProductVersion      1
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_MIMEType            2
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileOpenName        3
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileExtents         4
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - used if found */
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileDescription     5
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_ProductName         6
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* RC_DATA types for version info - optional */
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_CompanyName         7
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_FileVersion         8
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_InternalName        9
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_LegalCopyright      10
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_INFO_OriginalFilename    11
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef RC_INVOKED
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                       Definition of Basic Types                      */
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _UINT16
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned short uint16;
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _UINT32
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    if defined(__alpha) || defined(__amd64__) || defined(__x86_64__)
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned int uint32;
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    else  /* __alpha */
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned long uint32;
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    endif /* __alpha */
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * AIX defines these in sys/inttypes.h included from sys/types.h
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef AIX
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _INT16
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef short int16;
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _INT32
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    if defined(__alpha) || defined(__amd64__) || defined(__x86_64__)
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int int32;
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    else  /* __alpha */
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef long int32;
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    endif /* __alpha */
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef FALSE
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define FALSE (0)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef TRUE
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TRUE (1)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NULL
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NULL (0L)
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelQuickDraw = 0,
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPDrawingModelCoreGraphics = 1
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPDrawingModel;
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned char	NPBool;
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int16			NPError;
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef int16			NPReason;
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef char*			NPMIMEType;
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                       Structures and definitions                     */
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  NPP is a plug-in's opaque instance handle
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPP
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*	pdata;      /* plug-in private data */
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*	ndata;      /* netscape private data */
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPP_t;
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NPP_t*  NPP;
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPStream
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*  pdata; /* plug-in private data */
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*  ndata; /* netscape private data */
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const  char* url;
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 end;
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 lastmodified;
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*  notifyData;
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const  char* headers; /* Response headers from host.
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Used for HTTP only; NULL for non-HTTP.
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Available from NPP_NewStream onwards.
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Plugin should copy this data before storing it.
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Includes HTTP status line and all headers,
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * preferably verbatim as received from server,
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * headers formatted as in HTTP ("Header: Value"),
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * and newlines (\n, NOT \r\n) separating lines.
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                         * Terminated by \n\0 (NOT \n\n\0). */
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPStream;
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPByteRange
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32  offset; /* negative offset means from the end */
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 length;
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct _NPByteRange* next;
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPByteRange;
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPSavedData
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32	len;
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void*	buf;
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPSavedData;
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPRect
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 top;
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 left;
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 bottom;
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 right;
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPRect;
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPSize
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 width;
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 height;
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPSize;
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_UNIX
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unix specific structures and definitions
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Callback Structures.
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * These are used to pass additional platform specific information.
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum {
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NP_SETWINDOW = 1,
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NP_PRINT
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 type;
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPAnyCallbackStruct;
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32        type;
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef MOZ_X11
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Display*     display;
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Visual*      visual;
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Colormap     colormap;
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  unsigned int depth;
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPSetWindowCallbackStruct;
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 type;
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FILE* fp;
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPrintCallbackStruct;
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_UNIX */
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   The following masks are applied on certain platforms to NPNV and
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   NPPV selectors that pass around pointers to COM interfaces. Newer
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compilers on some platforms may generate vtables that are not
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compatible with older compilers. To prevent older plugins from
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   not understanding a new browser's ABI, these masks change the
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   values of those selectors on those platforms. To remain backwards
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   compatible with differenet versions of the browser, plugins can
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   use these masks to dynamically determine and use the correct C++
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   ABI that the browser is expecting. This does not apply to Windows
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   as Microsoft's COM ABI will likely not change.
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_GCC3_MASK  0x10000000
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   gcc 3.x generated vtables on UNIX and OSX are incompatible with
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   previous compilers.
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined (XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_GCC3 0
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_MACHO_MASK 0x01000000
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   On OSX, the Mach-O executable format is significantly
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   different than CFM. In addition to having a different
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   C++ ABI, it also has has different C calling convention.
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   You must use glue code when calling between CFM and
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   Mach-O C functions.
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(TARGET_RT_MAC_MACHO))
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _NP_ABI_MIXIN_FOR_MACHO 0
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of variable names for which NPP_GetValue shall be implemented
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginNameString = 1,
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginDescriptionString,
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginWindowBool,
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginTransparentBool,
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVjavaClass,                /* Not implemented in Mozilla 1.0 */
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginWindowSize,
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginTimerInterval,
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableInstance = (10 | NP_ABI_MASK),
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableIID = 11,
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Introduced in Mozilla 0.9.9 */
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVjavascriptPushCallerBool = 12,
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Introduced in Mozilla 1.0 */
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginKeepLibraryInMemory = 13,
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginNeedsXEmbed         = 14,
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject for scripting the plugin. Introduced in Firefox
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * 1.0 (NPAPI minor version 14).
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVpluginScriptableNPObject  = 15,
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the plugin value (as \0-terminated UTF-8 string data) for
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * form submission if the plugin is part of a form. Use
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * NPN_MemAlloc() to allocate memory for the string data. Introduced
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in Mozilla 1.8b2 (NPAPI minor version 15).
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPPVformValue = 16
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPVariable;
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * List of variable names for which NPN_GetValue is implemented by Mozilla
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVxDisplay = 1,
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVxtAppContext,
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVnetscapeWindow,
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVjavascriptEnabledBool,
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVasdEnabledBool,
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVisOfflineBool,
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* 10 and over are available on Mozilla builds starting with 0.9.4 */
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVserviceManager = (10 | NP_ABI_MASK),
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVDOMElement     = (11 | NP_ABI_MASK),   /* available in Mozilla 1.2 */
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVDOMWindow      = (12 | NP_ABI_MASK),
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVToolkit        = (13 | NP_ABI_MASK),
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVSupportsXEmbedBool = 14,
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject wrapper for the browser window. */
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVWindowNPObject = 15,
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Get the NPObject wrapper for the plugins DOM element. */
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVPluginElementNPObject = 16
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Used for negotiating drawing models */
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVpluginDrawingModel = 1000
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsQuickDrawBool = 2000
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  , NPNVsupportsCoreGraphicsBool = 2001
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPNVariable;
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The type of Tookkit the widgets use
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVGtk12 = 1,
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPNVGtk2
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPNToolkitType;
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The type of a NPWindow - it specifies the type of the data structure
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * returned in the window field.
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowTypeWindow = 1,
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowTypeDrawable
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPWindowType;
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPWindow
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* window;  /* Platform specific window handle */
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 /* OS/2: x - Position of bottom left corner  */
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 /* OS/2: y - relative to visible netscape window */
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 x;       /* Position of top left corner relative */
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 y;       /* to a netscape page.					*/
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 width;  /* Maximum window size */
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 height;
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPRect clipRect; /* Clipping rectangle in port coordinates */
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                   /* Used by MAC only.			  */
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(XP_UNIX) && !defined(XP_MACOSX)
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void * ws_info; /* Platform-dependent additonal data */
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_UNIX */
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindowType type; /* Is this a window or a drawable? */
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPWindow;
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPFullPrint
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPBool pluginPrinted;/* Set TRUE if plugin handled fullscreen printing */
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPBool printOne;		 /* TRUE if plugin should print one copy to default printer */
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* platformPrint; /* Platform-specific printing info */
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPFullPrint;
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEmbedPrint
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPWindow window;
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void* platformPrint; /* Platform-specific printing info */
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEmbedPrint;
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPPrint
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 mode;               /* NP_FULL or NP_EMBED */
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  union
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    NPFullPrint fullPrint;   /* if mode is NP_FULL */
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    NPEmbedPrint embedPrint; /* if mode is NP_EMBED */
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } print;
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPPrint;
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef EventRecord	NPEvent;
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_WIN)
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEvent
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint16 event;
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 wParam;
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 lParam;
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEvent;
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_OS2)
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _NPEvent
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 event;
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 wParam;
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32 lParam;
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NPEvent;
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined (XP_UNIX) && defined(MOZ_X11)
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef XEvent NPEvent;
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void*			NPEvent;
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_MACOSX */
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void* NPRegion;
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NP_NO_QUICKDRAW
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef RgnHandle NPQDRegion;
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef CGPathRef NPCGRegion;
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_WIN)
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef HRGN NPRegion;
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(XP_UNIX) && defined(MOZ_X11)
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef Region NPRegion;
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void *NPRegion;
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_MACOSX */
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_MACOSX
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Mac-specific structures and definitions.
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct NP_Port
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CGrafPtr port; /* Grafport */
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 portx;   /* position inside the topmost window */
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32 porty;
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NP_Port;
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct NP_CGContext
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CGContextRef context;
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  WindowRef window;
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} NP_CGContext;
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Non-standard event types that can be passed to HandleEvent
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum NPEventType {
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_GetFocusEvent = (osEvt + 16),
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_LoseFocusEvent,
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_AdjustCursorEvent,
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_MenuCommandEvent,
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ClippingChangedEvent,
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ScrollingBeginsEvent = 1000,
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NPEventType_ScrollingEndsEvent
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef OBSOLETE
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define getFocusEvent     (osEvt + 16)
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define loseFocusEvent    (osEvt + 17)
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define adjustCursorEvent (osEvt + 18)
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_MACOSX */
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values for mode passed to NPP_New:
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EMBED 1
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_FULL  2
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values for stream type passed to NPP_NewStream:
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NORMAL     1
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_SEEK       2
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ASFILE     3
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_ASFILEONLY 4
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_MAXREADY	(((unsigned)(~0)<<1)>>1)
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*		     Error and Reason Code definitions			*/
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values of type NPError:
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_BASE                         0
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_NO_ERROR                    (NPERR_BASE + 0)
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_GENERIC_ERROR               (NPERR_BASE + 1)
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_INSTANCE_ERROR      (NPERR_BASE + 2)
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_FUNCTABLE_ERROR     (NPERR_BASE + 3)
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_MODULE_LOAD_FAILED_ERROR    (NPERR_BASE + 4)
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_OUT_OF_MEMORY_ERROR         (NPERR_BASE + 5)
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PLUGIN_ERROR        (NPERR_BASE + 6)
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PLUGIN_DIR_ERROR    (NPERR_BASE + 7)
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INCOMPATIBLE_VERSION_ERROR  (NPERR_BASE + 8)
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_PARAM               (NPERR_BASE + 9)
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_INVALID_URL                 (NPERR_BASE + 10)
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_FILE_NOT_FOUND              (NPERR_BASE + 11)
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_NO_DATA                     (NPERR_BASE + 12)
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPERR_STREAM_NOT_SEEKABLE         (NPERR_BASE + 13)
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Values of type NPReason:
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_BASE          0
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_DONE         (NPRES_BASE + 0)
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_NETWORK_ERR  (NPRES_BASE + 1)
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPRES_USER_BREAK   (NPRES_BASE + 2)
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Don't use these obsolete error codes any more.
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_NOERR  NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version feature information
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_STREAMOUTPUT             8
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NOTIFICATION             9
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_LIVECONNECT              9
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_WIN16_HAS_LIVECONNECT        9
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_68K_HAS_LIVECONNECT          11
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_WINDOWLESS               11
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_XPCONNECT_SCRIPTING      13
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NPRUNTIME_SCRIPTING      14
6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_FORM_VALUES              15
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_POPUPS_ENABLED_STATE     16
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_RESPONSE_HEADERS         17
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_NPOBJECT_ENUM            18
6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19
6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*                        Function Prototypes                           */
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*----------------------------------------------------------------------*/
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(_WINDOWS) && !defined(WIN32)
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_LOADDS  _loadds
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__OS2__)
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_LOADDS _System
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NP_LOADDS
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NPP_* functions are provided by the plugin and called by the navigator.
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef XP_UNIX
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char* NPP_GetMIMEDescription(void);
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* XP_UNIX */
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_Initialize(void);
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_Shutdown(void);
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,
6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          uint16 mode, int16 argc, char* argn[],
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                          char* argv[], NPSavedData* saved);
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                NPStream* stream, NPBool seekable,
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                uint16* stype);
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    NPReason reason);
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32   NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32   NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32 offset,
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            int32 len, void* buffer);
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const char* fname);
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);
7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int16   NP_LOADDS NPP_HandleEvent(NPP instance, void* event);
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPP_URLNotify(NPP instance, const char* url,
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                NPReason reason, void* notifyData);
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef OJI
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)jref    NP_LOADDS NPP_GetJavaClass(void);
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_GetValue(NPP instance, NPPVariable variable, void *value);
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPP_SetValue(NPP instance, NPNVariable variable, void *value);
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NPN_* functions are provided by the navigator and called by the plugin.
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_Version(int* plugin_major, int* plugin_minor,
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              int* netscape_major, int* netscape_minor);
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_GetURLNotify(NPP instance, const char* url,
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   const char* target, void* notifyData);
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_GetURL(NPP instance, const char* url,
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             const char* target);
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_PostURLNotify(NPP instance, const char* url,
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    const char* target, uint32 len,
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    const char* buf, NPBool file,
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                    void* notifyData);
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_PostURL(NPP instance, const char* url,
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const char* target, uint32 len,
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                              const char* buf, NPBool file);
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_NewStream(NPP instance, NPMIMEType type,
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                const char* target, NPStream** stream);
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int32   NP_LOADDS NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer);
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_DestroyStream(NPP instance, NPStream* stream, NPReason reason);
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_Status(NPP instance, const char* message);
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char* NP_LOADDS	NPN_UserAgent(NPP instance);
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void*   NP_LOADDS NPN_MemAlloc(uint32 size);
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_MemFree(void* ptr);
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uint32  NP_LOADDS NPN_MemFlush(uint32 size);
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_ReloadPlugins(NPBool reloadPages);
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef OJI
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)JRIEnv* NP_LOADDS NPN_GetJavaEnv(void);
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)jref    NP_LOADDS NPN_GetJavaPeer(NPP instance);
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_GetValue(NPP instance, NPNVariable variable, void *value);
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)NPError NP_LOADDS NPN_SetValue(NPP instance, NPPVariable variable, void *value);
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *invalidRect);
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion);
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_ForceRedraw(NPP instance);
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//jam changed two functions below to return bool
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool    NP_LOADDS NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);
7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool    NP_LOADDS NPN_PopPopupsEnabledState(NPP instance);
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void    NP_LOADDS NPN_PluginThreadAsyncCall(NPP instance,
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                            void (*func) (void *),
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                            void *userData);
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  /* end extern "C" */
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* RC_INVOKED */
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __OS2__
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma pack()
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* _NPAPI_H_ */
762