/* * Copyright (C) 2005, 2006, 2007 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __LP64__ #import "WebBasePluginPackage.h" #ifdef BUILDING_ON_TIGER typedef short ResFileRefNum; #endif #if defined(__ppc__) && !defined(__LP64__) #define SUPPORT_CFM #endif typedef enum { WebCFMExecutableType, WebMachOExecutableType } WebExecutableType; @interface WebNetscapePluginPackage : WebBasePluginPackage { NPPluginFuncs pluginFuncs; NPNetscapeFuncs browserFuncs; uint16 pluginSize; uint16 pluginVersion; ResFileRefNum resourceRef; NPP_NewProcPtr NPP_New; NPP_DestroyProcPtr NPP_Destroy; NPP_SetWindowProcPtr NPP_SetWindow; NPP_NewStreamProcPtr NPP_NewStream; NPP_DestroyStreamProcPtr NPP_DestroyStream; NPP_StreamAsFileProcPtr NPP_StreamAsFile; NPP_WriteReadyProcPtr NPP_WriteReady; NPP_WriteProcPtr NPP_Write; NPP_PrintProcPtr NPP_Print; NPP_HandleEventProcPtr NPP_HandleEvent; NPP_URLNotifyProcPtr NPP_URLNotify; NPP_GetValueProcPtr NPP_GetValue; NPP_SetValueProcPtr NPP_SetValue; NPP_ShutdownProcPtr NPP_Shutdown; NPP_GetJavaClassProcPtr NPP_GetJavaClass; BOOL isLoaded; BOOL needsUnload; unsigned int instanceCount; #ifdef SUPPORT_CFM BOOL isBundle; BOOL isCFM; CFragConnectionID connID; #endif } // Netscape plug-in packages must be explicitly opened and closed by each plug-in instance. // This is to protect Netscape plug-ins from being unloaded while they are in use. - (void)open; - (void)close; - (WebExecutableType)executableType; - (NPP_NewProcPtr)NPP_New; - (NPP_DestroyProcPtr)NPP_Destroy; - (NPP_SetWindowProcPtr)NPP_SetWindow; - (NPP_NewStreamProcPtr)NPP_NewStream; - (NPP_WriteReadyProcPtr)NPP_WriteReady; - (NPP_WriteProcPtr)NPP_Write; - (NPP_StreamAsFileProcPtr)NPP_StreamAsFile; - (NPP_DestroyStreamProcPtr)NPP_DestroyStream; - (NPP_HandleEventProcPtr)NPP_HandleEvent; - (NPP_URLNotifyProcPtr)NPP_URLNotify; - (NPP_GetValueProcPtr)NPP_GetValue; - (NPP_SetValueProcPtr)NPP_SetValue; - (NPP_PrintProcPtr)NPP_Print; @end #endif