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>
This commit is contained in:
erik 2026-02-08 18:27:56 +01:00
commit d1442e3747
1382 changed files with 170725 additions and 0 deletions

View file

@ -0,0 +1,105 @@
// 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;
}

View file

@ -0,0 +1,31 @@
// DecalSupportLibraries.h : main header file for the PROJECT_NAME application
//
#pragma once
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
// CDecalSupportLibrariesApp:
// See DecalSupportLibraries.cpp for the implementation of this class
//
class CDecalSupportLibrariesApp : public CWinApp
{
public:
CDecalSupportLibrariesApp();
// Overrides
public:
virtual BOOL InitInstance();
// Implementation
DECLARE_MESSAGE_MAP()
};
extern CDecalSupportLibrariesApp theApp;

View file

@ -0,0 +1,29 @@
// DecalSupportLibraries.idl : type library source for DecalSupportLibraries.exe
// This file will be processed by the MIDL compiler to produce the
// type library (DecalSupportLibraries.tlb).
[ uuid(24241FCB-6DD4-4B97-8C1F-88A23084AFA5), version(1.0) ]
library DecalSupportLibraries
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
// Primary dispatch interface for CDecalSupportLibrariesDoc
[ uuid(586E5AC4-7A88-4CFA-B075-2D7F0E70250D) ]
dispinterface IDecalSupportLibraries
{
properties:
methods:
};
// Class information for CDecalSupportLibrariesDoc
[ uuid(29FC66D6-DFC1-45D0-87AD-52D44949DCBC) ]
coclass DecalSupportLibraries
{
[default] dispinterface IDecalSupportLibraries;
};
};

View file

@ -0,0 +1,210 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#include ""res\\DecalSupportLibraries.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"1 TYPELIB ""DecalSupportLibraries.tlb""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\DecalSupportLibraries.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "About DecalSupportLibraries"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "DecalSupportLibraries Version 1.0",IDC_STATIC,40,10,119,
8,SS_NOPREFIX
LTEXT "Copyright (C) 2003",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,16,WS_GROUP
END
IDD_DECALSUPPORTLIBRARIES_DIALOG DIALOGEX 0, 0, 193, 46
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE |
WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "DSL 1.0"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,71,23,50,16
CTEXT "Decal Support Libraries Vsn 1.0 are Installed.",
IDC_STATIC,7,7,179,8
END
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "TODO: <Company name>"
VALUE "FileDescription", "TODO: <File description>"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", "DecalSupportLibraries.exe"
VALUE "LegalCopyright", "TODO: (c) <Company name>. All rights reserved."
VALUE "OriginalFilename", "DecalSupportLibraries.exe"
VALUE "ProductName", "TODO: <Product name>"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 48
END
IDD_DECALSUPPORTLIBRARIES_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 186
TOPMARGIN, 7
BOTTOMMARGIN, 39
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// RT_MANIFEST
//
IDR_MANIFEST RT_MANIFEST "res\\DecalSupportLibraries.manifest"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDP_OLE_INIT_FAILED "OLE initialization failed. Make sure that the OLE libraries are the correct version."
IDS_ABOUTBOX "&About DecalSupportLibraries..."
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)
#include "res\DecalSupportLibraries.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
1 TYPELIB "DecalSupportLibraries.tlb"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View file

@ -0,0 +1,14 @@
REGEDIT
; This .REG file may be used by your SETUP program.
; If a SETUP program is not available, the entries below will be
; registered in your InitInstance automatically with a call to
; CWinApp::RegisterShellFileTypes and COleObjectFactory::UpdateRegistryAll.
HKEY_CLASSES_ROOT\DecalSupportLibraries.Application = DecalSupportLibraries Application
HKEY_CLASSES_ROOT\DecalSupportLibraries.Application\CLSID = {29FC66D6-DFC1-45D0-87AD-52D44949DCBC}
HKEY_CLASSES_ROOT\CLSID\{29FC66D6-DFC1-45D0-87AD-52D44949DCBC} = DecalSupportLibraries Application
HKEY_CLASSES_ROOT\CLSID\{29FC66D6-DFC1-45D0-87AD-52D44949DCBC}\ProgId = DecalSupportLibraries.Application
HKEY_CLASSES_ROOT\CLSID\{29FC66D6-DFC1-45D0-87AD-52D44949DCBC}\LocalServer32 = DecalSupportLibraries.EXE

View file

