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

164
Native/DecalDat/DatFile.cpp Normal file
View file

@ -0,0 +1,164 @@
// ACFile.cpp
// Implementation of class cACFile
#include "stdafx.h"
#include "DatFile.h"
#define AC_NUMFILELOC 0x03E
#define AC_ROOTDIRPTRLOC 0x148
#define new DEBUG_NEW
cDatFile::cFile::cFile( cDatFile *pSource, BYTE *pFirstSector, DWORD dwSize )
: m_pFirstSector( pFirstSector ),
m_pCurrentSector( pFirstSector ),
m_pCurrentByte( pFirstSector + sizeof( DWORD ) ),
m_dwSize( dwSize ),
m_dwOffset( 0 ),
m_pSource( pSource )
{
}
void cDatFile::cFile::reset()
{
m_pCurrentSector = m_pFirstSector;
m_pCurrentByte = m_pFirstSector + sizeof( DWORD );
m_dwOffset = 0;
}
DWORD cDatFile::cFile::read( BYTE *pbBuffer, DWORD dwSize )
{
// Check if we can fit
if( dwSize + m_dwOffset > m_dwSize )
dwSize = m_dwSize - m_dwOffset;
DWORD dwRemaining = dwSize;
while( dwRemaining > 0 )
{
if( ( m_pCurrentByte + dwRemaining ) > m_pCurrentSector + m_pSource->m_dwSectorSize )
{
// We are reading over a sector boundary, read what we've got and reset for the next sector
DWORD dwSection = ( m_pCurrentSector + m_pSource->m_dwSectorSize ) - m_pCurrentByte;
::memcpy( pbBuffer, m_pCurrentByte, dwSection );
m_pCurrentSector = m_pSource->m_pData + *reinterpret_cast< DWORD * >( m_pCurrentSector );
m_pCurrentByte = m_pCurrentSector + sizeof( DWORD );
dwRemaining -= dwSection;
pbBuffer += dwSection;
}
else
{
::memcpy( pbBuffer, m_pCurrentByte, dwRemaining );
m_pCurrentByte += dwRemaining;
dwRemaining = 0;
}
}
m_dwOffset += dwSize;
return dwSize;
}
DWORD cDatFile::cFile::skip( DWORD dwSize )
{
// Check if we can fit
if( dwSize + m_dwOffset > m_dwSize )
dwSize = m_dwSize - m_dwOffset;
DWORD dwRemaining = dwSize;
while( dwRemaining > 0 )
{
if( ( m_pCurrentByte + dwRemaining ) > m_pCurrentSector + m_pSource->m_dwSectorSize )
{
// We are reading over a sector boundary, read what we've got and reset for the next sector
DWORD dwSection = ( m_pCurrentSector + m_pSource->m_dwSectorSize ) - m_pCurrentByte;
m_pCurrentSector = m_pSource->m_pData + *reinterpret_cast< DWORD * >( m_pCurrentSector );
m_pCurrentByte = m_pCurrentSector + sizeof( DWORD );
dwRemaining -= dwSection;
}
else
{
m_pCurrentByte += dwRemaining;
dwRemaining = 0;
}
}
m_dwOffset += dwSize;
return dwSize;
}
cDatFile::cDatFile( LPCTSTR szFilename, DWORD dwSectorSize )
: m_hFile( NULL ),
m_hMapping( NULL ),
m_pData( NULL ),
m_dwSectorSize( dwSectorSize )
{
m_hFile = ::CreateFile( szFilename, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL );
if( m_hFile == INVALID_HANDLE_VALUE )
throw std::exception();
// Proceed to create the file mapping
m_hMapping = ::CreateFileMapping( m_hFile, NULL, PAGE_READONLY | SEC_COMMIT, 0, 0, NULL );
if( m_hMapping == NULL )
{
::CloseHandle( m_hFile );
throw std::exception();
}
m_pData = reinterpret_cast< BYTE * >( ::MapViewOfFileEx( m_hMapping, FILE_MAP_READ, 0, 0, 0, NULL ) );
if( m_pData == NULL )
{
::CloseHandle( m_hMapping );
::CloseHandle( m_hFile );
throw std::exception();
}
}
cDatFile::~cDatFile()
{
::UnmapViewOfFile( m_pData );
::CloseHandle( m_hMapping );
::CloseHandle( m_hFile );
}
cDatFile::cFile cDatFile::getFile( DWORD dwFileNumber )
{
cDirectory dir;
// Search for our golden file
for ( DWORD dwDirStart = *reinterpret_cast< DWORD * >( m_pData + AC_ROOTDIRPTRLOC ); dwDirStart != 0; )
{
cFile dir_entry( this, m_pData + dwDirStart, sizeof( cDirectory ) );
dir_entry.read( reinterpret_cast< BYTE * >( &dir ), sizeof( cDirectory ) );
// Now, the files are located like triplets, so copy the triplets
cFileEntry *pEntry = dir.m_files,
*pEndEntry = pEntry + dir.m_dwFiles;
for( cFileEntry *pIter = pEntry; pIter != pEndEntry && pIter->m_dwID < dwFileNumber; ++ pIter );
// We either got an exact match - or we attempt to further narrow down the file
if( pIter != pEndEntry )
{
// We found some sort of match
if( pIter->m_dwID == dwFileNumber )
// This is an exact match hooray
return cFile( this, m_pData + pIter->m_dwOffset, pIter->m_dwSize );
}
// We have an inexact match, but now we attempt to recurse
if( dir.m_subdirs[ 0 ] == 0 )
// If the first entry in the directory is 0, there are no
// helpers - we lose, it's not here
break;
dwDirStart = dir.m_subdirs[ pIter - pEntry ];
}
// If we get here, the file wasn't found - sniff
throw std::exception();
}

