mirror of
https://github.com/n5ac/mmsstv.git
synced 2026-01-20 23:30:19 +01:00
218 lines
5.9 KiB
C++
218 lines
5.9 KiB
C++
//---------------------------------------------------------------------------
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
//---------------------------------------------------------------------------
|
|
#include "ComLib.h"
|
|
#include "About.h"
|
|
//---------------------------------------------------------------------------
|
|
USEUNIT("Comlib.cpp");
|
|
USEFORM("About.cpp", AboutDlg);
|
|
USERC("textart.rc");
|
|
USEFORM("TextDlg.cpp", TextDlgBox);
|
|
USEFORM("CodeVw.cpp", CodeView);
|
|
//---------------------------------------------------------------------------
|
|
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
|
|
{
|
|
switch(reason){
|
|
case DLL_PROCESS_ATTACH:
|
|
{
|
|
InitSys(hinst);
|
|
|
|
_setmbcp(_MB_CP_ANSI);
|
|
HWND hMM = ::FindWindow("TMmsstv", NULL);
|
|
if( hMM != NULL ) Application->Handle = hMM;
|
|
}
|
|
break;
|
|
case DLL_PROCESS_DETACH:
|
|
sys.m_fMultProc = NULL;
|
|
if( sys.m_pDefStg != NULL ){
|
|
CItem *pItem = new CItem;
|
|
pItem->Create(NULL, 0);
|
|
pItem->SaveToInifile("Default", ININAME, FALSE);
|
|
delete pItem;
|
|
delete sys.m_pDefStg;
|
|
sys.m_pDefStg = NULL;
|
|
}
|
|
if( sys.m_pTextList != NULL ){
|
|
SaveStringsToIniFile(sys.m_pTextList, "Strings", ININAME, TRUE);
|
|
delete sys.m_pTextList;
|
|
sys.m_pTextList = NULL;
|
|
}
|
|
if( sys.m_pStyleList != NULL ){
|
|
SaveStringsToIniFile(sys.m_pStyleList, "Styles", ININAME, FALSE);
|
|
delete sys.m_pStyleList;
|
|
sys.m_pStyleList = NULL;
|
|
}
|
|
if( sys.m_pFontList != NULL ){
|
|
delete sys.m_pFontList;
|
|
sys.m_pFontList = NULL;
|
|
}
|
|
if( sys.m_pBitmapTemp != NULL ){
|
|
delete sys.m_pBitmapTemp;
|
|
sys.m_pBitmapTemp = NULL;
|
|
}
|
|
break;
|
|
}
|
|
return 1;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmLanguage(DWORD lang)
|
|
{
|
|
sys.m_MsgEng = lang;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmAboutDialog(HWND hWnd)
|
|
{
|
|
TAboutDlg *pBox = new TAboutDlg(NULL);
|
|
pBox->ShowModal();
|
|
delete pBox;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
HANDLE mcmCreateObject(LPCBYTE pStorage, DWORD Size)
|
|
{
|
|
CItem *pItem = new CItem;
|
|
ASSERT(pItem);
|
|
if( pItem != NULL ) pItem->Create(pStorage, Size);
|
|
return (HANDLE)pItem;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
DWORD mcmGetItemType(HANDLE hObj)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
return pItem->GetItemType();
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
LPCBYTE mcmCreateStorage(HANDLE hObj, LPDWORD pSize)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
return pItem->CreateStorage(pSize);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmDeleteStorage(HANDLE hObj, LPCBYTE pStorage)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
pItem->DeleteStorage(pStorage);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmDeleteObject(HANDLE hObj)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
if( pItem != NULL ) delete pItem;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
DWORD mcmEdit(HANDLE hObj, HWND hWnd)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
int r = pItem->EditDialog(hWnd);
|
|
return r;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
DWORD mcmFont(HANDLE hObj, HWND hWnd)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
int r = pItem->FontDialog(hWnd);
|
|
::SetForegroundWindow(hWnd);
|
|
return r;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
DWORD mcmGetOrgSize(HANDLE hObj)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
return pItem->GetOrgSize();
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmPos(HANDLE hObj, DWORD pos, DWORD size, DWORD tsize)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
pItem->SetPos(pos, size, tsize);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
LPCSTR mcmGetUserText(HANDLE hObj)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
return pItem->GetText();
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
HBITMAP mcmUpdateText(HANDLE hObj, HBITMAP hDest, LPCSTR pText)
|
|
{
|
|
ASSERT(hObj);
|
|
ASSERT(hDest);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
// Draw object to hDest
|
|
Graphics::TBitmap *pDest = new Graphics::TBitmap;
|
|
pDest->Handle = hDest;
|
|
pDest = pItem->Draw(pDest, pText);
|
|
|
|
HBITMAP hb = pDest->ReleaseHandle();
|
|
delete pDest;
|
|
return (hb != hDest) ? hb : NULL;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
HBITMAP mcmUpdateImage(HANDLE hObj, HBITMAP hDest, HBITMAP hSrc)
|
|
{
|
|
ASSERT(0); // This function should not be called
|
|
return NULL;
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmSetDraft(HANDLE hObj, DWORD draft)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
pItem->SetDraft(draft);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmSetEx(HANDLE hObj, DWORD ex)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
pItem->SetEx(ex);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmGetFont(HANDLE hObj, LOGFONT *pLogfont)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
pItem->GetFont(pLogfont);
|
|
}
|
|
//---------------------------------------------------------------------
|
|
extern "C" __declspec(dllexport)
|
|
void mcmSetFont(HANDLE hObj, LOGFONT *pLogfont)
|
|
{
|
|
ASSERT(hObj);
|
|
CItem *pItem = (CItem *)hObj;
|
|
|
|
pItem->SetFont(pLogfont);
|
|
}
|
|
|