예제 #1
0
파일: npp_gate.cpp 프로젝트: Samango/src
// during this call we know when the plugin window is ready or
// is about to be destroyed so we can do some gui specific
// initialization and shutdown
NPError NPP_SetWindow (NPP instance, NPWindow* pNPWindow)
{    
  if(instance == NULL)	return NPERR_INVALID_INSTANCE_ERROR;
  if(pNPWindow == NULL)	return NPERR_GENERIC_ERROR;
  if(pNPWindow->window == NULL)	return NPERR_GENERIC_ERROR;
	if(instance->pdata == NULL)	return NPERR_GENERIC_ERROR;
	CPlugin* p = (CPlugin*)instance->pdata;
  p->SetWindow((HWND)pNPWindow->window);
  return NPERR_NO_ERROR;
}
예제 #2
0
// during this call we know when the plugin window is ready or
// is about to be destroyed so we can do some gui specific
// initialization and shutdown
NPError NPP_SetWindow (NPP instance, NPWindow* pNPWindow)
{    
	if(instance == NULL)
		return NPERR_INVALID_INSTANCE_ERROR;

	NPError rv = NPERR_NO_ERROR;

	if(pNPWindow == NULL)
		return NPERR_GENERIC_ERROR;

	CPlugin * pPlugin = (CPlugin *)instance->pdata;

	if(pPlugin == NULL) 
		return NPERR_GENERIC_ERROR;
	
	// window just created
	if(!pPlugin->isInitialized()) 
	{ 
		if(!pPlugin->init(pNPWindow)) 
		{
			return NPERR_MODULE_LOAD_FAILED_ERROR;
		}
		return NPERR_NO_ERROR;
	}
	else
	{
		// window goes away
		if(pNPWindow->window == NULL)
			return NPERR_NO_ERROR;

		// window resized
		if(pNPWindow->window != NULL)
		{
			pPlugin->SetWindow(pNPWindow);
			return NPERR_NO_ERROR;
		}
	}

	return rv;
}
예제 #3
0
// during this call we know when the plugin window is ready or
// is about to be destroyed so we can do some gui specific
// initialization and shutdown
NPError NPP_SetWindow(NPP instance, NPWindow * pNPWindow)
{
    if (instance == NULL)
        return NPERR_INVALID_INSTANCE_ERROR;

    NPError rv = NPERR_NO_ERROR;

    if (pNPWindow == NULL)
        return NPERR_GENERIC_ERROR;

    CPlugin *pPlugin = (CPlugin *) instance->pdata;

    if (pPlugin == NULL)
        return NPERR_GENERIC_ERROR;

    // window just created
    if (!pPlugin->isInitialized() && (pNPWindow->window != NULL)) {
        if (!pPlugin->init(pNPWindow)) {
            delete pPlugin;
            pPlugin = NULL;
            return NPERR_MODULE_LOAD_FAILED_ERROR;
        }
    }
    // window goes away
    if ((pNPWindow->window == NULL) && pPlugin->isInitialized())
        return NPERR_NO_ERROR;

    // window resized
    if (pPlugin->isInitialized() && (pNPWindow->window != NULL)) {
        printf("Window resized\n");
        pPlugin->SetWindow(pNPWindow);
        return NPERR_NO_ERROR;
    }
    // this should not happen, nothing to do
    if ((pNPWindow->window == NULL) && !pPlugin->isInitialized())
        return NPERR_NO_ERROR;

    return rv;
}