76
Native/DecalDat/DatFile.h Normal file
View file

@ -0,0 +1,76 @@
// DatFile.h
// Declaration of class cDatFile
// Class for extracting data from portal.dat and cell.dat
#ifndef __ACFILE_H
#define __ACFILE_H
#define FILE_COUNT 62
class cDatFile
{
// The AC File is created as a memory mapped file
// so we let the memory manager cache manage - it's also quite a bit nicer than
// code to seek/read everything
HANDLE m_hFile,
m_hMapping;
BYTE *m_pData;
DWORD m_dwSectorSize;
public:
class cFile
{
BYTE *m_pFirstSector,
*m_pCurrentSector,
*m_pCurrentByte;
DWORD m_dwSize,
m_dwOffset;
cDatFile *m_pSource;
public:
// Locate the file in a directory
cFile( cDatFile *pSource, BYTE *pFirstSector, DWORD dwSize );
DWORD getSize() const
{
return m_dwSize;
}
DWORD tell() const
{
return m_dwOffset;
}
void reset();
DWORD read( BYTE *pbBuffer, DWORD dwSize );
DWORD skip( DWORD dwSize );
};
cDatFile( LPCTSTR szFilename, DWORD dwSectorSize = 256 );
~cDatFile();
cFile getFile( DWORD dwFileNumber );
// Structures
#pragma pack( push, 1 )
struct cFileEntry
{
DWORD m_dwID,
m_dwOffset,
m_dwSize;
};
struct cDirectory
{
DWORD m_subdirs[ FILE_COUNT ];
DWORD m_dwFiles;
cFileEntry m_files[ FILE_COUNT ];
};
#pragma pack( pop )
friend cFile;
};
#endif

View file

@ -0,0 +1,158 @@
// DatLibrary.cpp : Implementation of cDatLibrary
#include "stdafx.h"
#include "DecalDat.h"
#include "DatLibrary.h"
#include "DatFile.h"
#include "DatService.h"
#include "DatStream.h"
/////////////////////////////////////////////////////////////////////////////
// cDatLibrary
void cDatLibrary::load( cDatService *pService, BSTR strFilename, int nFileType, long nSectorSize )
{
USES_CONVERSION;
// Convert the template path into a real path
m_pService = pService;
CComBSTR strPath;
pService->m_pDecal->MapPath( strFilename, &strPath );
m_nFileType = nFileType;
try
{
m_pFile = new cDatFile( OLE2T( strPath ), nSectorSize );
}
catch( ... )
{
}
}
HRESULT cDatLibrary::createFile( DWORD dwFile, REFIID iid, void **ppvItf )
{
CComObject< cDatStream > *pStream;
CComObject< cDatStream >::CreateInstance( &pStream );
CComPtr< IUnknown > pUnkStream = pStream;
try
{
pStream->m_pFile = new cDatFile::cFile( m_pFile->getFile( dwFile ) );
}
catch( ... )
{
delete pStream;
// File not found
return E_INVALIDARG;
}
return pStream->QueryInterface( iid, ppvItf );
}
STDMETHODIMP cDatLibrary::Lookup( BSTR strName, IUnknown **ppItf )
{
USES_CONVERSION;
LPTSTR szName = OLE2T( strName );
int nProtocol = ::_tcscspn( szName, _T( ":" ) );
if( szName[ nProtocol ] == _T( '\0' ) )
{
// Special case, no protocol creates a raw stream
DWORD dwFile;
if( ::_stscanf( szName, _T( "%X" ), &dwFile ) != 1 )
return E_INVALIDARG;
return get_Stream( dwFile, ppItf );
}
// We have a protocol name
szName[ nProtocol ] = _T( '\0' );
// Convert the hew file number
DWORD dwFile;
if( ::_stscanf( szName + nProtocol + 1, _T( "%X" ), &dwFile ) != 1 )
{
_ASSERT( FALSE );
return E_INVALIDARG;
}
return Open( CComBSTR( szName ), dwFile, ppItf );
}
STDMETHODIMP cDatLibrary::get_Stream(DWORD dwFile, LPUNKNOWN *pVal)
{
return createFile( dwFile, IID_IUnknown, reinterpret_cast< void ** >( pVal ) );
}
STDMETHODIMP cDatLibrary::Open(BSTR Protocol, DWORD File, LPUNKNOWN *pFile)
{
USES_CONVERSION;
LPTSTR szName = OLE2T( Protocol );
::_tcslwr( szName );
cDatService::cFileFilter *pFilter = m_pService->getFilter( szName, ::_tcslen( szName ) );
if( pFilter == NULL )
{
_ASSERT( FALSE );
return E_INVALIDARG;
}
if( pFilter->m_bCache )
{
// Check the file cache for an existing verison
for( cDatService::cFileCacheList::iterator i = m_pService->m_cache.begin(); i != m_pService->m_cache.end(); ++ i )
{
if( i->m_dwFile == File &&
static_cast< int >( i->m_library ) == m_nFileType &&
i->m_pFilter == pFilter )
{
// Found our file, return victorious
return i->m_pFile->QueryInterface( pFile );
}
}
}
// No cache or not found in the cache, create the stream
CComPtr< IDatStream > pStream;
HRESULT hRes = createFile( File, IID_IDatStream, reinterpret_cast< void ** >( &pStream ) );
if( FAILED( hRes ) )
{
_ASSERT( FALSE );
return hRes;
}
// Lookin' good, create the filter
CComPtr< IFileFilter > pFileFilter;
hRes = m_pService->createFilter( pFilter, IID_IFileFilter, reinterpret_cast< void ** >( &pFileFilter ) );
if( FAILED( hRes ) )
{
_ASSERT( FALSE );
return hRes;
}
hRes = pFileFilter->Initialize( pStream );
if( FAILED( hRes ) )
{
_ASSERT( FALSE );
return hRes;
}
if( pFilter->m_bCache )
{
// Make a cache entry
cDatService::cFileCache fc;
fc.m_dwFile = File;
fc.m_library = static_cast< cDatService::eLibrary >( m_nFileType );
fc.m_pFilter = pFilter;
fc.m_pFile = pFileFilter;
m_pService->m_cache.push_back( fc );
}
return pFileFilter->QueryInterface( IID_IUnknown, reinterpret_cast< void ** >( pFile ) );
}

