if(!npp) return NPERR_INVALID_INSTANCE_ERROR;
_destroystream(NPP npp, NPStream *pstream, NPError reason){        #ifdef NS_DEBUG  printf("\nDestroy Stream called \n\n");#endif	if(!npp)		return NPERR_INVALID_INSTANCE_ERROR;	nsISupports* stream = (nsISupports*) pstream->ndata;	nsIPluginStreamListener* listener;	// DestroyStream can kill two kinds of streams: NPP derived and	// NPN derived.	// check to see if they're trying to kill a NPP stream	if(stream->QueryInterface(kIPluginStreamListenerIID, (void**)&listener) == NS_OK)	{		// XXX we should try to kill this listener here somehow		NS_RELEASE(listener);			return NPERR_NO_ERROR;	}  ns4xStreamWrapper* wrapper = (ns4xStreamWrapper*) pstream->ndata;  NS_ASSERTION(wrapper != NULL, "null wrapper");  if (wrapper == NULL)      return NPERR_INVALID_PARAM;  // This will release the wrapped nsIOutputStream.  delete wrapper;  pstream->ndata = nsnull;  return NPERR_NO_ERROR;}