npn_gate.cpp
上传用户:q202440
上传日期:2019-04-12
资源大小:95k
文件大小:6k
源码类别:

PlugIns编程

开发平台:

C/C++

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is mozilla.org code.
  16.  *
  17.  * The Initial Developer of the Original Code is
  18.  * Netscape Communications Corporation.
  19.  * Portions created by the Initial Developer are Copyright (C) 1998
  20.  * the Initial Developer. All Rights Reserved.
  21.  *
  22.  * Contributor(s):
  23.  *
  24.  * Alternatively, the contents of this file may be used under the terms of
  25.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  26.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  27.  * in which case the provisions of the GPL or the LGPL are applicable instead
  28.  * of those above. If you wish to allow use of your version of this file only
  29.  * under the terms of either the GPL or the LGPL, and not to allow others to
  30.  * use your version of this file under the terms of the MPL, indicate your
  31.  * decision by deleting the provisions above and replace them with the notice
  32.  * and other provisions required by the GPL or the LGPL. If you do not delete
  33.  * the provisions above, a recipient may use your version of this file under
  34.  * the terms of any one of the MPL, the GPL or the LGPL.
  35.  *
  36.  * ***** END LICENSE BLOCK ***** */
  37. ////////////////////////////////////////////////////////////
  38. //
  39. // Implementation of Netscape entry points (NPN_*)
  40. //
  41. #include "npplat.h"
  42. extern NPNetscapeFuncs NPNFuncs;
  43. void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor)
  44. {
  45.   *plugin_major   = NP_VERSION_MAJOR;
  46.   *plugin_minor   = NP_VERSION_MINOR;
  47.   *netscape_major = HIBYTE(NPNFuncs.version);
  48.   *netscape_minor = LOBYTE(NPNFuncs.version);
  49. }
  50. NPError NPN_GetURLNotify(NPP instance, const char *url, const char *target, void* notifyData)
  51. {
  52. int navMinorVers = NPNFuncs.version & 0xFF;
  53.   NPError rv = NPERR_NO_ERROR;
  54.   if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
  55. rv = CallNPN_GetURLNotifyProc(NPNFuncs.geturlnotify, instance, url, target, notifyData);
  56. else
  57. rv = NPERR_INCOMPATIBLE_VERSION_ERROR;
  58.   return rv;
  59. }
  60. NPError NPN_GetURL(NPP instance, const char *url, const char *target)
  61. {
  62.   NPError rv = CallNPN_GetURLProc(NPNFuncs.geturl, instance, url, target);
  63.   return rv;
  64. }
  65. NPError NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file, void* notifyData)
  66. {
  67. int navMinorVers = NPNFuncs.version & 0xFF;
  68.   NPError rv = NPERR_NO_ERROR;
  69. if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
  70. rv = CallNPN_PostURLNotifyProc(NPNFuncs.posturlnotify, instance, url, window, len, buf, file, notifyData);
  71. else
  72. rv = NPERR_INCOMPATIBLE_VERSION_ERROR;
  73.   return rv;
  74. }
  75. NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file)
  76. {
  77.   NPError rv = CallNPN_PostURLProc(NPNFuncs.posturl, instance, url, window, len, buf, file);
  78.   return rv;
  79. NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
  80. {
  81.   NPError rv = CallNPN_RequestReadProc(NPNFuncs.requestread, stream, rangeList);
  82.   return rv;
  83. }
  84. NPError NPN_NewStream(NPP instance, NPMIMEType type, const char* target, NPStream** stream)
  85. {
  86. int navMinorVersion = NPNFuncs.version & 0xFF;
  87.   NPError rv = NPERR_NO_ERROR;
  88. if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT )
  89. rv = CallNPN_NewStreamProc(NPNFuncs.newstream, instance, type, target, stream);
  90. else
  91. rv = NPERR_INCOMPATIBLE_VERSION_ERROR;
  92.   return rv;
  93. }
  94. int32 NPN_Write(NPP instance, NPStream *stream, int32 len, void *buffer)
  95. {
  96. int navMinorVersion = NPNFuncs.version & 0xFF;
  97.   int32 rv = 0;
  98.   if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT )
  99. rv = CallNPN_WriteProc(NPNFuncs.write, instance, stream, len, buffer);
  100. else
  101. rv = -1;
  102.   return rv;
  103. }
  104. NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason)
  105. {
  106. int navMinorVersion = NPNFuncs.version & 0xFF;
  107.   NPError rv = NPERR_NO_ERROR;
  108.   if( navMinorVersion >= NPVERS_HAS_STREAMOUTPUT )
  109. rv = CallNPN_DestroyStreamProc(NPNFuncs.destroystream, instance, stream, reason);
  110. else
  111. rv = NPERR_INCOMPATIBLE_VERSION_ERROR;
  112.   return rv;
  113. }
  114. void NPN_Status(NPP instance, const char *message)
  115. {
  116.   CallNPN_StatusProc(NPNFuncs.status, instance, message);
  117. }
  118. const char* NPN_UserAgent(NPP instance)
  119. {
  120.   const char * rv = NULL;
  121.   rv = CallNPN_UserAgentProc(NPNFuncs.uagent, instance);
  122.   return rv;
  123. }
  124. void* NPN_MemAlloc(uint32 size)
  125. {
  126.   void * rv = NULL;
  127.   rv = CallNPN_MemAllocProc(NPNFuncs.memalloc, size);
  128.   return rv;
  129. }
  130. void NPN_MemFree(void* ptr)
  131. {
  132.   CallNPN_MemFreeProc(NPNFuncs.memfree, ptr);
  133. }
  134. uint32 NPN_MemFlush(uint32 size)
  135. {
  136.   uint32 rv = CallNPN_MemFlushProc(NPNFuncs.memflush, size);
  137.   return rv;
  138. }
  139. void NPN_ReloadPlugins(NPBool reloadPages)
  140. {
  141.   CallNPN_ReloadPluginsProc(NPNFuncs.reloadplugins, reloadPages);
  142. }
  143. #ifdef OJI
  144. JRIEnv* NPN_GetJavaEnv(void)
  145. {
  146.   JRIEnv * rv = NULL;
  147. rv = CallNPN_GetJavaEnvProc(NPNFuncs.getJavaEnv);
  148.   return rv;
  149. }
  150. jref NPN_GetJavaPeer(NPP instance)
  151. {
  152.   jref rv;
  153.   rv = CallNPN_GetJavaPeerProc(NPNFuncs.getJavaPeer, instance);
  154.   return rv;
  155. }
  156. #endif
  157. NPError NPN_GetValue(NPP instance, NPNVariable variable, void *value)
  158. {
  159.   NPError rv = CallNPN_GetValueProc(NPNFuncs.getvalue, instance, variable, value);
  160.   return rv;
  161. }
  162. NPError NPN_SetValue(NPP instance, NPPVariable variable, void *value)
  163. {
  164.   NPError rv = CallNPN_SetValueProc(NPNFuncs.setvalue, instance, variable, value);
  165.   return rv;
  166. }
  167. void NPN_InvalidateRect(NPP instance, NPRect *invalidRect)
  168. {
  169.   CallNPN_InvalidateRectProc(NPNFuncs.invalidaterect, instance, invalidRect);
  170. }
  171. void NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion)
  172. {
  173.   CallNPN_InvalidateRegionProc(NPNFuncs.invalidateregion, instance, invalidRegion);
  174. }
  175. void NPN_ForceRedraw(NPP instance)
  176. {
  177.   CallNPN_ForceRedrawProc(NPNFuncs.forceredraw, instance);
  178. }