home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1995 August / pcpro-0895.iso / code / c / prog10-1.txt next >
Encoding:
Text File  |  1995-06-10  |  1.6 KB  |  63 lines

  1. //-----------------------------------------------------------------------
  2. //   Name:    IsChicago
  3. //   Purpose:    Is this the dreaded Chicago ?
  4. //-----------------------------------------------------------------------
  5.  
  6. BOOL FAR PASCAL IsChicago (void)
  7. {
  8.     WORD Ver;
  9.  
  10.     Ver = LOWORD (GetVersion ());
  11.     return (LOBYTE (Ver) >= 4 || HIBYTE (Ver) >= 95);
  12. }
  13.  
  14. //-----------------------------------------------------------------------
  15. //   Name:    Ctl3DEnable
  16. //   Purpose:    Enable or disable CTL3D for this application
  17. //-----------------------------------------------------------------------
  18.  
  19. void FAR PASCAL Ctl3DEnable (HINSTANCE hInst, BOOL fEnable)
  20. {
  21.     static HINSTANCE hLib = NULL;
  22.  
  23.     WORD ErrMode;
  24.     typedef BOOL (WINAPI* CTL3DPROC)(HINSTANCE);
  25.     CTL3DPROC proc;
  26.  
  27.     // Chicago has it's own CTL3D stuff built-in
  28.     if (IsChicago ()) return;
  29.  
  30.     if (fEnable && hLib == NULL)
  31.     {
  32.     ErrMode = SetErrorMode (SEM_NOOPENFILEERRORBOX);
  33.  
  34.     #ifdef __WIN32__
  35.     hLib = LoadLibrary ('CTL3D32.DLL');
  36.     #else
  37.     hLib = LoadLibrary ('CTL3DV2.DLL');
  38.     if (hLib < 0x20) hLib = LoadLibrary ('CTL3D.DLL');
  39.     #endif
  40.  
  41.     SetErrorMode (ErrMode);
  42.     if (hLib < (HINSTANCE) 0x20) return;
  43.  
  44.     // Call Ctl3dRegister
  45.     proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dRegister');
  46.     if (proc != NULL) proc (hInst);
  47.  
  48.     // Call Ctl3dAutoSubclass
  49.     proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dAutoSubclass');
  50.     if (proc != NULL) proc (hInst);
  51.     }
  52.  
  53.     if (fEnable == FALSE && hLib != NULL)
  54.     {
  55.     // Call Ctl3dUnregister
  56.     proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dUnregister');
  57.     if (proc != NULL) proc (hInst);
  58.     FreeLibrary (hLib);
  59.     hLib = NULL;
  60.     }
  61. }
  62.  
  63.