home *** CD-ROM | disk | FTP | other *** search
/ Netscape Plug-Ins Developer's Kit / Netscape_Plug-Ins_Developers_Kit.iso / source / Chap09 / NPTREE / NPSHELL.CPP next >
Encoding:
C/C++ Source or Header  |  1996-05-21  |  5.1 KB  |  257 lines

  1.  
  2. //
  3. // npshell.cpp - Plug-in methods called from Netscape.
  4. //
  5.  
  6. #include <string.h>
  7. #include "..\inc\stdafx.h"
  8. #include "npwindow.h"
  9. #include "nptree.h"
  10.  
  11.  
  12. CWinApp    theApp;
  13.  
  14. //
  15. // NPP_Initialize
  16. //
  17. NPError NPP_Initialize(void)
  18. {
  19.   MessageBox(NULL, "NPP_Initialize","Inside NPP_Initialize",MB_OK);
  20.   
  21.     return NPERR_NO_ERROR;
  22. }
  23.  
  24.  
  25. //
  26. // NPP_Shutdown
  27. //
  28. void NPP_Shutdown(void)
  29. {
  30.   MessageBox(NULL, "NPP_Shutdown","Inside NPP_Shutdown",MB_OK);
  31.   
  32. }
  33.  
  34.  
  35. //
  36. //    NPP_GetJavaClass - This plug-in does not use the Java Runtime Interface (JRI)
  37. //
  38. jref NPP_GetJavaClass (void)
  39. {
  40.     // If no java is used return NULL.
  41.  
  42.     return NULL;
  43. }
  44.  
  45.  
  46. //
  47. // NPP_New - Create a new plug-in instance.
  48. //
  49. NPError NP_LOADDS NPP_New (NPMIMEType pluginType,
  50.     NPP pInstance,
  51.     uint16 mode,
  52.     int16 argc,
  53.     char* argn[],
  54.     char* argv[],
  55.     NPSavedData* saved)
  56. {   
  57.   MessageBox(NULL, "NPP_New","Inside NPP_New",MB_OK);
  58.   
  59.     if (pInstance == NULL)
  60.         return NPERR_INVALID_INSTANCE_ERROR;
  61.  
  62.     // Create a new CCpuMon object
  63.  
  64.     CCpuMon* pCpuMon = new CCpuMon (pInstance);
  65.  
  66.     // Attach it to the instance structure
  67.  
  68.     pInstance->pdata = pCpuMon;
  69.  
  70.     // No window yet
  71.  
  72.     pCpuMon->pWindow = NULL;
  73.  
  74.     // Save our plug-in's mode
  75.  
  76.   //  pCpuMon->mode = mode;       
  77.  
  78.     return NPERR_NO_ERROR;
  79. }
  80.  
  81.  
  82. //
  83. // NPP_Destroy - Destroy our plug-in instance.
  84. //
  85. NPError NP_LOADDS NPP_Destroy (NPP pInstance, NPSavedData** save)
  86. {
  87.   MessageBox(NULL, "NPP_Destroy","Inside NPP_Destroy",MB_OK);
  88.   
  89.     CCpuMon* pCpuMon = (CCpuMon *)pInstance->pdata;
  90.  
  91.     if (pCpuMon)
  92.     {
  93.         if (pCpuMon->pWindow)
  94.         {
  95.             // Unsubclass the window, clean it up and delete it.
  96.  
  97.             pCpuMon->pWindow->UnsubclassWindow ();
  98.             pCpuMon->pWindow->CleanupWindow();
  99.  
  100.             delete pCpuMon->pWindow;
  101.         }
  102.  
  103.         pCpuMon->Close ();
  104.  
  105.         delete pCpuMon;
  106.         pInstance->pdata = NULL;
  107.     }
  108.     return NPERR_NO_ERROR;
  109. }
  110.     
  111.  
  112. //
  113. // NPP_SetWindow - A window was created, resized, or destroyed.
  114. //
  115. NPError NP_LOADDS NPP_SetWindow (NPP pInstance, NPWindow* window)
  116. {    
  117.   MessageBox(NULL, "NPP_SetWindow","Inside NPP_SetWindow",MB_OK);
  118.   
  119.     if (!window)
  120.         return NPERR_GENERIC_ERROR;
  121.  
  122.     if (!pInstance)
  123.         return NPERR_INVALID_INSTANCE_ERROR;
  124.  
  125.     // Get instance data
  126.  
  127.     CCpuMon* pCpuMon = (CCpuMon *)pInstance->pdata; 
  128.  
  129.     if (!pCpuMon) 
  130.         return NPERR_GENERIC_ERROR;
  131.  
  132.     // Spurious entry - just return
  133.  
  134.     if (!window->window && !pCpuMon->pWindow) 
  135.         return NPERR_NO_ERROR;
  136.  
  137.     // Window should have been destroyed, but because of a bug in
  138.     // Navigator, we consider this a spurious entry.
  139.  
  140.     if (!window->window && pCpuMon->pWindow)
  141.         return NPERR_NO_ERROR;
  142.  
  143.     if (!pCpuMon->pWindow && window->window)    
  144.     {
  145.         // Create our plug-in's window class and
  146.         // subclass it to Navigators.
  147. MessageBox(NULL, "About to subclass","Inside NPP_SetWindow",MB_OK);
  148.   
  149.         pCpuMon->pWindow = new CPluginWindow (pCpuMon);
  150. MessageBox(NULL, "Constructor complete","Inside NPP_SetWindow",MB_OK);
  151.       
  152.         BOOL rc = pCpuMon->pWindow->SubclassWindow ((HWND)window->window);
  153.  
  154.         // Init window and give the object a pointer to
  155.         // the cpu monitor object.
  156.  
  157.         pCpuMon->pWindow->InitWindow ();
  158.     }
  159.     
  160.     // Redraw the window.
  161.  
  162.     pCpuMon->pWindow->InvalidateRect (NULL);
  163.     pCpuMon->pWindow->UpdateWindow();
  164.         
  165.     return NPERR_NO_ERROR;
  166. }
  167.  
  168.  
  169. //
  170. // NPP_NewStream - A new stream was created.
  171. //
  172. NPError NP_LOADDS NPP_NewStream(NPP pInstance,
  173.     NPMIMEType type,
  174.     NPStream* pStream, 
  175.     NPBool seekable,
  176.     uint16* stype)
  177. {
  178.   MessageBox(NULL, "NPP_NewStream","Inside NPP_NewStream",MB_OK);
  179.   
  180.     if(!pInstance)
  181.         return NPERR_INVALID_INSTANCE_ERROR;
  182.  
  183.     CCpuMon* pCpuMon = (CCpuMon *)pInstance->pdata;
  184.  
  185.     *stype = NP_ASFILE;
  186.  
  187.     if (pCpuMon)
  188.         pCpuMon->Open (pStream);
  189.  
  190.     return NPERR_NO_ERROR;
  191. }
  192.  
  193.  
  194. //
  195. // NPP_WriteReady - Returns amount of data we can handle for the next NPP_Write
  196. //                             
  197. int32 NP_LOADDS    NPP_WriteReady (NPP pInstance, NPStream *stream)
  198. {
  199.   MessageBox(NULL, "NPP_WriteReady","Inside NPP_WriteReady",MB_OK);
  200.   
  201.     return 0x0FFFFFFF;
  202. }
  203.  
  204.  
  205. //
  206. // NPP_Write 
  207. // 
  208. int32 NP_LOADDS NPP_Write (NPP pInstance, NPStream *stream, int32 offset, int32 len, void *buffer)
  209. {   
  210.   MessageBox(NULL, "NPP_Write","Inside NPP_Write",MB_OK);
  211.   
  212.     return len;
  213. }
  214.  
  215.  
  216. //
  217. // NPP_StreamAsFile 
  218. // 
  219. void NP_LOADDS NPP_StreamAsFile (NPP pInstance, NPStream* stream, const char* fname)
  220. {
  221.   MessageBox(NULL, "NPP_StreamAsFile","Inside NPP_StreamAsFile",MB_OK);
  222.   
  223.     CCpuMon* pCpuMon = (CCpuMon *)pInstance->pdata;
  224.      
  225.      if (pCpuMon)   
  226.         pCpuMon->GotFileName (fname);
  227. }
  228.  
  229.  
  230. //
  231. // NPP_DestroyStream 
  232. // 
  233. NPError NP_LOADDS NPP_DestroyStream (NPP pInstance, NPStream *stream, NPError reason)
  234. {
  235.   MessageBox(NULL, "NPP_DestroyStream","Inside NPP_DestroyStream",MB_OK);
  236.   
  237.      CCpuMon* pCpuMon = (CCpuMon *)pInstance->pdata;
  238.      
  239.      if (pCpuMon)   
  240.         pCpuMon->EndOfStream ();
  241.            
  242.     return NPERR_NO_ERROR;
  243. }
  244.  
  245.  
  246. //
  247. // NPP_Print - This plug-in does not print.
  248. //
  249. void NP_LOADDS NPP_Print (NPP pInstance, NPPrint* printInfo)
  250. {
  251. }
  252.     
  253.  
  254.  
  255.  
  256.  
  257.