View file

@ -0,0 +1,52 @@
// DatLibrary.h : Declaration of the cDatLibrary
#ifndef __DATLIBRARY_H_
#define __DATLIBRARY_H_
#include "resource.h" // main symbols
class cDatFile;
class cDatService;
/////////////////////////////////////////////////////////////////////////////
// cDatLibrary
class ATL_NO_VTABLE cDatLibrary :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<cDatLibrary, &CLSID_DatLibrary>,
public IDecalDirectory,
public IDispatchImpl<IDatLibrary, &IID_IDatLibrary, &LIBID_DecalDat>
{
public:
cDatLibrary()
: m_pFile( NULL )
{
}
void load( cDatService *pService, BSTR strFilename, int nFileType, long nSectorSize );
int m_nFileType;
cDatFile *m_pFile;
cDatService *m_pService;
HRESULT createFile( DWORD dwFile, REFIID iid, void **ppvItf );
DECLARE_REGISTRY_RESOURCEID(IDR_DATLIBRARY)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(cDatLibrary)
COM_INTERFACE_ENTRY(IDatLibrary)
COM_INTERFACE_ENTRY(IDecalDirectory)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// IDatLibrary
public:
// IDecalDirectory
STDMETHOD(Lookup)(BSTR strName, IUnknown **ppItf);
STDMETHOD(Open)(BSTR Protocol, DWORD File, /*[out, retval]*/ LPUNKNOWN *pFile);
STDMETHOD(get_Stream)(DWORD dwType, /*[out, retval]*/ LPUNKNOWN *pVal);
};
#endif //__DATLIBRARY_H_

View file

@ -0,0 +1,152 @@
// DatService.cpp : Implementation of cDatService
#include "stdafx.h"
#include "DecalDat.h"
#include "DatService.h"
#include "DatLibrary.h"
#include <ApiHook.h>
/////////////////////////////////////////////////////////////////////////////
// cDatService
HANDLE WINAPI CreateFileF( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile )
{
dwShareMode |= FILE_SHARE_READ | FILE_SHARE_WRITE;
return cDatService::g_fn_CreateFile( lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes,
dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile );
}
static cHookDescriptor _hooks[] = {
{ eByName, _T( "kernel32.dll" ), _T( "CreateFileA" ), 0, reinterpret_cast< DWORD >( CreateFileF ), 0 },
};
cDatService::cFileFilter *cDatService::getFilter( LPTSTR szFilter, int nLength )
{
std::string strFilter( szFilter, nLength );
for( cFileFilterList::iterator i = m_filters.begin(); i != m_filters.end(); ++ i )
{
if( strFilter == i->m_strName )
return &(*(i));
}
return NULL;
}
HRESULT cDatService::createFilter( cDatService::cFileFilter *pFilter, REFIID iid, LPVOID *ppvItf )
{
static _bstr_t _strFilter( _T( "FileFilters" ) );
CComPtr< IDecalEnum > pEnumFilter;
if( m_pDecal->get_Configuration( _strFilter, pFilter->m_clsid, &pEnumFilter ) != S_OK )
return E_FAIL;
return pEnumFilter->CreateInstance( iid, ppvItf );
}
HRESULT cDatService::onInitialize()
{
USES_CONVERSION;
static _bstr_t _strPortal( _T( "%ac%\\portal.dat" ) ),
_strCell( _T( "%ac%\\cell.dat" ) );
if( g_p == NULL )
{
hookFunctions( _hooks, 1, true );
g_fn_CreateFile = reinterpret_cast< fn_CreateFile >( _hooks[ 0 ].m_pOldFunction );
g_p = this;
}
CComObject< cDatLibrary > *pComCell, *pComPortal;
CComObject< cDatLibrary >::CreateInstance( &pComCell );
CComObject< cDatLibrary >::CreateInstance( &pComPortal );
pComCell->AddRef();
pComPortal->AddRef();
m_pCell = pComCell;
m_pPortal = pComPortal;
m_pCell->load( this, _strCell, eCell, 256 );
m_pPortal->load( this, _strPortal, ePortal, 1024 );
// Load the list of filters
static _bstr_t _strFilter( _T( "FileFilters" ) ),
_strPrefix( _T( "Prefix" ) ),
_strCache( _T( "Cache" ) );
CComPtr< IDecalEnum > pEnum;
m_pDecal->get_Configuration( _strFilter, GUID_NULL, &pEnum );
while( pEnum->Next() == S_OK )
{
CComVariant vPrefix, vCache;
cFileFilter;
cFileFilter ff;
pEnum->get_ComClass( &ff.m_clsid );
HRESULT hRes = pEnum->get_Property( _strPrefix, &vPrefix );
if( !SUCCEEDED( hRes ) || vPrefix.vt != VT_BSTR )
{
_ASSERT( FALSE );
continue;
}
hRes = pEnum->get_Property( _strCache, &vCache );
if( !SUCCEEDED( hRes ) || vCache.vt != VT_I4 )
{
_ASSERT( FALSE );
continue;
}
ff.m_bCache = !!vCache.lVal;
LPTSTR szPrefix = OLE2T( vPrefix.bstrVal );
::_tcslwr( szPrefix );
ff.m_strName = szPrefix;
m_filters.push_back( ff );
}
return S_OK;
}
void cDatService::onTerminate()
{
m_cache.clear();
m_filters.clear();
if( g_p == this )
{
hookFunctions( _hooks, 1, false );
g_p = NULL;
}
m_pCell->Release();
m_pPortal->Release();
m_pCell = NULL;
m_pPortal = NULL;
}
cDatService *cDatService::g_p = NULL;
cDatService::fn_CreateFile cDatService::g_fn_CreateFile = NULL;
STDMETHODIMP cDatService::Lookup( BSTR strName, IUnknown **ppItf )
{
static _bstr_t _strPortal( _T( "portal" ) ),
_strCell( _T( "cell" ) );
if( ::VarBstrCmp( strName, _strPortal, 0, NORM_IGNORECASE ) == VARCMP_EQ )
return m_pPortal->QueryInterface( IID_IUnknown, reinterpret_cast< void ** >( ppItf ) );
if( ::VarBstrCmp( strName, _strCell, 0, NORM_IGNORECASE ) == VARCMP_EQ )
return m_pCell->QueryInterface( IID_IUnknown, reinterpret_cast< void ** >( ppItf ) );
// None of the above
return E_INVALIDARG;
}

