// 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; }
// 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; }
// 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; }