コード例 #1
0
ファイル: NPSqueakStub.c プロジェクト: Geal/Squeak-VM
int main(NPNetscapeFuncs* nsTable, NPPluginFuncs* pluginFuncs, NPP_ShutdownUPP* unloadUpp)
{
	int err=noErr;
	int navMinorVers = nsTable->version & 0xFF;
	
	gRememberOldgNetscapeFuncsForSafariIssue = *nsTable;
	
	gWhere = LoadLibViaPath("NPSqueak.bundle");
	if (gWhere == nil)
		return -1;
		
	GetMain = (void *) ioFindExternalFunctionIn("npmain",(int) gWhere);
	if (GetMain == NULL) 
		GetMain = (void *) ioFindExternalFunctionIn("main",(int) gWhere);
	err = GetMain(nsTable, pluginFuncs, unloadUpp);
	
	//
	// Set up the plugin function table that Netscape will use to
	// call us.  Netscape needs to know about our version and size
	// and have a UniversalProcPointer for every function we implement.
	//

	pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
	pluginFuncs->size = sizeof(NPPluginFuncs);
	pluginFuncs->newp = NewNPP_NewProc(Private_New);
	pluginFuncs->destroy = NewNPP_DestroyProc(Private_Destroy);
	pluginFuncs->setwindow = NewNPP_SetWindowProc(Private_SetWindow);
	pluginFuncs->newstream = NewNPP_NewStreamProc(Private_NewStream);
	pluginFuncs->destroystream = NewNPP_DestroyStreamProc(Private_DestroyStream);
	pluginFuncs->asfile = NewNPP_StreamAsFileProc(Private_StreamAsFile);
	pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
	pluginFuncs->write = NewNPP_WriteProc(Private_Write);
	pluginFuncs->print = NewNPP_PrintProc(Private_Print);
	pluginFuncs->event = NewNPP_HandleEventProc(Private_HandleEvent);	
	if( navMinorVers >= NPVERS_HAS_NOTIFICATION )
	{	
		pluginFuncs->urlnotify = NewNPP_URLNotifyProc(Private_URLNotify);			
	}
	if( navMinorVers >= NPVERS_HAS_LIVECONNECT )
	{
		pluginFuncs->javaClass	= (JRIGlobalRef) Private_GetJavaClass();
	}
	*unloadUpp = NewNPP_ShutdownProc(Private_Shutdown);

	return err;
}
コード例 #2
0
ファイル: np_entry.cpp プロジェクト: zcp0415/Adel_V7.5
NPError main(NPNetscapeFuncs* aNPNFuncs, NPPluginFuncs* aNPPFuncs, NPP_ShutdownUPP* aUnloadUpp)
{
	NPError rv = NPERR_NO_ERROR;

	if (!aUnloadUpp)
		rv = NPERR_INVALID_FUNCTABLE_ERROR;

	if (rv == NPERR_NO_ERROR)
		rv = fillNetscapeFunctionTable(aNPNFuncs);

	if (rv == NPERR_NO_ERROR) {
		// defer static constructors until the global functions are initialized.
		__InitCode__();
		rv = fillPluginFunctionTable(aNPPFuncs);
	}

	*aUnloadUpp = NewNPP_ShutdownProc(Private_Shutdown);
	gResFile = CurResFile();
	rv = Private_Initialize();

	return rv;
}