View file

@ -0,0 +1,87 @@
// DatService.h : Declaration of the cDatService
#ifndef __DATSERVICE_H_
#define __DATSERVICE_H_
#include "resource.h" // main symbols
#include <DecalImpl.h>
class cDatLibrary;
/////////////////////////////////////////////////////////////////////////////
// cDatService
class ATL_NO_VTABLE cDatService :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<cDatService, &CLSID_DatService>,
public IDecalServiceImpl< cDatService >,
public IDecalDirectory,
public IDispatchImpl<IDatService, &IID_IDatService, &LIBID_DecalDat>
{
public:
cDatService()
: m_pCell( NULL ),
m_pPortal( NULL )
{
}
struct cFileFilter
{
std::string m_strName;
CLSID m_clsid;
bool m_bCache;
};
typedef std::vector< cFileFilter > cFileFilterList;
cFileFilterList m_filters;
cFileFilter *getFilter( LPTSTR szFilter, int nLength );
HRESULT createFilter( cFileFilter *pFilter, REFIID iid, LPVOID *ppvItf );
enum eLibrary
{
eCell,
ePortal
};
struct cFileCache
{
cFileFilter *m_pFilter;
eLibrary m_library;
DWORD m_dwFile;
CComPtr< IUnknown > m_pFile;
};
typedef std::deque< cFileCache > cFileCacheList;
cFileCacheList m_cache;
HRESULT onInitialize();
void onTerminate();
cDatLibrary *m_pCell,
*m_pPortal;
static cDatService *g_p;
// Hooked functions
typedef HANDLE (WINAPI *fn_CreateFile)(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
static fn_CreateFile g_fn_CreateFile;
DECLARE_REGISTRY_RESOURCEID(IDR_DATSERVICE)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(cDatService)
COM_INTERFACE_ENTRY(IDecalService)
COM_INTERFACE_ENTRY(IDecalDirectory)
COM_INTERFACE_ENTRY(IDatService)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// IDatService
public:
// IDecalDirectory
STDMETHOD(Lookup)(BSTR strName, IUnknown **ppItf);
};
#endif //__DATSERVICE_H_

View file

@ -0,0 +1,43 @@
HKCR
{
DecalDat.DatService.1 = s 'DatService Class'
{
CLSID = s '{37B083F0-276E-43AD-8D26-3F7449B519DC}'
}
DecalDat.DatService = s 'DatService Class'
{
CLSID = s '{37B083F0-276E-43AD-8D26-3F7449B519DC}'
CurVer = s 'DecalDat.DatService.1'
}
NoRemove CLSID
{
ForceRemove {37B083F0-276E-43AD-8D26-3F7449B519DC} = s 'DatService Class'
{
ProgID = s 'DecalDat.DatService.1'
VersionIndependentProgID = s 'DecalDat.DatService'
ForceRemove 'Programmable'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
'TypeLib' = s '{C2C11EC7-2CB9-4999-BDD9-AF599455601F}'
}
}
}
HKLM
{
NoRemove SOFTWARE
{
NoRemove Decal
{
NoRemove Services
{
ForceRemove {37B083F0-276E-43AD-8D26-3F7449B519DC} = s 'Decal Dat Service'
{
val Enabled = d '1'
}
}
}
}
}

View file

@ -0,0 +1,95 @@
// DatStream.cpp : Implementation of cDatStream
#include "stdafx.h"
#include "DecalDat.h"
#include "DatStream.h"
/////////////////////////////////////////////////////////////////////////////
// cDatStream
STDMETHODIMP cDatStream::get_Size(long *pVal)
{
if( pVal == NULL )
{
_ASSERT( FALSE );
return E_POINTER;
}
*pVal = static_cast< long >( m_pFile->getSize() );
return S_OK;
}
STDMETHODIMP cDatStream::get_Tell(long *pVal)
{
if( pVal == NULL )
{
_ASSERT( FALSE );
return E_POINTER;
}
*pVal = static_cast< long >( m_pFile->tell() );
return S_OK;
}
STDMETHODIMP cDatStream::Skip(long Bytes)
{
if( Bytes < 0 )
{
_ASSERT( FALSE );
return E_INVALIDARG;
}
m_pFile->skip( static_cast< DWORD >( Bytes ) );
return S_OK;
}
STDMETHODIMP cDatStream::Restart()
{
m_pFile->reset();
return S_OK;
}
STDMETHODIMP cDatStream::ReadBinary(long Bytes, BYTE *Buffer)
{
if( Bytes < 0 )
{
_ASSERT( FALSE );
return E_INVALIDARG;
}
if( Buffer == NULL )
{
_ASSERT( FALSE );
return E_POINTER;
}
m_pFile->read( Buffer, static_cast< DWORD >( Bytes ) );
return S_OK;
}
STDMETHODIMP cDatStream::Read(long Bytes, BSTR *Data)
{
if( Bytes < 0 )
{
_ASSERT( FALSE );
return E_INVALIDARG;
}
if( Data == NULL )
{
_ASSERT( FALSE );
return E_POINTER;
}
BYTE *Buffer = reinterpret_cast< BYTE * >( ::_alloca( Bytes ) );
m_pFile->read( Buffer, static_cast< DWORD >( Bytes ) );
*Data = ::SysAllocStringByteLen( reinterpret_cast< LPCTSTR >( Buffer ), Bytes );
return S_OK;
}

View file

@ -0,0 +1,42 @@
// DatStream.h : Declaration of the cDatStream
#ifndef __DATSTREAM_H_
#define __DATSTREAM_H_
#include "resource.h" // main symbols
#include "DatFile.h"
/////////////////////////////////////////////////////////////////////////////
// cDatStream
class ATL_NO_VTABLE cDatStream :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<cDatStream, &CLSID_DatStream>,
public IDatStream
{
public:
cDatStream()
{
}
cDatFile::cFile *m_pFile;
DECLARE_REGISTRY_RESOURCEID(IDR_DATSTREAM)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(cDatStream)
COM_INTERFACE_ENTRY(IDatStream)
END_COM_MAP()
// IDatStream
public:
STDMETHOD(Read)(long Bytes, /*[out, retval]*/ BSTR *Data);
STDMETHOD(ReadBinary)(long Bytes, /*[size_is(Bytes)]*/ BYTE *Buffer);
STDMETHOD(Restart)();
STDMETHOD(Skip)(long Bytes);
STDMETHOD(get_Tell)(/*[out, retval]*/ long *pVal);
STDMETHOD(get_Size)(/*[out, retval]*/ long *pVal);
};
#endif //__DATSTREAM_H_

View file

@ -0,0 +1,71 @@
// DecalDat.cpp : Implementation of DLL Exports.
// Note: Proxy/Stub Information
// To build a separate proxy/stub DLL,
// run nmake -f DecalDatps.mk in the project directory.
#include "stdafx.h"
#include "resource.h"
#include <initguid.h>
#include "DecalDat.h"
#include "DecalDat_i.c"
#include "DatService.h"
CComModule _Module;
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_DatService, cDatService)
END_OBJECT_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLL Entry Point
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_Module.Init(ObjectMap, hInstance, &LIBID_DecalDat);
DisableThreadLibraryCalls(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
_Module.Term();
return TRUE; // ok
}
/////////////////////////////////////////////////////////////////////////////
// Used to determine whether the DLL can be unloaded by OLE
STDAPI DllCanUnloadNow(void)
{
return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
}
/////////////////////////////////////////////////////////////////////////////
// Returns a class factory to create an object of the requested type
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
return _Module.GetClassObject(rclsid, riid, ppv);
}
/////////////////////////////////////////////////////////////////////////////
// DllRegisterServer - Adds entries to the system registry
STDAPI DllRegisterServer(void)
{
// registers object, typelib and all interfaces in typelib
return _Module.RegisterServer(TRUE);
}
/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
return _Module.UnregisterServer(TRUE);
}