@ -0,0 +1,26 @@
Microsoft Visual Studio Solution File, Format Version 7.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DecalSupportLibraries", "DecalSupportLibraries.vcproj", "{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "DSLSetup", "DSLSetup\DSLSetup.vdproj", "{F5C00DF4-0DB7-45F8-B9C2-FA3EAFF4A60D}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Debug
ConfigName.1 = Release
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}.Debug.ActiveCfg = Debug|Win32
{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}.Debug.Build.0 = Debug|Win32
{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}.Release.ActiveCfg = Release|Win32
{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}.Release.Build.0 = Release|Win32
{F5C00DF4-0DB7-45F8-B9C2-FA3EAFF4A60D}.Debug.ActiveCfg = Debug
{F5C00DF4-0DB7-45F8-B9C2-FA3EAFF4A60D}.Release.ActiveCfg = Release
{F5C00DF4-0DB7-45F8-B9C2-FA3EAFF4A60D}.Release.Build.0 = Release
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,195 @@
<?xml version="1.0" encoding = "Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.00"
Name="DecalSupportLibraries"
ProjectGUID="{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}"
Keyword="MFCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
SubSystem="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="FALSE"
TypeLibraryName="$(IntDir)/$(ProjectName).tlb"/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="&quot;$(TargetPath)&quot; /RegServer"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
OmitFramePointers="TRUE"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
StringPooling="TRUE"
MinimalRebuild="FALSE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="FALSE"
TypeLibraryName="$(IntDir)/$(ProjectName).tlb"/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="&quot;$(TargetPath)&quot; /RegServer"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
</Configuration>
</Configurations>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
<File
RelativePath="DecalSupportLibraries.cpp">
</File>
<File
RelativePath="DecalSupportLibraries.idl">
</File>
<File
RelativePath="DecalSupportLibrariesDlg.cpp">
</File>
<File
RelativePath="DlgProxy.cpp">
</File>
<File
RelativePath="stdafx.cpp">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc">
<File
RelativePath="DecalSupportLibraries.h">
</File>
<File
RelativePath="DecalSupportLibrariesDlg.h">
</File>
<File
RelativePath="DlgProxy.h">
</File>
<File
RelativePath="Resource.h">
</File>
<File
RelativePath="stdafx.h">
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;manifest">
<File
RelativePath="res\DecalSupportLibraries.ico">
</File>
<File
RelativePath="res\DecalSupportLibraries.manifest">
</File>
<File
RelativePath="DecalSupportLibraries.rc">
</File>
<File
RelativePath="res\DecalSupportLibraries.rc2">
</File>
</Filter>
<File
RelativePath="DecalSupportLibraries.reg">
</File>
<File
RelativePath="ReadMe.txt">
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,202 @@
// DecalSupportLibrariesDlg.cpp : implementation file
//
#include "stdafx.h"
#include "DecalSupportLibraries.h"
#include "DecalSupportLibrariesDlg.h"
#include "DlgProxy.h"
#include "string"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CDecalSupportLibrariesDlg dialog
IMPLEMENT_DYNAMIC(CDecalSupportLibrariesDlg, CDialog);
CDecalSupportLibrariesDlg::CDecalSupportLibrariesDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDecalSupportLibrariesDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_pAutoProxy = NULL;
}
CDecalSupportLibrariesDlg::~CDecalSupportLibrariesDlg()
{
// If there is an automation proxy for this dialog, set
// its back pointer to this dialog to NULL, so it knows
// the dialog has been deleted.
if (m_pAutoProxy != NULL)
m_pAutoProxy->m_pDialog = NULL;
}
void CDecalSupportLibrariesDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CDecalSupportLibrariesDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_CLOSE()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// CDecalSupportLibrariesDlg message handlers
BOOL CDecalSupportLibrariesDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
std::string sAbout("Decal Support Libraries") ;
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CDecalSupportLibrariesDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CDecalSupportLibrariesDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this function to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CDecalSupportLibrariesDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
// Automation servers should not exit when a user closes the UI
// if a controller still holds on to one of its objects. These
// message handlers make sure that if the proxy is still in use,
// then the UI is hidden but the dialog remains around if it
// is dismissed.
void CDecalSupportLibrariesDlg::OnClose()
{
if (CanExit())
CDialog::OnClose();
}
void CDecalSupportLibrariesDlg::OnOK()
{
if (CanExit())
CDialog::OnOK();
}
void CDecalSupportLibrariesDlg::OnCancel()
{
if (CanExit())
CDialog::OnCancel();
}
BOOL CDecalSupportLibrariesDlg::CanExit()
{
// If the proxy object is still around, then the automation
// controller is still holding on to this application. Leave
// the dialog around, but hide its UI.
if (m_pAutoProxy != NULL)
{
ShowWindow(SW_HIDE);
return FALSE;
}
return TRUE;
}

