{*******************************************************} { } { CttSchDefine } { } { Copyright (C) 2022 kku } { } {*******************************************************} unit CttSchDefine; interface uses Winapi.Windows, Winapi.Messages, superobject; const EXE_KVCTTSCH = 'KvCttSch.exe'; // DOC_EXTS_TAG = 'txt|doc|docx|xls|xlsx|ppt|pptx|hwp|hwpx|pdf|rtf|csv'; DOC_EXTS_TAG = 'txt|doc|docx|xls|xlsx|ppt|pptx|hwp|hwpx|pdf|rtf|csv|docm|dot|dotx|xlsm|xlsb|pps|pot'; // 변경, 391개 23_0216 15:01:28 kku DOC_EXTS = 'TXT|LOG|DOC|WPS|PDF|XLS|PPT|HWP|DOCX|DOTX|XLSX|XLTX|PPTX|POTX|' + 'PPSX|HW|RTF|MW|OW| WP|WP4|WPD|WOP|WM|PW|WMF|WS|WSD|DIF|MWK|W40|' + 'WDB|CSV|WS2|SMTP|EML|MBX|STE|AW|UNI|WKS|WK1|WK3|WK4|FM3|LWP|MWP|' + 'XLC|XLM|123|PWD|MPP|VSD|MSG|OFT|VDX|SXW|SXC|STC|SXI|NSF|DOCM|' + 'DOTM|XLSM|XLTM|XLAM|PPTM|POTM|PPSM|PPAM|XLSB|XPS|DXL|ODT|ODS|' + 'ODP|ONM|GRV|PAGES|NUMBERS|KEY|XDW|ONE|DCM|MLS|ML3|ML4|ML5|ML6|' + 'ML7|ML8|ML9|MLA|EMCMF|ACCDT|GUL|JNT|MAT|FIG|OLM|VCF|ICS|VCS|IWA|' + 'VSSX|VSTX|VSTM|SDW|SGL|VOR|SDC|SDD|SDA|SMF|YML|SCPT|MB|JT|MO|QM|' + 'IV|PBIX|IBOOKS|FDF|XFDF|MSO|RSS|SMIL|XSPF|FB2|PPJ|RDF|RSD|SBML|' + 'SRU|SSML|PLS|TEI|METS|MODS|OPF|SRGS|SRX|VXML|CCXML|YIN|CML|VTU|' + 'SXD|SXG|ODM|OTH|FODP|FODS|FODT|OXT|SVM|XDF|HTM|HTML|ASF|MHT|MHTML|' + 'MXML|MXL|XML|ASP|METALINK|XDP|XUL|ABAP|AMPL|APL|ASN|AGDA|ALS|CLS|' + 'INO|AJ|AWK|BMX|BSV|B|BF|BRS|CLP|CMAKE|CBL|CCP|COB|CPY|W|MSS|CEYLON|' + 'CHPL|CLW|DCL|ICL|CP|CL|CREOLE|CR|ORC|CSD|CU|D|DART|ECL|ELM|EM|FAN|' + 'FTL|FR|G|GMS|GD|GLSL|GML|GNU|GP|GOLO|GS|GRADLE|GRAPHQL|DOT|HLSL|' + 'HAML|HBS|HY|IPF|IDR|I7X|IK|IJS|JQ|JSX|JL|SCH|KT|LFE|LOL|LAS|LASSO|' + 'LS|MS|MD|MXT|MOD|MONKEY|MOO|NL|NSI|NLOGO|VHOST|NIX|NU|SCAD|OX|' + 'OXYGENE|OZ|PWN|PLSQL|PAN|PASM|PIKE|PONY|PDE|PB|RAML|RDOC|REXX|RSC|' + 'REB|REBOL|RED|RPY|RING|ROBOT|SAS|SQL|SLS|SCI|NUT|STAN|STYL|SV|TXL|' + 'TTL|UR|URS|VIM|VB|WAT|WEBIDL|X10|XQM|XTEND|YANG|ZEP|EC|TSD|ODC|' + 'ODB|ODI|OTC|OTF|OTG|OTI|OTP|OTS|OTT|FODC|FODG|FODF|FODI|DBB|FOR|' + 'FORTH|PST|OST|CHM|EVT|EVTX|INI|PDB|COM|HLP|HQX|DIB|MDB|O|SO|PGP|' + 'HL7|EFX|CLASS|VSSM|APPLESCRIPT|C|H|CS|CPP|HPP|CSS|CLJ|CL2|COFFEE|' + 'CAKE|EL|E|ERL|ES|FS|F|GO|GRT|GVY|HS|JAVA|JS|LUA|MAKE|M|J|PHP|' + 'PASCAL|PL|PS1|PRO|PROLOG|PP|PY|R|RB|RS|SC|SH|ST|ML|SWIFT|TM|TS|' + 'V|QHC|FRM|PCAP|HXD|HXW|HXH|XWD|ASC'; AIP_EXTS = 'DOC|DOCX|XLS|XLSX|PPT|PPTX|PDF|XLSM|XLSB|XLTX|XLTM|XLT|XPS|DOCM|DOTX|' + 'DOTM|DOT|PPTM|XPS|PPSX|PPSM|PPS|POT'; OCR_IMG_EXTS = 'PNG|JPG|JPE|JPEG|BMP|TIF|TIFF|WEBP'; // 'JPG|PNG|JPE|JPEG|BMP|GIF|TIFF|PCX'; // COMPRESS_EXTS = 'ZIP|TGZ|7Z|LZH|TAR|GZ|XZ|EGG|ALZ|JAR|TBZ|RAR'; COMPRESS_EXTS = 'ZIP|7Z|LZH|GZ|EGG|ALZ|JAR|TBZ'; WM_CTTSCH_INIT = WM_USER + 2587; WM_CTTSCH_REQUEST = WM_CTTSCH_INIT + 1; WM_POPUP_PRTW_PROGRESS = WM_CTTSCH_REQUEST + 1; KV_REQUEST_SEARCH_PATH = 1; KV_RESPONSE_SEARCH_PATH = 2; KV_SEARCH_RESULT = 3; KV_HOOK_PRINT = 4; // COPYDATA Command // KV_PRTWM_PROGRESS = 501; RESULT_SEPARATOR = '|!*!|'; DEF_TIMEOUT_SEC = 12; KVC_REQUEST_EXTRACT_TEXT = 11001; KVC_RESPONSE_EXTRACT_TEXT = 11002; KVC_REQUEST_KEYWORD_SEARCH = 11003; KVC_RESPONSE_KEYWORD_SEARCH = 11004; type TCttSchTaskType = (csttNone, csttTest, csttExtrSimple, csttExtrDocInfo, csttWaterMarkImg, csttSchMulti, csttSchConnect, csttPrint); TCttSimpleOpt = record sSrcPath, sDestPath, sAssocInfo: String; end; PSchResult = ^TSchResult; TSchResult = record nHitCnt: Integer; sFName, sPath, sSchName, sExtrTxt, sResultStr: String; bDrm, bMakeDrm, bOtherDrm: Boolean; end; TCttSchOpt = record hRcvHwnd: HWND; sMK, sSchTxt, sZipExts, // 압축파일 안에서 나온 확장자 검색지정 sKvMdPath, sAipExt, sAipDMail, // 위임 계정 (메일형식), UPN sAipPxMail, // proxyAddress 이메일 주소 형식 sAipMdPath, sAipLabelId: String; nAipEncMSec, // AIP 암호화 후 대기 (밀리초) nUnzipDepth, nWorkPriority, nKvTimeoutSec: Integer; bIncDrm, bIncZip, bIncFName, // 파일 이름도 검색되도록 포함 bMakeDrm, bMakeDrmN, // 검출되지 않은 파일도 암호화, for HEC bExtrTxt, bSaveContent: Boolean; bNoMatchNoti: Boolean; // 증분검사, 기존결과유지 사용 시 활성화 되서 검출되지 않은 파일 정보 전달 24_0611 08:50:05 kku sTaskDir, sCustomKwdPtrn, sSvContentPath: String; end; TFileScanOpt = record CttSchOpt: TCttSchOpt; sScanExt: String; // {$IFDEF _HE_} // 다른 프로세스와 맞추기 위해 구분 없앰 24_0610 14:31:55 kku sScanId, sSchTitle: String; bShowSchTitle: Boolean; // {$ENDIF} sTgDirs, sSchPtrns: String; nLangId, nLimitSizeMB, nSchTimeoutSec: Integer; bSaveFileList, bSaveDirList, bSaveScanList: Boolean; sSvFilePath, sSvDirPath, sSvScanPath, sIgrWordPath: String; bPartScan: Boolean; dtRecent: TDateTime; end; PPrtWaterEnt = ^TPrtWaterEnt; TPrtWaterEnt = record sPtrName, sDocName, sImgPath, sPdfPath, sPrtDocId: String; // dwPageSizeT, dwCopy, dwTotalPage: DWORD; bPaperV: Boolean; sPrtIp, DevMode, sPaperInfo: String; // BinStr bColor, bUseWM: Boolean; LogJson, sPostApvId: String; end; function CttCodeToStr(sCode: String): String; implementation function CttCodeToStr(sCode: String): String; begin Result := sCode; if Result = '1056002' then Result := '주민등록번호' else if Result = '1056003' then Result := '여권번호' else if Result = '1056004' then Result := '전화번호' else if Result = '1056005' then Result := '이메일주소' else if Result = '1056006' then Result := '환각성약물' else if Result = '1056007' then Result := '금지약물' else if Result = '1056008' then Result := '주소' else if Result = '1056009' then Result := '차량번호' else if Result = '1056010' then Result := 'IP' else if Result = '1056011' then Result := '의료보장번호' else if Result = '1056012' then Result := '도메인' else if Result = '1056013' then Result := 'MAC주소' else if Result = '1056014' then Result := '우편번호' else if Result = '1056015' then Result := '계좌번호' end; end.