View file

@ -0,0 +1,9 @@
; DecalDat.def : Declares the module parameters.
LIBRARY "DecalDat.DLL"
EXPORTS
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE

View file

@ -0,0 +1,284 @@
# Microsoft Developer Studio Project File - Name="DecalDat" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=DecalDat - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "DecalDat.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "DecalDat.mak" CFG="DecalDat - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "DecalDat - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "DecalDat - Win32 Unicode Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "DecalDat - Win32 Release MinSize" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "DecalDat - Win32 Unicode Release MinSize" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "DecalDat - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "..\Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /Gi /ZI /Od /Oy /Ob0 /I "..\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD MTL /nologo /I "..\Include" /Oicf
# ADD BASE RSC /l 0x1009 /d "_DEBUG"
# ADD RSC /l 0x1009 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# Begin Custom Build - Performing registration
OutDir=.\..\Debug
TargetPath=\Projects\decaldev2\source\Debug\DecalDat.dll
InputPath=\Projects\decaldev2\source\Debug\DecalDat.dll
SOURCE="$(InputPath)"
"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
regsvr32 /s /c "$(TargetPath)"
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
# End Custom Build
!ELSEIF "$(CFG)" == "DecalDat - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "DebugU"
# PROP BASE Intermediate_Dir "DebugU"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "DebugU"
# PROP Intermediate_Dir "DebugU"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /GZ /c
# ADD MTL /nologo /I "..\Include" /Oicf
# ADD BASE RSC /l 0x1009 /d "_DEBUG"
# ADD RSC /l 0x1009 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# Begin Custom Build - Performing registration
OutDir=.\DebugU
TargetPath=.\DebugU\DecalDat.dll
InputPath=.\DebugU\DecalDat.dll
SOURCE="$(InputPath)"
"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
if "%OS%"=="" goto NOTNT
if not "%OS%"=="Windows_NT" goto NOTNT
regsvr32 /s /c "$(TargetPath)"
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
goto end
:NOTNT
echo Warning : Cannot register Unicode DLL on Windows 95
:end
# End Custom Build
!ELSEIF "$(CFG)" == "DecalDat - Win32 Release MinSize"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ReleaseMinDependency"
# PROP BASE Intermediate_Dir "ReleaseMinDependency"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "..\Release"
# PROP Intermediate_Dir "ReleaseMinDependency"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /D "_ATL_STATIC_REGISTRY" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX- /Zi /Oa /Og /Oi /Os /Oy /Ob1 /Gf /Gy /I "..\Include" /D "_MBCS" /D "_ATL_DLL" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /Yu"stdafx.h" /FD /c
# ADD MTL /nologo /I "..\Include" /Oicf
# ADD BASE RSC /l 0x1009 /d "NDEBUG"
# ADD RSC /l 0x1009 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libctiny.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libctiny.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\Release"
# Begin Custom Build - Performing registration
OutDir=.\..\Release
TargetPath=\Projects\decaldev2\source\Release\DecalDat.dll
InputPath=\Projects\decaldev2\source\Release\DecalDat.dll
SOURCE="$(InputPath)"
"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
regsvr32 /s /c "$(TargetPath)"
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
# End Custom Build
!ELSEIF "$(CFG)" == "DecalDat - Win32 Unicode Release MinSize"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ReleaseUMinSize"
# PROP BASE Intermediate_Dir "ReleaseUMinSize"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "ReleaseUMinSize"
# PROP Intermediate_Dir "ReleaseUMinSize"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /Zi /O1 /I "..\Include" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /Yu"stdafx.h" /FD /c
# ADD MTL /nologo /I "..\Include" /Oicf
# ADD BASE RSC /l 0x1009 /d "NDEBUG"
# ADD RSC /l 0x1009 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libctiny.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\Release"
# Begin Custom Build - Performing registration
OutDir=.\ReleaseUMinSize
TargetPath=.\ReleaseUMinSize\DecalDat.dll
InputPath=.\ReleaseUMinSize\DecalDat.dll
SOURCE="$(InputPath)"
"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
if "%OS%"=="" goto NOTNT
if not "%OS%"=="Windows_NT" goto NOTNT
regsvr32 /s /c "$(TargetPath)"
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"
goto end
:NOTNT
echo Warning : Cannot register Unicode DLL on Windows 95
:end
# End Custom Build
!ENDIF
# Begin Target
# Name "DecalDat - Win32 Debug"
# Name "DecalDat - Win32 Unicode Debug"
# Name "DecalDat - Win32 Release MinSize"
# Name "DecalDat - Win32 Unicode Release MinSize"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\DatFile.cpp
# End Source File
# Begin Source File
SOURCE=.\DatLibrary.cpp
# End Source File
# Begin Source File
SOURCE=.\DatService.cpp
# End Source File
# Begin Source File
SOURCE=.\DatStream.cpp
# End Source File
# Begin Source File
SOURCE=.\DecalDat.cpp
# End Source File
# Begin Source File
SOURCE=.\DecalDat.def
# End Source File
# Begin Source File
SOURCE=..\Include\DecalDat.idl
# ADD MTL /nologo /tlb "DecalDat.tlb" /h "..\Include\DecalDat.h" /iid "..\Include\DecalDat_i.c" /Oicf
# End Source File
# Begin Source File
SOURCE=.\DecalDat.rc
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\DatFile.h
# End Source File
# Begin Source File
SOURCE=.\DatLibrary.h
# End Source File
# Begin Source File
SOURCE=.\DatService.h
# End Source File
# Begin Source File
SOURCE=.\DatStream.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\DatLibrary.rgs
# End Source File
# Begin Source File
SOURCE=.\DatService.rgs
# End Source File
# Begin Source File
SOURCE=.\DatStream.rgs
# End Source File
# End Group
# End Target
# End Project

