home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / RAYCAST.ZIP / WINGDLL.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-14  |  2.7 KB  |  117 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // WINGDLL.CPP
  3. //
  4. // Interface class for WinG.
  5. //
  6. // Uses LoadLibrary and GetProcAddress to populate the class.
  7. //
  8. /////////////////////////////////////////////////////////////////////////////
  9.  
  10. #include "os.h"
  11. #ifdef OS_WINDOWS
  12. #include <wing.h>          //#includes WINDOWS.H
  13. #include "wingdll.h"
  14.  
  15. WinGdll::WinGdll()
  16. {
  17.    m_bLoaded = FALSE;
  18. }
  19.  
  20. WinGdll::~WinGdll()
  21. {
  22.    if (m_bLoaded)
  23.       FreeLibrary (m_hLib);
  24.    m_bLoaded = FALSE;
  25. }
  26.  
  27. BOOL WinGdll::Load()
  28. {
  29.     m_hLib = LoadLibrary("wing32.dll"); 
  30.     if( m_hLib == NULL ) {
  31.         return FALSE;
  32.     }
  33.  
  34.       //link the DLL's functions to our function pointers.
  35.  
  36.    pCreateDC = (wingCreateDC) GetProcAddress (m_hLib, "WinGCreateDC");
  37.     if (pCreateDC == NULL) {
  38.         FreeLibrary (m_hLib);
  39.         return FALSE;
  40.     }
  41.  
  42.    pRecommendDIBFormat = (wingRecommendDIBFormat)
  43.                         GetProcAddress (m_hLib, "WinGRecommendDIBFormat");
  44.     if (pRecommendDIBFormat == NULL) {
  45.         FreeLibrary (m_hLib);
  46.         return FALSE;
  47.     }
  48.  
  49.    pCreateBitmap = (wingCreateBitmap) 
  50.                         GetProcAddress (m_hLib, "WinGCreateBitmap");
  51.     if (pCreateBitmap == NULL) {
  52.         FreeLibrary (m_hLib);
  53.         return FALSE;
  54.     }
  55.  
  56.    pGetDIBPointer = (wingGetDIBPointer) 
  57.                         GetProcAddress (m_hLib, "WinGGetDIBPointer");
  58.     if (pGetDIBPointer == NULL) {
  59.         FreeLibrary (m_hLib);
  60.         return FALSE;
  61.     }
  62.  
  63.    pGetDIBColorTable = (wingGetDIBColorTable)
  64.                         GetProcAddress (m_hLib, "WinGGetDIBColorTable");
  65.     if (pGetDIBColorTable == NULL) {
  66.         FreeLibrary (m_hLib);
  67.         return FALSE;
  68.     }
  69.  
  70.    pSetDIBColorTable = (wingSetDIBColorTable)
  71.                         GetProcAddress (m_hLib, "WinGSetDIBColorTable");
  72.     if (pSetDIBColorTable == NULL) {
  73.         FreeLibrary (m_hLib);
  74.         return FALSE;
  75.     }
  76.  
  77.  
  78.    pCreateHalftonePalette = (wingCreateHalftonePalette)
  79.                         GetProcAddress (m_hLib, "WinGCreateHalftonePalette");
  80.     if (pCreateHalftonePalette == NULL) {
  81.         FreeLibrary (m_hLib);
  82.         return FALSE;
  83.     }
  84.  
  85.    pCreateHalftoneBrush = (wingCreateHalftoneBrush)
  86.                         GetProcAddress (m_hLib, "WinGCreateHalftoneBrush");
  87.     if (pCreateHalftoneBrush == NULL) {
  88.         FreeLibrary (m_hLib);
  89.         return FALSE;
  90.     }
  91.  
  92.    pBitBlt = (wingBitBlt) GetProcAddress (m_hLib, "WinGBitBlt");
  93.     if (pBitBlt == NULL) {
  94.         FreeLibrary (m_hLib);
  95.         return FALSE;
  96.     }
  97.  
  98.    pStretchBlt = (wingStretchBlt) GetProcAddress (m_hLib, "WinGStretchBlt");
  99.     if (pStretchBlt == NULL) {
  100.         FreeLibrary (m_hLib);
  101.         return FALSE;
  102.     }
  103.  
  104.    m_bLoaded = TRUE;       //ready for business!
  105.    return TRUE;
  106. }
  107.  
  108. BOOL WinGdll::Free()
  109. {
  110.    if (m_bLoaded)
  111.         FreeLibrary (m_hLib);
  112.    m_bLoaded = FALSE;
  113.    return TRUE;
  114. }
  115.  
  116. #endif
  117.