View file

@ -0,0 +1,43 @@
// DecalSupportLibrariesDlg.h : header file
//
#pragma once
class CDecalSupportLibrariesDlgAutoProxy;
// CDecalSupportLibrariesDlg dialog
class CDecalSupportLibrariesDlg : public CDialog
{
DECLARE_DYNAMIC(CDecalSupportLibrariesDlg);
friend class CDecalSupportLibrariesDlgAutoProxy;
// Construction
public:
CDecalSupportLibrariesDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CDecalSupportLibrariesDlg();
// Dialog Data
enum { IDD = IDD_DECALSUPPORTLIBRARIES_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
CDecalSupportLibrariesDlgAutoProxy* m_pAutoProxy;
HICON m_hIcon;
BOOL CanExit();
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnClose();
virtual void OnOK();
virtual void OnCancel();
DECLARE_MESSAGE_MAP()
};

View file

@ -0,0 +1,80 @@
// DlgProxy.cpp : implementation file
//
#include "stdafx.h"
#include "DecalSupportLibraries.h"
#include "DlgProxy.h"
#include "DecalSupportLibrariesDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CDecalSupportLibrariesDlgAutoProxy
IMPLEMENT_DYNCREATE(CDecalSupportLibrariesDlgAutoProxy, CCmdTarget)
CDecalSupportLibrariesDlgAutoProxy::CDecalSupportLibrariesDlgAutoProxy()
{
EnableAutomation();
// To keep the application running as long as an automation
// object is active, the constructor calls AfxOleLockApp.
AfxOleLockApp();
// Get access to the dialog through the application's
// main window pointer. Set the proxy's internal pointer
// to point to the dialog, and set the dialog's back pointer to
// this proxy.
ASSERT (AfxGetApp()->m_pMainWnd != NULL);
ASSERT_VALID (AfxGetApp()->m_pMainWnd);
ASSERT_KINDOF(CDecalSupportLibrariesDlg, AfxGetApp()->m_pMainWnd);
m_pDialog = reinterpret_cast<CDecalSupportLibrariesDlg*>(AfxGetApp()->m_pMainWnd);
m_pDialog->m_pAutoProxy = this;
}
CDecalSupportLibrariesDlgAutoProxy::~CDecalSupportLibrariesDlgAutoProxy()
{
// To terminate the application when all objects created with
// with automation, the destructor calls AfxOleUnlockApp.
// Among other things, this will destroy the main dialog
if (m_pDialog != NULL)
m_pDialog->m_pAutoProxy = NULL;
AfxOleUnlockApp();
}
void CDecalSupportLibrariesDlgAutoProxy::OnFinalRelease()
{
// When the last reference for an automation object is released
// OnFinalRelease is called. The base class will automatically
// deletes the object. Add additional cleanup required for your
// object before calling the base class.
CCmdTarget::OnFinalRelease();
}
BEGIN_MESSAGE_MAP(CDecalSupportLibrariesDlgAutoProxy, CCmdTarget)
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(CDecalSupportLibrariesDlgAutoProxy, CCmdTarget)
END_DISPATCH_MAP()
// Note: we add support for IID_IDecalSupportLibraries to support typesafe binding
// from VBA. This IID must match the GUID that is attached to the
// dispinterface in the .IDL file.
// {586E5AC4-7A88-4CFA-B075-2D7F0E70250D}
static const IID IID_IDecalSupportLibraries =
{ 0x586E5AC4, 0x7A88, 0x4CFA, { 0xB0, 0x75, 0x2D, 0x7F, 0xE, 0x70, 0x25, 0xD } };
BEGIN_INTERFACE_MAP(CDecalSupportLibrariesDlgAutoProxy, CCmdTarget)
INTERFACE_PART(CDecalSupportLibrariesDlgAutoProxy, IID_IDecalSupportLibraries, Dispatch)
END_INTERFACE_MAP()
// The IMPLEMENT_OLECREATE2 macro is defined in StdAfx.h of this project
// {29FC66D6-DFC1-45D0-87AD-52D44949DCBC}
IMPLEMENT_OLECREATE2(CDecalSupportLibrariesDlgAutoProxy, "DecalSupportLibraries.Application", 0x29fc66d6, 0xdfc1, 0x45d0, 0x87, 0xad, 0x52, 0xd4, 0x49, 0x49, 0xdc, 0xbc)
// CDecalSupportLibrariesDlgAutoProxy message handlers

View file

@ -0,0 +1,42 @@
// DlgProxy.h: header file
//
#pragma once
class CDecalSupportLibrariesDlg;
// CDecalSupportLibrariesDlgAutoProxy command target
class CDecalSupportLibrariesDlgAutoProxy : public CCmdTarget
{
DECLARE_DYNCREATE(CDecalSupportLibrariesDlgAutoProxy)
CDecalSupportLibrariesDlgAutoProxy(); // protected constructor used by dynamic creation
// Attributes
public:
CDecalSupportLibrariesDlg* m_pDialog;
// Operations
public:
// Overrides
public:
virtual void OnFinalRelease();
// Implementation
protected:
virtual ~CDecalSupportLibrariesDlgAutoProxy();
// Generated message map functions
DECLARE_MESSAGE_MAP()
DECLARE_OLECREATE(CDecalSupportLibrariesDlgAutoProxy)
// Generated OLE dispatch map functions
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
};

View file

@ -0,0 +1,105 @@
================================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : DecalSupportLibraries Project Overview
===============================================================================
The application wizard has created this DecalSupportLibraries application for
you. This application not only demonstrates the basics of using the Microsoft
Foundation Classes but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your DecalSupportLibraries application.
DecalSupportLibraries.vcproj
This is the main project file for VC++ projects generated using an application wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
application wizard.
DecalSupportLibraries.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CDecalSupportLibrariesApp application class.
DecalSupportLibraries.cpp
This is the main application source file that contains the application
class CDecalSupportLibrariesApp.
DecalSupportLibraries.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++. Your project resources are in 1033.
res\DecalSupportLibraries.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file DecalSupportLibraries.rc.
res\DecalSupportLibraries.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
DecalSupportLibraries.reg
This is an example .reg file that shows you the kind of registration
settings the framework will set for you. You can use this as a .reg
file to go along with your application.
DecalSupportLibraries.idl
This file contains the Interface Description Language source code for the
type library of your application.
/////////////////////////////////////////////////////////////////////////////
The application wizard creates one dialog class and automation proxy class:
DecalSupportLibrariesDlg.h, DecalSupportLibrariesDlg.cpp - the dialog
These files contain your CDecalSupportLibrariesDlg class. This class defines
the behavior of your application's main dialog. The dialog's template is
in DecalSupportLibraries.rc, which can be edited in Microsoft Visual C++.
DlgProxy.h, DlgProxy.cpp - the automation object
These files contain your CDecalSupportLibrariesDlgAutoProxy class. This class
is called the Automation proxy class for your dialog, because it
takes care of exposing the Automation methods and properties that
Automation controllers can use to access your dialog. These methods
and properties are not exposed from the dialog class directly, because
in the case of a modal dialog-based MFC application it is cleaner and
easier to keep the Automation object separate from the user interface.
/////////////////////////////////////////////////////////////////////////////
Other Features:
ActiveX Controls
The application includes support to use ActiveX controls.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named DecalSupportLibraries.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
DecalSupportLibraries.manifest
Application manifest files are used by Windows XP to describe an applications
dependency on specific versions of Side-by-Side assemblies. The loader uses this
information to load the appropriate assembly from the assembly cache or private
from the application. The Application manifest maybe included for redistribution
as an external .manifest file that is installed in the same folder as the application
executable or it may be included in the executable in the form of a resource.
/////////////////////////////////////////////////////////////////////////////
Other notes:
The application wizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is in a
language other than the operating system's current language, you will need
to copy the corresponding localized resources MFC70XXX.DLL from the Microsoft
Visual C++ CD-ROM under the Win\System directory to your computer's system or
system32 directory, and rename it to be MFCLOC.DLL. ("XXX" stands for the
language abbreviation. For example, MFC70DEU.DLL contains resources
translated to German.) If you don't do this, some of the UI elements of
your application will remain in the language of the operating system.
/////////////////////////////////////////////////////////////////////////////

View file

@ -0,0 +1,23 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by DecalSupportLibraries.RC
//
#define IDR_MAINFRAME 128
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDP_OLE_INIT_FAILED 100
#define IDS_ABOUTBOX 101
#define IDD_DECALSUPPORTLIBRARIES_DIALOG 102
#define IDR_MANIFEST CREATEPROCESS_MANIFEST_RESOURCE_ID
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 32771
#endif
#endif

View file

@ -0,0 +1,7 @@
// stdafx.cpp : source file that includes just the standard includes
// DecalSupportLibraries.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

View file

@ -0,0 +1,53 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
// This macro is the same as IMPLEMENT_OLECREATE, except it passes TRUE
// for the bMultiInstance parameter to the COleObjectFactory constructor.
// We want a separate instance of this application to be launched for
// each automation proxy object requested by automation controllers.
#ifndef IMPLEMENT_OLECREATE2
#define IMPLEMENT_OLECREATE2(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
AFX_DATADEF COleObjectFactory class_name::factory(class_name::guid, \
RUNTIME_CLASS(class_name), TRUE, _T(external_name)); \
const AFX_DATADEF GUID class_name::guid = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } };
#endif // IMPLEMENT_OLECREATE2