133
Native/DecalDat/DecalDat.rc Normal file
View file

@ -0,0 +1,133 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include "..\Include\DecalVersion.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.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 ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"1 TYPELIB ""DecalDat.tlb""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION DECAL_MAJOR, DECAL_MINOR, DECAL_BUGFIX, DECAL_RELEASE
PRODUCTVERSION DECAL_MAJOR, DECAL_MINOR, DECAL_BUGFIX, DECAL_RELEASE
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "DecalDat houses the functionality that extracts data from the portal.dat file"
VALUE "FileDescription", "DecalDat Module"
VALUE "FileVersion", DECAL_VERSION_STRING
VALUE "InternalName", "DecalDat"
VALUE "LegalCopyright", "Copyright 2001"
VALUE "OriginalFilename", "DecalDat.DLL"
VALUE "ProductName", "DecalDat Module"
VALUE "ProductVersion", DECAL_VERSION_STRING
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_PROJNAME "DecalDat"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (Canada) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// REGISTRY
//
IDR_DATSERVICE REGISTRY "DatService.rgs"
#endif // English (Canada) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
1 TYPELIB "DecalDat.tlb"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View file

@ -0,0 +1,784 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="DecalDat"
SccProjectName=""
SccLocalPath=""
Keyword="AtlProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Unicode Debug|Win32"
OutputDirectory=".\DebugU"
IntermediateDirectory=".\DebugU"
ConfigurationType="2"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\Include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="3"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\DebugU/DecalDat.pch"
AssemblerListingLocation=".\DebugU/"
ObjectFile=".\DebugU/"
ProgramDataBaseFileName=".\DebugU/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile=".\DebugU/DecalDat.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
ModuleDefinitionFile=".\DecalDat.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\DebugU/DecalDat.pdb"
SubSystem="2"
ImportLibrary=".\DebugU/DecalDat.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories="..\Include"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
GenerateStublessProxies="TRUE"
TypeLibraryName=".\DebugU/DecalDat.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="4105"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Unicode Release MinSize|Win32"
OutputDirectory=".\ReleaseUMinSize"
IntermediateDirectory=".\ReleaseUMinSize"
ConfigurationType="2"
UseOfMFC="0"
UseOfATL="2"
ATLMinimizesCRunTimeLibraryUsage="TRUE"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\Include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="3"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\ReleaseUMinSize/DecalDat.pch"
AssemblerListingLocation=".\ReleaseUMinSize/"
ObjectFile=".\ReleaseUMinSize/"
ProgramDataBaseFileName=".\ReleaseUMinSize/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="3"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="TRUE"
AdditionalDependencies="odbc32.lib odbccp32.lib libctiny.lib"
OutputFile=".\ReleaseUMinSize/DecalDat.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\Release"
ModuleDefinitionFile=".\DecalDat.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\ReleaseUMinSize/DecalDat.pdb"
SubSystem="2"
ImportLibrary=".\ReleaseUMinSize/DecalDat.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories="..\Include"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
GenerateStublessProxies="TRUE"
TypeLibraryName=".\ReleaseUMinSize/DecalDat.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="4105"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release MinSize|Win32"
OutputDirectory=".\..\Release"
IntermediateDirectory=".\ReleaseMinDependency"
ConfigurationType="2"
UseOfMFC="0"
UseOfATL="2"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
GlobalOptimizations="TRUE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="2"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories="..\Include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="3"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\ReleaseMinDependency/DecalDat.pch"
AssemblerListingLocation=".\ReleaseMinDependency/"
ObjectFile=".\ReleaseMinDependency/"
ProgramDataBaseFileName=".\ReleaseMinDependency/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="3"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="odbc32.lib odbccp32.lib libctiny.lib"
OutputFile=".\..\Release/DecalDat.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\Release"
ModuleDefinitionFile=".\DecalDat.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\..\Release/DecalDat.pdb"
SubSystem="2"
ImportLibrary=".\..\Release/DecalDat.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories="..\Include"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
GenerateStublessProxies="TRUE"
TypeLibraryName=".\..\Release/DecalDat.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="4105"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories="..\Include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="3"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\Debug/DecalDat.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="TRUE"
OutputFile=".\..\Debug/DecalDat.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
ModuleDefinitionFile=".\DecalDat.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\..\Debug/DecalDat.pdb"
SubSystem="2"
ImportLibrary=".\..\Debug/DecalDat.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories="..\Include"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
GenerateStublessProxies="TRUE"
TypeLibraryName=".\..\Debug/DecalDat.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="4105"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release MinDependency|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfMFC="0"
UseOfATL="2"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="4"
GlobalOptimizations="TRUE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="TRUE"
FavorSizeOrSpeed="2"
OmitFramePointers="TRUE"
AdditionalIncludeDirectories="..\Include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="3"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile=".\ReleaseMinDependency/DecalDat.pch"
AssemblerListingLocation=".\ReleaseMinDependency/"
ObjectFile=".\ReleaseMinDependency/"
ProgramDataBaseFileName=".\ReleaseMinDependency/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="3"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="odbc32.lib odbccp32.lib"
OutputFile=".\..\Release/DecalDat.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\Release"
ModuleDefinitionFile=".\DecalDat.def"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\..\Release/DecalDat.pdb"
SubSystem="2"
ImportLibrary=".\..\Release/DecalDat.lib"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories="..\Include"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
GenerateStublessProxies="TRUE"
TypeLibraryName=".\..\Release/DecalDat.tlb"
HeaderFileName=""/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="4105"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
RelativePath="DatFile.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
</File>
<File
RelativePath="DatLibrary.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
</File>
<File
RelativePath="DatService.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
</File>
<File
RelativePath="DatStream.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
</File>
<File
RelativePath="DecalDat.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"/>
</FileConfiguration>
</File>
<File
RelativePath="DecalDat.def">
</File>
<File
RelativePath="..\Include\DecalDat.idl">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories=""
TargetEnvironment="1"
TypeLibraryName="DecalDat.tlb"
HeaderFileName="..\Include\DecalDat.h"
InterfaceIdentifierFileName="..\Include\DecalDat_i.c"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories=""
TargetEnvironment="1"
TypeLibraryName="DecalDat.tlb"
HeaderFileName="..\Include\DecalDat.h"
InterfaceIdentifierFileName="..\Include\DecalDat_i.c"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories=""
TargetEnvironment="1"
TypeLibraryName="DecalDat.tlb"
HeaderFileName="..\Include\DecalDat.h"
InterfaceIdentifierFileName="..\Include\DecalDat_i.c"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories=""
TargetEnvironment="1"
TypeLibraryName="DecalDat.tlb"
HeaderFileName="..\Include\DecalDat.h"
InterfaceIdentifierFileName="..\Include\DecalDat_i.c"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCMIDLTool"
AdditionalIncludeDirectories=""
TargetEnvironment="1"
TypeLibraryName="DecalDat.tlb"
HeaderFileName="..\Include\DecalDat.h"
InterfaceIdentifierFileName="..\Include\DecalDat_i.c"/>
</FileConfiguration>
</File>
<File
RelativePath="DecalDat.rc">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;$(NoInherit)"
AdditionalIncludeDirectories="$(OUTDIR)"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;$(NoInherit)"
AdditionalIncludeDirectories="$(OUTDIR)"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="$(OUTDIR)"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="$(OUTDIR)"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories="$(OUTDIR)"/>
</FileConfiguration>
</File>
<File
RelativePath="StdAfx.cpp">
<FileConfiguration
Name="Unicode Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_UNICODE;$(NoInherit)"
BasicRuntimeChecks="3"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Unicode Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="1"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_UNICODE;_ATL_DLL;_ATL_MIN_CRT;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
ExceptionHandling="TRUE"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinSize|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;$(NoInherit)"
BasicRuntimeChecks="3"
UsePrecompiledHeader="1"/>
</FileConfiguration>
<FileConfiguration
Name="Release MinDependency|Win32">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions="_MBCS;_ATL_DLL;WIN32;NDEBUG;_WINDOWS;_USRDLL;$(NoInherit)"
UsePrecompiledHeader="1"/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
RelativePath="DatFile.h">
</File>
<File
RelativePath="DatLibrary.h">
</File>
<File
RelativePath="DatService.h">
</File>
<File
RelativePath="DatStream.h">
</File>
<File
RelativePath="Resource.h">
</File>
<File
RelativePath="StdAfx.h">
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
<File
RelativePath="DatLibrary.rgs">
</File>
<File
RelativePath="DatService.rgs">
</File>
<File
RelativePath="DatStream.rgs">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,11 @@
LIBRARY "DecalDatPS"
DESCRIPTION 'Proxy/Stub DLL'
EXPORTS
DllGetClassObject @1 PRIVATE
DllCanUnloadNow @2 PRIVATE
GetProxyDllInfo @3 PRIVATE
DllRegisterServer @4 PRIVATE
DllUnregisterServer @5 PRIVATE

