home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------
- // Name: IsChicago
- // Purpose: Is this the dreaded Chicago ?
- //-----------------------------------------------------------------------
-
- BOOL FAR PASCAL IsChicago (void)
- {
- WORD Ver;
-
- Ver = LOWORD (GetVersion ());
- return (LOBYTE (Ver) >= 4 || HIBYTE (Ver) >= 95);
- }
-
- //-----------------------------------------------------------------------
- // Name: Ctl3DEnable
- // Purpose: Enable or disable CTL3D for this application
- //-----------------------------------------------------------------------
-
- void FAR PASCAL Ctl3DEnable (HINSTANCE hInst, BOOL fEnable)
- {
- static HINSTANCE hLib = NULL;
-
- WORD ErrMode;
- typedef BOOL (WINAPI* CTL3DPROC)(HINSTANCE);
- CTL3DPROC proc;
-
- // Chicago has it's own CTL3D stuff built-in
- if (IsChicago ()) return;
-
- if (fEnable && hLib == NULL)
- {
- ErrMode = SetErrorMode (SEM_NOOPENFILEERRORBOX);
-
- #ifdef __WIN32__
- hLib = LoadLibrary ('CTL3D32.DLL');
- #else
- hLib = LoadLibrary ('CTL3DV2.DLL');
- if (hLib < 0x20) hLib = LoadLibrary ('CTL3D.DLL');
- #endif
-
- SetErrorMode (ErrMode);
- if (hLib < (HINSTANCE) 0x20) return;
-
- // Call Ctl3dRegister
- proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dRegister');
- if (proc != NULL) proc (hInst);
-
- // Call Ctl3dAutoSubclass
- proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dAutoSubclass');
- if (proc != NULL) proc (hInst);
- }
-
- if (fEnable == FALSE && hLib != NULL)
- {
- // Call Ctl3dUnregister
- proc = (CTL3DPROC) GetProcAddress (hLib, 'Ctl3dUnregister');
- if (proc != NULL) proc (hInst);
- FreeLibrary (hLib);
- hLib = NULL;
- }
- }
-
-