{
  Required
   1. Zebra CORESCANNER SDK(SDK에 드라이버가 포함되어 있음)
   2. 제브라 드라이버 설치후, CCoreScanner 타입라이브러리 임포트하여 소스 패스에 넣어줄 것.
     - 현 프로젝트에서는 ZebraCtrlUnit.pas 에 CoreScanner_TLB 유닛으로 참조되어 있음.
   3. CoolTray 컴포넌트 필요
     - 혁산에서 이미 사용중인 FMCS 컴포넌트 중의 하나이므로 FMCS컴파일 하는 사람이면 누구나 가지고 있을 것임.
   4. SuperObject 컴포넌트 필요
     - XML, JSON 문자열 파싱을 도와주는 컴포넌트
     - 역시 FMCS에서 사용중인 컴포넌트이므로 FMCS 컴파일 가능한 환경이면 이미 가지고 있을 것임.


   2019-11-05, 박범호 이사님 주문
     1. 결과창이 우측 하단에 뜨도록
     2. 중복실행 방지
     3. 바코드 여러번 찍으면 앞단에 찍은 결과창은 그대로 두고 내용을 갱신시킬 것.
}

program ESB_Agent;

uses
  FastMM4,
  Windows,
  Forms,
  frmMainUnit in 'frmMainUnit.pas' {frmMain},
  frmAboutUnit in 'frmAboutUnit.pas' {frmAbout},
  frmConfigUnit in 'frmConfigUnit.pas' {frmConfig},
  frmResultUnit in 'frmResultUnit.pas' {frmResult},
  CommonDataUnit in 'CommonDataUnit.pas',
  ZebraCtrlUnit in 'ZebraCtrlUnit.pas';

{$R *.res}

const
  C_MUTEX_NAME = 'ESC_AGENT';

var
  hMutex : THandle;

begin
  hMutex := OpenMutex(MUTEX_ALL_ACCESS, False, C_MUTEX_NAME);
  if hMutex <> 0 then exit;

  hMutex := CreateMutex(nil, True, C_MUTEX_NAME);

  Application.Initialize;

  Application.ShowMainForm := false;
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TfrmResult, frmResult);
  Application.Run;
end.