View file

@ -0,0 +1,16 @@
DecalDatps.dll: dlldata.obj DecalDat_p.obj DecalDat_i.obj
link /dll /out:DecalDatps.dll /def:DecalDatps.def /entry:DllMain dlldata.obj DecalDat_p.obj DecalDat_i.obj \
kernel32.lib rpcndr.lib rpcns4.lib rpcrt4.lib oleaut32.lib uuid.lib \
.c.obj:
cl /c /Ox /DWIN32 /D_WIN32_WINNT=0x0400 /DREGISTER_PROXY_DLL \
$<
clean:
@del DecalDatps.dll
@del DecalDatps.lib
@del DecalDatps.exp
@del dlldata.obj
@del DecalDat_p.obj
@del DecalDat_i.obj

View file

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

44
Native/DecalDat/StdAfx.h Normal file
View file

@ -0,0 +1,44 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#if !defined(AFX_STDAFX_H__AC185D62_C11D_4681_B5DF_265B11F73819__INCLUDED_)
#define AFX_STDAFX_H__AC185D62_C11D_4681_B5DF_265B11F73819__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define STRICT
#define _WIN32_WINDOWS 0x0410
#define _ATL_APARTMENT_THREADED
#pragma warning(disable:4530)
//C Library includes
#include <stdio.h>
#include <stdlib.h>
#ifdef NDEBUG
#ifdef _ATL_DLL
#undef _ATL_DLL
#endif
#endif
#include <atlbase.h>
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include <atlcom.h>
#include <comdef.h>
#include <exception>
#include <string>
#include <vector>
#include <deque>
#include <Decal.h>
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__AC185D62_C11D_4681_B5DF_265B11F73819__INCLUDED)

View file

@ -0,0 +1,19 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by DecalDat.rc
//
#define IDS_PROJNAME 100
#define IDR_DATSERVICE 101
#define IDR_DATLIBRARY 102
#define IDR_DATSTREAM 103
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 201
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 201
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif