| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- /*
- ** Command & Conquer Generals Zero Hour(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- // FILE: wolSetup.cpp //////////////////////////////////////////////////////
- // Defines the entry point for the application.
- // Author: Matthew D. Campbell, December 2001
- #ifndef WIN32_LEAN_AND_MEAN
- #define WIN32_LEAN_AND_MEAN
- #endif
- #include <windows.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include "resource.h"
- #include "wolSetup.h"
- #include "verchk.h"
- void registerDLL(const char *dllName)
- {
- HINSTANCE hLib = LoadLibrary(dllName);
- FARPROC lpDllEntryPoint;
-
- if (hLib < (HINSTANCE)HINSTANCE_ERROR)
- {
- return;
- }
-
- // Find the entry point.
- (FARPROC&)lpDllEntryPoint = GetProcAddress(hLib,
- "DllRegisterServer");
- if (lpDllEntryPoint != NULL)
- (*lpDllEntryPoint)();
- else
- ;//unable to locate entry point
- }
- HINSTANCE g_hInst = NULL;
- LRESULT CALLBACK MainDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
- int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- g_hInst = hInstance;
- checkInstalledWolapiVersion();
- DialogBox(g_hInst, (LPCTSTR)IDD_MAINBOX, NULL, (DLGPROC)MainDialogProc);
- return 0;
- }
- // Mesage handler for generals setup box.
- LRESULT CALLBACK GeneralsSetupDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_INITDIALOG:
- {
- SetDlgItemText(hDlg, IDC_EDIT_PATH, g_generalsFilename);
- SetDlgItemText(hDlg, IDC_EDIT_SERIAL, g_generalsSerial);
- return TRUE;
- }
- case WM_COMMAND:
- switch(LOWORD(wParam))
- {
- case IDOK:
- {
- char genPath[_MAX_PATH], genSerial[1024];
- GetDlgItemText(hDlg, IDC_EDIT_PATH, genPath, _MAX_PATH);
- GetDlgItemText(hDlg, IDC_EDIT_SERIAL, genSerial, 1024);
- setupGenerals( genPath, genSerial );
- EndDialog(hDlg, LOWORD(wParam));
- return TRUE;
- }
- case IDCANCEL:
- {
- EndDialog(hDlg, LOWORD(wParam));
- return TRUE;
- }
- }
- break;
- }
- return FALSE;
- }
- void updateDisplay(HWND hDlg)
- {
- checkInstalledWolapiVersion();
- if (g_wolapiInstalled)
- {
- char buf[200];
- sprintf(buf, "%d.%d (%s)", MAJOR(g_wolapiRealVersion), MINOR(g_wolapiRealVersion), g_wolapiRealFilename);
- SetDlgItemText(hDlg, IDC_TEXT_WOLVER, buf);
- }
- else
- {
- SetDlgItemText(hDlg, IDC_TEXT_WOLVER, "Not installed");
- }
- SetDlgItemText(hDlg, IDC_TEXT_WOLDIR, g_wolapiRegFilename);
- SetDlgItemText(hDlg, IDC_TEXT_GENERALSDIR, g_generalsFilename);
- }
- // Mesage handler for main dialog box.
- LRESULT CALLBACK MainDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_INITDIALOG:
- {
- updateDisplay(hDlg);
- return TRUE;
- }
- case WM_COMMAND:
- switch(LOWORD(wParam))
- {
- case IDOK:
- case IDCANCEL:
- {
- EndDialog(hDlg, LOWORD(wParam));
- return TRUE;
- }
- case IDC_SETUP_GENERALS:
- {
- DialogBox(g_hInst, (LPCTSTR)IDD_GENERALSSETUPBOX, hDlg, (DLGPROC)GeneralsSetupDialogProc);
- updateDisplay(hDlg);
- break;
- }
- case IDC_UNINSTALL_GENERALS:
- {
- if (MessageBox(hDlg, "Are you sure you want to delete Generals registry entries?", "Warning!", MB_OKCANCEL) == IDOK)
- {
- MessageBox(hDlg, "Oops! Can't do that yet!", "Unimplemented", MB_OK);
- updateDisplay(hDlg);
- }
- break;
- }
- case IDC_DEBUG_WOLAPI:
- {
- if (g_wolapiInstalled)
- {
- if (MessageBox(hDlg, "Are you sure you want to overwrite installed WOLAPI?", "Warning!", MB_OKCANCEL) == IDOK)
- {
- registerDLL("woldbg.dll");
- updateDisplay(hDlg);
- }
- }
- else
- {
- DialogBox(g_hInst, (LPCTSTR)IDD_GENERALSSETUPBOX, hDlg, (DLGPROC)MainDialogProc);
- }
- break;
- }
- case IDC_RELEASE_WOLAPI:
- {
- if (g_wolapiInstalled)
- {
- if (MessageBox(hDlg, "Are you sure you want to overwrite installed WOLAPI?", "Warning!", MB_OKCANCEL) == IDOK)
- {
- registerDLL("wolapi.dll");
- updateDisplay(hDlg);
- }
- }
- else
- {
- DialogBox(g_hInst, (LPCTSTR)IDD_GENERALSSETUPBOX, hDlg, (DLGPROC)MainDialogProc);
- updateDisplay(hDlg);
- }
- break;
- }
- case IDC_UNINSTALL_WOLAPI:
- {
- if (g_wolapiInstalled)
- {
- MessageBox(hDlg, "Oops! Can't do that yet!", "Unimplemented", MB_OK);
- updateDisplay(hDlg);
- }
- break;
- }
- }
- break;
- }
- return FALSE;
- }
|