View file

@ -0,0 +1,799 @@
"DeployProject"
{
"VSVersion" = "3:700"
"ProjectType" = "8:{5443560c-dbb4-11d2-8724-00a0c9a8b90c}"
"IsWebType" = "8:FALSE"
"ProjectName" = "8:DSLSetup"
"LanguageId" = "3:1033"
"CodePage" = "3:1252"
"UILanguageId" = "3:1033"
"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"
"Hierarchy"
{
"Entry"
{
"MsmKey" = "8:_42D5FF05AE1E4B97A2C1ED6BEBECE84C"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_42D5FF05AE1E4B97A2C1ED6BEBECE84C"
"OwnerKey" = "8:_7DA4A71F64B2445E89E9400659E428B3"
"MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_47564ED156C34AE799935495C7305D36"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:VC_User_MFC.BA9B6D6E_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_47564ED156C34AE799935495C7305D36"
"OwnerKey" = "8:_7DA4A71F64B2445E89E9400659E428B3"
"MsmSig" = "8:VC_User_MFC.BA9B6D6E_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_7DA4A71F64B2445E89E9400659E428B3"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:C:\\DOCUMENTS AND SETTINGS\\JOHN\\MY DOCUMENTS\\MYPROJECTS\\DECALSUPPORTLIBRARIES\\DEBUG\\DECALSUPPORTLIBRARIES.EXE"
}
"Entry"
{
"MsmKey" = "8:_93B4D2495A4A4A5F80751EAFD5B53DE0"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:VC_User_ATL.BA9B6DD3_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_C64C6FF01F864BADA89FFE8B5C056FAB"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
}
"Entry"
{
"MsmKey" = "8:_C64C6FF01F864BADA89FFE8B5C056FAB"
"OwnerKey" = "8:_7DA4A71F64B2445E89E9400659E428B3"
"MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
}
}
"Configurations"
{
"Debug"
{
"DisplayName" = "8:Debug"
"IsDebugOnly" = "11:TRUE"
"IsReleaseOnly" = "11:FALSE"
"OutputFilename" = "8:Debug\\DSLSetup.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
"Compression" = "3:2"
"SignOutput" = "11:FALSE"
"CertificateFile" = "8:"
"PrivateKeyFile" = "8:"
"TimeStampServer" = "8:"
"InstallerBootstrapper" = "3:2"
}
"Release"
{
"DisplayName" = "8:Release"
"IsDebugOnly" = "11:FALSE"
"IsReleaseOnly" = "11:TRUE"
"OutputFilename" = "8:Release\\DSLSetup.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
"Compression" = "3:2"
"SignOutput" = "11:FALSE"
"CertificateFile" = "8:"
"PrivateKeyFile" = "8:"
"TimeStampServer" = "8:"
"InstallerBootstrapper" = "3:2"
}
}
"Deployable"
{
"CustomAction"
{
}
"DefaultFeature"
{
"Name" = "8:DefaultFeature"
"Title" = "8:"
"Description" = "8:"
}
"Feature"
{
}
"File"
{
}
"FileType"
{
}
"Folder"
{
"{777C097F-0ED8-11D3-8D6C-00A0C9CFCEE6}:_13100C8A909B432AA2396FDDE8D5C75B"
{
"Name" = "8:#1914"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Property" = "8:SystemFolder"
"Folders"
{
}
}
"{EE62640D-12F2-11D3-8D6C-00A0C9CFCEE6}:_4A04CBCDF5074610AC31E64A5B766C8E"
{
"DefaultLocation" = "8:[ProgramFilesFolder]Decal"
"Name" = "8:#1925"
"AlwaysCreate" = "11:FALSE"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Property" = "8:TARGETDIR"
"Folders"
{
}
}
}
"LaunchCondition"
{
}
"Locator"
{
}
"Shortcut"
{
}
"Sequences"
{
}
"Registry"
{
"HKLM"
{
"Keys"
{
"{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_2A4905977C6A4A9A850BA928ECC52C23"
{
"Name" = "8:Software"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
"{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_81FA24843D5845628CFC66160B04F6C9"
{
"Name" = "8:[Manufacturer]"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
}
"Values"
{
}
}
}
"Values"
{
}
}
}
}
"HKCU"
{
"Keys"
{
"{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_3D5EBE5D1DF343FABD4A43584DED4154"
{
"Name" = "8:Software"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
"{7DF0CD0A-FF27-11D2-8D6B-00A0C9CFCEE6}:_AB09CDDA22634C0BA176D6A3731CD7C3"
{
"Name" = "8:[Manufacturer]"
"Condition" = "8:"
"AlwaysCreate" = "11:FALSE"
"DeleteAtUninstall" = "11:FALSE"
"Transitive" = "11:FALSE"
"Keys"
{
}
"Values"
{
}
}
}
"Values"
{
}
}
}
}
"HKCR"
{
"Keys"
{
}
}
"HKU"
{
"Keys"
{
}
}
"HKPU"
{
"Keys"
{
}
}
}
"ProjectOutput"
{
"{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_7DA4A71F64B2445E89E9400659E428B3"
{
"SourcePath" = "8:..\\Release\\DecalSupportLibraries.exe"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_4A04CBCDF5074610AC31E64A5B766C8E"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
"ProjectOutputGroupRegister" = "3:1"
"OutputConfiguration" = "8:"
"OutputGroupCanonicalName" = "8:Built"
"OutputProjectCanonicalName" = "8:DecalSupportLibraries.vcproj"
"OutputProjectGuid" = "8:{360B2C0C-FF38-4582-83DC-9BCE1EA2D6D8}"
"ShowKeyOutput" = "11:TRUE"
"ExcludeFilters"
{
}
}
}
"Product"
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Decal Support Libraries"
"ProductCode" = "8:{F3C02240-56F8-44B6-AFD7-5671A6A51757}"
"PackageCode" = "8:{36FEA07A-84B6-4C0F-AF47-A2AFCF86530C}"
"UpgradeCode" = "8:{6E5CFD21-C666-4D69-914C-5B86388C0159}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"ProductVersion" = "8:1.0.1"
"Manufacturer" = "8:Decal"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
"Title" = "8:Install Decal Support Libraries"
"Subject" = "8:"
"ARPCONTACT" = "8:DecalDevs"
"Keywords" = "8:"
"ARPCOMMENTS" = "8:"
"ARPURLINFOABOUT" = "8:http://decaldev.sf.net"
"ARPPRODUCTICON" = "8:"
"ARPIconIndex" = "3:0"
"SearchPath" = "8:"
"UseSystemSearchPath" = "11:TRUE"
}
"MsiBootstrapper"
{
"LangId" = "3:1033"
}
"MergeModule"
{
"{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_42D5FF05AE1E4B97A2C1ED6BEBECE84C"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:C:\\Program Files\\Common Files\\Merge Modules\\VC_CRT.msm"
"ModuleSignature" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
"Properties"
{
"DIR_RETARGET_TARGETDIR"
{
"Name" = "8:DIR_RETARGET_TARGETDIR"
"DisplayName" = "8:Module Retargetable Folder"
"Description" = "8:"
"Type" = "3:10"
"ContextData" = "8:IsolationDir"
"Attributes" = "3:6"
"Setting" = "3:2"
"Value" = "8:_13100C8A909B432AA2396FDDE8D5C75B"
"UsePlugInResources" = "11:FALSE"
}
}
"LanguageId" = "3:0"
"Exclude" = "11:FALSE"
"Folder" = "8:"
"Feature" = "8:"
"IsolateTo" = "8:"
}
"{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_47564ED156C34AE799935495C7305D36"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:C:\\Program Files\\Common Files\\Merge Modules\\VC_MFC.msm"
"ModuleSignature" = "8:VC_User_MFC.BA9B6D6E_0DE0_11D5_A548_0090278A1BB8"
"Properties"
{
"DIR_RETARGET_TARGETDIR"
{
"Name" = "8:DIR_RETARGET_TARGETDIR"
"DisplayName" = "8:Module Retargetable Folder"
"Description" = "8:"
"Type" = "3:10"
"ContextData" = "8:IsolationDir"
"Attributes" = "3:6"
"Setting" = "3:2"
"Value" = "8:_13100C8A909B432AA2396FDDE8D5C75B"
"UsePlugInResources" = "11:FALSE"
}
}
"LanguageId" = "3:0"
"Exclude" = "11:FALSE"
"Folder" = "8:"
"Feature" = "8:"
"IsolateTo" = "8:"
}
"{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_93B4D2495A4A4A5F80751EAFD5B53DE0"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:C:\\Program Files\\Common Files\\Merge Modules\\VC_atl70.msm"
"ModuleSignature" = "8:VC_User_ATL.BA9B6DD3_0DE0_11D5_A548_0090278A1BB8"
"Properties"
{
"DIR_RETARGET_TARGETDIR"
{
"Name" = "8:DIR_RETARGET_TARGETDIR"
"DisplayName" = "8:Module Retargetable Folder"
"Description" = "8:"
"Type" = "3:10"
"ContextData" = "8:IsolationDir"
"Attributes" = "3:6"
"Setting" = "3:2"
"Value" = "8:_13100C8A909B432AA2396FDDE8D5C75B"
"UsePlugInResources" = "11:FALSE"
}
}
"LanguageId" = "3:0"
"Exclude" = "11:FALSE"
"Folder" = "8:"
"Feature" = "8:"
"IsolateTo" = "8:"
}
"{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_C64C6FF01F864BADA89FFE8B5C056FAB"
{
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:C:\\Program Files\\Common Files\\Merge Modules\\VC_STL.msm"
"ModuleSignature" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
"Properties"
{
"DIR_RETARGET_TARGETDIR"
{
"Name" = "8:DIR_RETARGET_TARGETDIR"
"DisplayName" = "8:Module Retargetable Folder"
"Description" = "8:"
"Type" = "3:10"
"ContextData" = "8:IsolationDir"
"Attributes" = "3:6"
"Setting" = "3:2"
"Value" = "8:_13100C8A909B432AA2396FDDE8D5C75B"
"UsePlugInResources" = "11:FALSE"
}
}
"LanguageId" = "3:0"
"Exclude" = "11:FALSE"
"Folder" = "8:"
"Feature" = "8:"
"IsolateTo" = "8:"
}
}
"UserInterface"
{
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_2269732C60624C2CB8D5964130FE964E"
{
"Name" = "8:#1901"
"Sequence" = "3:2"
"Attributes" = "3:2"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_2744A39837D94568A5B4BB0CB04F4DC5"
{
"Sequence" = "3:100"
"DisplayName" = "8:Progress"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
"ModuleSignature" = "8:VsdDialogs.EE9A1AFA_41DD_4514_B727_DF0ACA1D7389"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"ShowProgress"
{
"Name" = "8:ShowProgress"
"DisplayName" = "8:#1009"
"Description" = "8:#1109"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_2AB94671354B4B54B92649390DB71A80"
{
"Name" = "8:#1900"
"Sequence" = "3:1"
"Attributes" = "3:1"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_0FB6E69598B248049BC2918171EC15B1"
{
"Sequence" = "3:300"
"DisplayName" = "8:Confirm Installation"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
"ModuleSignature" = "8:VsdDialogs.6DBC9783_3677_4D68_8BF5_D749558A0AC1"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_97D21D7FA0CC4633B3A59CE91385650F"
{
"Sequence" = "3:200"
"DisplayName" = "8:Installation Folder"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
"ModuleSignature" = "8:VsdDialogs.C113BC36_2532_4D45_8099_4818B1133B2F"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_D1C4E7CAC18840C2B899A363518DBDCF"
{
"Sequence" = "3:100"
"DisplayName" = "8:Welcome"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
"ModuleSignature" = "8:VsdDialogs.68F69290_BB7C_474E_A153_6679845F3DDF"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"CopyrightWarning"
{
"Name" = "8:CopyrightWarning"
"DisplayName" = "8:#1002"
"Description" = "8:#1102"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1202"
"DefaultValue" = "8:#1202"
"UsePlugInResources" = "11:TRUE"
}
"Welcome"
{
"Name" = "8:Welcome"
"DisplayName" = "8:#1003"
"Description" = "8:#1103"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1203"
"DefaultValue" = "8:#1203"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_371ADE88DFF04424A6C23FCCF18FB1B9"
{
"Name" = "8:#1900"
"Sequence" = "3:2"
"Attributes" = "3:1"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_193C4631B4414DAF957A656FB4850F8E"
{
"Sequence" = "3:200"
"DisplayName" = "8:Installation Folder"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
"ModuleSignature" = "8:VsdDialogs.2DED2424_5429_4616_A1AD_4D62837C2ADA"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_B363F8DAD34C40F787C39353F3325CA7"
{
"Sequence" = "3:100"
"DisplayName" = "8:Welcome"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
"ModuleSignature" = "8:VsdDialogs.E35A0E2C_F131_4B57_B946_59A1A2A8F45F"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"CopyrightWarning"
{
"Name" = "8:CopyrightWarning"
"DisplayName" = "8:#1002"
"Description" = "8:#1102"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1202"
"DefaultValue" = "8:#1202"
"UsePlugInResources" = "11:TRUE"
}
"Welcome"
{
"Name" = "8:Welcome"
"DisplayName" = "8:#1003"
"Description" = "8:#1103"
"Type" = "3:3"
"ContextData" = "8:"
"Attributes" = "3:0"
"Setting" = "3:1"
"Value" = "8:#1203"
"DefaultValue" = "8:#1203"
"UsePlugInResources" = "11:TRUE"
}
}
}
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_FA13848DFB6741FF9F5C1508F8CF8C3F"
{
"Sequence" = "3:300"
"DisplayName" = "8:Confirm Installation"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
"ModuleSignature" = "8:VsdDialogs.FA58E60A_A1E8_4876_95FC_2AC3B5AAA5F8"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_691ED02423E24A759B7B604B9CC93354"
{
"Name" = "8:#1902"
"Sequence" = "3:2"
"Attributes" = "3:3"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_6BA78C0AFAF04EB3AE534DD09CE2C047"
{
"Sequence" = "3:100"
"DisplayName" = "8:Finished"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
"ModuleSignature" = "8:VsdDialogs.83D22742_1B79_46f6_9A99_DF0F2BD4C077"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_C0BFAB6F351C4573A2A3A510C7AABF59"
{
"Name" = "8:#1901"
"Sequence" = "3:1"
"Attributes" = "3:2"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_38C4C3FEC08A4C95A6C1468EB7F8C531"
{
"Sequence" = "3:100"
"DisplayName" = "8:Progress"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
"ModuleSignature" = "8:VsdDialogs.4FB12620_0D15_42D0_8677_2766FFA6923F"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"ShowProgress"
{
"Name" = "8:ShowProgress"
"DisplayName" = "8:#1009"
"Description" = "8:#1109"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_D8BB020279BA432D966BBE81E4CA6F73"
{
"UseDynamicProperties" = "11:FALSE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
"ModuleSignature" = "8:VsdDialogs.CE4B864F_F1C1_4B85_98D4_2A2BF5FFB12B"
}
"{E4ECAB26-4AB7-11D3-8D78-00A0C9CFCEE6}:_EDE8A9C6957147348D588707FAECE50C"
{
"UseDynamicProperties" = "11:FALSE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
"ModuleSignature" = "8:VsdUserInterface.524F4245_5254_5341_4C45_534153783400"
}
"{7DFFC192-4ABE-11D3-8D78-00A0C9CFCEE6}:_F581651EBBAF4B34B9E30B8B6BF27846"
{
"Name" = "8:#1902"
"Sequence" = "3:1"
"Attributes" = "3:3"
"Dialogs"
{
"{E4ECAB24-4AB7-11D3-8D78-00A0C9CFCEE6}:_B4F438F39A7B4B1E8696EBFA316168E9"
{
"Sequence" = "3:100"
"DisplayName" = "8:Finished"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
"ModuleSignature" = "8:VsdDialogs.1DB77F5A_BA5C_4470_89B6_0B0EC07E3A10"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.DecalSupportLibraries"
type="win32"
/>
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

View file

@ -0,0 +1,13 @@
//
// DecalSupportLibraries.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////