openDecal/Native/DecalSupportLibraries/Attic/DecalSupportLibraries.cpp
erik d1442e3747 Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild:

Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil)
Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs
  - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters
  - Decal.Core, DecalControls, DecalRender, D3DService
Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL
Phase 4: DenAgent WinForms tray application
Phase 5: WiX installer and build script

25 C# projects building with 0 errors.
Native C++ projects require VS 2022 + Windows SDK (x86).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:27:56 +01:00

105 lines
2.7 KiB
C++

// DecalSupportLibraries.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "DecalSupportLibraries.h"
#include "DecalSupportLibrariesDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CDecalSupportLibrariesApp
BEGIN_MESSAGE_MAP(CDecalSupportLibrariesApp, CWinApp)
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
// CDecalSupportLibrariesApp construction
CDecalSupportLibrariesApp::CDecalSupportLibrariesApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CDecalSupportLibrariesApp object
CDecalSupportLibrariesApp theApp;
const GUID CDECL BASED_CODE _tlid =
{ 0x24241FCB, 0x6DD4, 0x4B97, { 0x8C, 0x1F, 0x88, 0xA2, 0x30, 0x84, 0xAF, 0xA5 } };
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;
// CDecalSupportLibrariesApp initialization
BOOL CDecalSupportLibrariesApp::InitInstance()
{
// InitCommonControls() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
InitCommonControls();
CWinApp::InitInstance();
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// Parse command line for automation or reg/unreg switches.
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// App was launched with /Embedding or /Automation switch.
// Run app as automation server.
if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
{
// Register class factories via CoRegisterClassObject().
COleTemplateServer::RegisterAll();
}
// App was launched with /Unregserver or /Unregister switch. Remove
// entries from the registry.
else if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppUnregister)
{
COleObjectFactory::UpdateRegistryAll(FALSE);
AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor);
return FALSE;
}
// App was launched standalone or with other switches (e.g. /Register
// or /Regserver). Update registry entries, including typelibrary.
else
{
COleObjectFactory::UpdateRegistryAll();
AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid);
if (cmdInfo.m_nShellCommand == CCommandLineInfo::AppRegister)
return FALSE;
}
CDecalSupportLibrariesDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}