274 lines
15 KiB
Plaintext
274 lines
15 KiB
Plaintext
{*******************************************************}
|
|
{ }
|
|
{ STLabGuardModule }
|
|
{ }
|
|
{ Copyright (C) 2024 kku }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit STLabGuardModule;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, System.SysUtils;
|
|
|
|
const
|
|
{$IFDEF Win64}
|
|
DLL_ST = 'LabGuard_Layer_x64.dll';
|
|
{$ELSE}
|
|
DLL_ST = 'LabGuard_Layer_x86.dll';
|
|
{$ENDIF}
|
|
|
|
// poc_labcurity_S.txt - for 현대자동차 TEST
|
|
// 2024-05-21 ~ 2024-06-31
|
|
// ST_Key_S = 'ISD5vgWXTGX0tJw+7U/HkoVG7CbZuQ0aH4BRTBsuR21HRpNEPOgCZ21f5BETa3vJxM' +
|
|
// 'KCsVZJcUmZQAx5g8lz2WFS/nXP5kInSpmkiIYGmnNL7u3Ug85Zr0aEyLW9XruSt1Lb' +
|
|
// 'jXoCz3JEyS2r5ot6M41HLCecrB9Ma98wdzJHe7/vHWW9JlRrc297VkdFgVrBIt60pb' +
|
|
// 'XCxT6JNQV4/PN5bvppAJ9ZH9ku3OhZ2cBQ39W0GbhSp5v5t/hpuptxiohDkpoWtjYQ' +
|
|
// 'xrwOLDnqeK1IYNQ/d2z1jkao4Qk2deME4QgxJGZ6T62J9srVXhVWVPJMwejWUHtbLt' +
|
|
// '8LOS8e3JXBG0vn8dJlM6Gkhr97+UM9++xneUq756h0Om/fOyd1OK/AyGwKqC1uLZNk' +
|
|
// 'XN65O/UZjg/7ZhPdhPJetfoaG9MZI+olghbot4qfHQy3Skqjj9nr1/fpT6E/4M0evk' +
|
|
// 'rJRkoBFx1w0u35vbzWGUD4R3x6nvPA34xu1d5Uh+4PIMHiArlYXUVTBoxALa0VIWwE' +
|
|
// 'Bu0LUZgXU8jDsimrhQ6o/1l+QXJI+Tv+OfJj09nImN05Y7rzVAM/gjrjLmBsoy4VUP' +
|
|
// 'KAHzQnOetAGJ2y/W5Y7ZJr6NF02i6SVWmvDxnnE/sq6/tpB45D5emp5H6TJJII7vXv' +
|
|
// 'aWifP0iCIOb5OY/+UYD+5Bt7GY+BOHPoWf4R7WzBlDY9RVvX0Z77Of8PxRIdH9SgGz' +
|
|
// '1TaDF/wchBsegWN6U6S6iLI5TzCiPB2vsEHIx/iYa8E6WT8MtdbM5YoSmJHjXcDj1Y' +
|
|
// 'Pa33ZwZEiDjEtO4LErwKp9P1ZjbdfE4zeFyX+p5oNLwAUxADyPLM3eWYcWxs4Q==';
|
|
|
|
// SK하이닉스 PoC 2024-05-21 ~ 2024-10-07 ~ ?
|
|
// ST_Key_S = 'ISD5vgWXTGX0tJw+7U/HkoVG7CbZuQ0aH4BRTBsuR21HRpNEPOgCZ21f5BETa3vJ+w' +
|
|
// 'rapbTKSMChvHUSlhprcvZMPM/WGOP+M+Ip+372IPzrCTO2hcTw1txOiH6UN3WyHMNi' +
|
|
// 'L9KDdDJt4NsUJT417nbItjP/epctTBXlRloRmUyG00pH/S6eY0JmWXmW/qkmxfsVp+' +
|
|
// 'GkASmohf8nsRk9ZCHNM1E6NZ9sLNrB+LgF+pysyTcypuV1qoRDEfU/TG0zqb/MGjoS' +
|
|
// 'bL6t3+bYKaheORqyo9NAuTDFArc6y2T5gU+nktS2LeUASVm7ZleXsd0opDWpqfo1ks' +
|
|
// 'hM2/0lS9C58nhVdO67O2TZfvQdRh3oZCbosCUzEHRz9UnscjewnKP5IfAttn8iCm2k' +
|
|
// '46DmTVEstpidwHV9zBN1BIxVnQtSBpUDMWIRcCQP48Q7vgg//mTOTPnsUeVdIvUocX' +
|
|
// 'mW4y0DjwPERiWIiWM9GtBNoBHB5LBx1F2yZRmF+tgeYgXYT/b47zVQAhb8Pb/C7oSo' +
|
|
// 'JMl2QTH/dj/XE6hv+qZLVbeJaKsoEZl66VKzqj9X4VBpOfEoGBGld2Z9jXN3JTDBtK' +
|
|
// 'veNoV/0fZx1d89Ppkab1gN+ztWWWlTo6EihCdZA/UD0p+WwFY5eRvh22PfQQ+IfJDA' +
|
|
// 'TwWz6Rb2G/84bjrToS7OBYGoD+H2O4C6Vsw3i6rg8UJFCnc6Ape8Odqoy/8Bp5X9ht' +
|
|
// '+LSddJjALA9Rbhyzlkfdi9k3SGyRHHodZ8KrCypEnlVorMG3GVWavEfVzWGpExZXSu' +
|
|
// 'KzJBABfru4odgEpa+tcbcqqnhM222Iij5IBpn6Nf';
|
|
|
|
// ??
|
|
// ST_Key_S = 'ISD5vgWXTGX0tJw+7U/HkglGMoHrmlmdZwcGzmrVJ4BKdt4mJgTaJjBHBiGwwcaElgmx' +
|
|
// '9M+S1TsmbrN4f3mulZSad1ArstMpp0pCrhurTZ4gAfxN2ul8Ol4gt2q0rPocyAN6roMw' +
|
|
// 'laA5uItr2p114R7pxF1OErHXLY1GP3UfeFAQ0oYdPc7uX2Dh4UySkP1Mi7pSgEBd5/Rq' +
|
|
// 'fQzCS04OqxLt3L65MgM5k3+NuFhFfPN7Ct99YWQdAfbspVbb35R6en8mmWZdVx9uC4UI' +
|
|
// 'TjvtO2eV4FlW5lCziBpOqvbDJMyve7CamioUgQNfZvN0mKTKtT1eQ4TyVyUb+bXPWATE' +
|
|
// 'VKNh4WmHItDE9FYiqjwBWvJmZ25hoNm9e8HvFvUNEm56jfsW7EzITOoARt0ilDk99fLX' +
|
|
// 'WNG5z4+RFfDJ+p6+iqpKkZWOElzVercx+zlKkExB6tu/5bcGgITOW8wLSX33vMnoXNGR' +
|
|
// 'xp+8aq7WFHV92BLHGltVWFiVitxzXW8CR3+KPHwWbB8PmWNCeIr3T1bpKciOmJ1nuBrk' +
|
|
// 'md8dLdTtGq0tt9g6aUe7rk9xq+tkd7tUyLnwaddrnuR5Yw13zrttPgsAIjyHnq8gu2I7' +
|
|
// 'ZTnJNbo0Qoz1ZpK/oeCUm5Ohn7BDk795PcC5DrAkg0YV3I2WRuUhKl9/ksIRCV4OzntG' +
|
|
// 'ZQxWtEg4zyeSOyQp/QYKIVPO5hJ7JvGgYuNhsy22Vemj1onHpFqdxq/aoGlFad2BREOl' +
|
|
// '9ZXmX0u1qFIZ0DU/1P4XLiegCclX14LQUUox0/sjY003BjE7fF2s8Y2LI0dM6Q58UsSX' +
|
|
// 'QXvxl0tdUrVnfrwrLBxsab5Pa016h2WAvgLSgPcdHgGlECTe/wqPpnhpmCVH2vO3UoC4' +
|
|
// '5X05bKjjqB4Q';
|
|
|
|
// HD조선해양 PoC 25_1031
|
|
ST_Key_S = 'ISD5vgWXTGX0tJw+7U/HkglGMoHrmlmdZwcGzmrVJ4BKdt4mJgTaJjBHBiGwwcaElgmx9M' +
|
|
'+S1TsmbrN4f3mulZSad1ArstMpp0pCrhurTZ4gAfxN2ul8Ol4gt2q0rPocyAN6roMwlaA5' +
|
|
'uItr2p114R7pxF1OErHXLY1GP3UfeFAQ0oYdPc7uX2Dh4UySkP1Mi7pSgEBd5/RqfQzCS0' +
|
|
'4OqxLt3L65MgM5k3+NuFhFfPN7Ct99YWQdAfbspVbb35R6en8mmWZdVx9uC4UITjvtO2eV' +
|
|
'4FlW5lCziBpOqvbDJMyve7CamioUgQNfZvN0mKTKtT1eQ4TyVyUb+bXPWATEVKNh4WmHIt' +
|
|
'DE9FYiqjwBWvJmZ25hoNm9e8HvFvUNEm56jfsW7EzITOoARt0ilDk99fLXWNG5z4+RFfDJ' +
|
|
'+p6+iqpKkZWOElzVercx+zlKkExB6tu/5bcGgITOW8wLSX33vMnoXNGRxp+8aq7WFHV92B' +
|
|
'LHGltVWFiVitxzXW8CR3+KPHwWbB8PmWNCeIr3T1bpKciOmJ1nuBrkmd8dLdTtGq0tt9g6' +
|
|
'aUe7rk9xq+tkd7tUyLnwaddrnuR5Yw13zrttPgsAIjyHnq8gu2I7ZTnJNbo0Qoz1ZpK/oe' +
|
|
'CUm5Ohn7BDk795PcC5DrAkg0YV3I2WRuUhKl9/ksIRCV4OzntGZQxWtEg4zyeSOyQp/QYK' +
|
|
'IVPO5hJ7JvGgYuNhsy22Vemj1onHpFqdxq/aoGlFad2BREOl9ZXmX0u1qFIZ0DU/1P4XLi' +
|
|
'egCclX14LQUUox0/sjY003BjE7fF2s8Y2LI0dM6Q58UsSXQXvxl0tdUrVnfrwrLBxsab5P' +
|
|
'a016h2WAvgLSgPcdHgGlECTe/wqPpnhpmCVH2vO3UoC45X05bKjjqB4Q';
|
|
|
|
// poc_labcurity_P.txt - for 현대자동차 TEST
|
|
// 2024-05-21 ~ 2024-06-31
|
|
// ST_Key_P = 'ISD5vgWXTGX0tJw+7U/HkoVG7CbZuQ0aH4BRTBsuR21HRpNEPOgCZ21f5BETa3vJxM' +
|
|
// 'KCsVZJcUmZQAx5g8lz2WFS/nXP5kInSpmkiIYGmnNL7u3Ug85Zr0aEyLW9XruSt1Lb' +
|
|
// 'jXoCz3JEyS2r5ot6M41HLCecrB9Ma98wdzJHe7/vHWW9JlRrc297VkdFgVrBIt60pb' +
|
|
// 'XCxT6JNQV4/PN5bvppAJ9ZH9ku3OhZ2cBQ39W0GbhSp5v5t/hpuptxiohDkpoWtjYQ' +
|
|
// 'xrwOLDnqeK1IYNQ/d2z1jkao4Qk2deME4QgxJGZ6T62J9srVXhVWVPJMwejWUHtbLt' +
|
|
// '8LOS8e3JXBG0vn8dJlM6Gkhr97+UM9++xneUq756h0Om/fOyd1OK/AyGwKqC1uLZNk' +
|
|
// 'XN65O/UZjg/7ZhPdhPJetfoaG9MZI+olghbot4qfHQy3Skqjj9nr1/fpT6E/4M0evk' +
|
|
// 'rJRkoBFx1w0u35vbzWGUD4R3x6nvPA34xu1d5Uh+4PIMHiArlYXUVTBoxALa0VIWwE' +
|
|
// 'Bu0LUZgXU8jDsimrhQ6o/1l+QXIVs+q87nzBJ7EcfuCGt+KZqjG1V76dJFxTdCuTs0' +
|
|
// '0gPK6EV/L6wyH7MuRu3dxbmb0vrhQDn1I/wB1MZM8NXSS7A86rRjgSKj92FI0CeX4E' +
|
|
// 'kfGROBAS2KQjjYimfqJIT1KvaR1HvGGCVWwF0IzkoJDKPV5OBBzXtwQPxlyoe/+BVY' +
|
|
// 'tSldrdpkTrQIN+QOzhGcmKKlZtLciPB9z0a383W+TU0feofo9lrmruYIuRv64jkZYY' +
|
|
// 'cNZnc2Xc8DkNphr/+tC2K7CIGeqehLr5rPEOEwkwqqGqrOJy7lxa/0SmIFQwRQ==';
|
|
|
|
// ST_Key_P = 'ISD5vgWXTGX0tJw+7U/HkoVG7CbZuQ0aH4BRTBsuR21HRpNEPOgCZ21f5BETa3vJ+w' +
|
|
// 'rapbTKSMChvHUSlhprcvZMPM/WGOP+M+Ip+372IPzrCTO2hcTw1txOiH6UN3WyHMNi' +
|
|
// 'L9KDdDJt4NsUJT417nbItjP/epctTBXlRloRmUyG00pH/S6eY0JmWXmW/qkmJPsWUX' +
|
|
// 'Aemv6DMV/3LKO0igjt1XLSlyPoMZSmQbsSBmSpELLCQNUe/9ymTi9K6IL7fx7p2q6A' +
|
|
// 'bvdIKq7BuiNrOMZxB8hkfEY5T3cgt32y3T2bOuiQGb03j0i6txy5wcIMxWn8G28bdU' +
|
|
// 'KUvNrvbqbyF5dVTqeC1WQsfZWkYxzko5hyn90W+i4OGgS+zSTAOEDKCgOjp5NPPumf' +
|
|
// '6igtZ7HFjQ+L0k0wJSOlmRlf4+wDk30GnJEqqjAct8Dxv5yEXjCosFeTS6KLvdR1ef' +
|
|
// '/zg8FRXRhJJQKh28NOEi2k/+NBgjUruK5I4+J1C4atIJyC4XFg2yNSJvgw241pLSFY' +
|
|
// 'EVrnHe2tvW9NUANqLkrvFSSckB1GnsnniuqrSSF/mBMhI2sh6wDr8HiQI6uQRduhJJ' +
|
|
// 'MEm4qjPIq/SqeIm+YfMx0xKJFILjVQZKbk8gj8N2oEGdLtfcs8eTFY5nbjNnsgAeWj' +
|
|
// 'yDtSkefxWGYb4IhzGa/cIMFIJigqE/XO1CNWrCeum297wvG7YqwGQpB8J6tHqU1kjX' +
|
|
// 'uIwCtpOgo1rre98Why1IS8CZ0xHFUKHIvr0RCGqSMH5YP4uK9IDVWXcP0DxJD/5sKQ' +
|
|
// 'mUNs287F6PquZS7nSfa7g2izrqm799RxYng1GfCsqr5K1PhEc3Ot+RvaWWOwKQ==';
|
|
|
|
// ??
|
|
// ST_Key_P = 'ISD5vgWXTGX0tJw+7U/HkglGMoHrmlmdZwcGzmrVJ4BKdt4mJgTaJjBHBiGwwcaEOXFv' +
|
|
// 'WJOP5NAmC/GDK5jE0MJ+sQj8d5xIfWo23Bw+SikBlAgDD1gjEbuIzZOjxFx1XnFtPAMem6LLNWqDBQM' +
|
|
// 'o41yG8UMV7HHTHV117aGIRnuYZrYyHBWV1nURp8CEOQupQY14fK7pLrMftAZ8wFbnkUoV3a15Q7q29/' +
|
|
// 'iXNrCnxmK4bq19hkPaaWncwb9u+9DtL8Bn+fnzVqjxWfJIN1OB7Sdmq+K9YzQaV/eVli45yoAQTkh9/' +
|
|
// 'tIz9OBGQFK9jaJv/TqUoRXYdNuLFCKDT/u9fmK3QZ8jS+jPfEhfX31ep6BvS2IImhYp+J0TDrsccG8v' +
|
|
// 'nuirUdnvFIGCVYE09U74wMuy8YrxounUTL3z8gZ2S8ES2qrxlB6XmilOqETuGZeqBkL7xsaW00/itUA' +
|
|
// 'VWRNyMoC/hNY7Z85AcbjiBUvxIqUdttBZOfnYYEVq7IdfKAB7/HaEqWnTXET41W2Fn6YnGcmxqoORPa' +
|
|
// 'kFPluBE6k4tknj5m9dAgdHOlR2TdDNKGz2TfOWgrrba6c1CBopRgAFXhdoBFHm243hvQkv2poNZka9P' +
|
|
// 'MlU7Hhl9dZ6LPD46bl+96rGZJodMaflW/32xiUH+oD72XNRsq9UGchkorEy+X+mgErsA1B0OfVti83K' +
|
|
// 'OCEWO3ekqc4hRBwSfN2RMbQ9RwC1jOVzsIA22iQsAdo2eymxgQbqjSzR434MCaAfSgM/nohaUDTjt1f' +
|
|
// 'k1u7yKV12bREw9Oo78t0lqFMv+xxIg3fR1oUsQ3tWYKb/yG6EUSeX+ngiUyZq1+BRplzwWkGrphQgpb' +
|
|
// 'qIcNEoMbv8eS+GhITL+YpC1nZgZu/JCon5Yy89';
|
|
|
|
// HD조선해양 PoC 25_1031
|
|
ST_Key_P = 'ISD5vgWXTGX0tJw+7U/HkglGMoHrmlmdZwcGzmrVJ4BKdt4mJgTaJjBHBiGwwcaEOXFvWJOP5NAmC/GDK' +
|
|
'5jE0MJ+sQj8d5xIfWo23Bw+SikBlAgDD1gjEbuIzZOjxFx1XnFtPAMem6LLNWqDBQMo41yG8UMV7HHTHV' +
|
|
'117aGIRnuYZrYyHBWV1nURp8CEOQupQY14fK7pLrMftAZ8wFbnkUoV3a15Q7q29/iXNrCnxmK4bq19hkP' +
|
|
'aaWncwb9u+9DtL8Bn+fnzVqjxWfJIN1OB7Sdmq+K9YzQaV/eVli45yoAQTkh9/tIz9OBGQFK9jaJv/TqU' +
|
|
'oRXYdNuLFCKDT/u9fmK3QZ8jS+jPfEhfX31ep6BvS2IImhYp+J0TDrsccG8vnuirUdnvFIGCVYE09U74w' +
|
|
'Muy8YrxounUTL3z8gZ2S8ES2qrxlB6XmilOqETuGZeqBkL7xsaW00/itUAVWRNyMoC/hNY7Z85AcbjiBU' +
|
|
'vxIqUdttBZOfnYYEVq7IdfKAB7/HaEqWnTXET41W2Fn6YnGcmxqoORPakFPluBE6k4tknj5m9dAgdHOlR' +
|
|
'2TdDNKGz2TfOWgrrba6c1CBopRgAFXhdoBFHm243hvQkv2poNZka9PMlU7Hhl9dZ6LPD46bl+96rGZJod' +
|
|
'MaflW/32xiUH+oD72XNRsq9UGchkorEy+X+mgErsA1B0OfVti83KOCEWO3ekqc4hRBwSfN2RMbQ9RwC1j' +
|
|
'OVzsIA22iQsAdo2eymxgQbqjSzR434MCaAfSgM/nohaUDTjt1fk1u7yKV12bREw9Oo78t0lqFMv+xxIg3' +
|
|
'fR1oUsQ3tWYKb/yG6EUSeX+ngiUyZq1+BRplzwWkGrphQgpbqIcNEoMbv8eS+GhITL+YpC1nZgZu/JCon5Yy89';
|
|
|
|
type
|
|
TFn_getEPapyrusImage = function(sOutPath: PAnsiChar; nSize: Integer; ullProduct: ULONGLONG): Integer; cdecl;
|
|
TFn_getLabGuardImage = function(nModuleType, nPartner, nCustomer: Integer; ullSeq: ULONGLONG; sOutPath: PAnsiChar; nSize, nType: Integer): Integer; cdecl;
|
|
TFn_labGuardPS = function(sKeyPath, sWritePath: PAnsiChar; nSize, nType, nUser: Integer; sDate, sSeq: PAnsiChar): Integer;
|
|
|
|
function getEPapyrusImage(sOutPath: AnsiString; nSize: Integer; ullProduct: ULONGLONG): Integer;
|
|
function getLabGuardImage(nModuleType, nPartner, nCustomer: Integer; ullSeq: ULONGLONG; sOutPath: AnsiString; nSize, nType: Integer): Integer;
|
|
function labGuardPS(sKeyPath, sWritePath: AnsiString; nSize, nType,
|
|
nUser: Integer; sDate: AnsiString; var sSeq: AnsiString): Integer;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Tocsg.Path;
|
|
|
|
var
|
|
_hST: THandle = 0;
|
|
Fn_getEPapyrusImage: TFn_getEPapyrusImage = nil;
|
|
Fn_getLabGuardImage: TFn_getLabGuardImage = nil;
|
|
Fn_labGuardPS: TFn_labGuardPS = nil;
|
|
|
|
function InitProcedure: Boolean;
|
|
var
|
|
sDllPath: String;
|
|
begin
|
|
begin
|
|
if _hST = 0 then
|
|
begin
|
|
sDllPath := GetRunExePathDir + DLL_ST;
|
|
if not FileExists(sDllPath) then
|
|
begin
|
|
sDllPath := GetRunExePathDir + 'conf\' + DLL_ST;
|
|
if not FileExists(sDllPath) then
|
|
exit;
|
|
end;
|
|
|
|
_hST := LoadLibrary(PChar(sDllPath));
|
|
if _hST <> 0 then
|
|
begin
|
|
@Fn_getEPapyrusImage := GetProcAddress(_hST, 'getEPapyrusImage');
|
|
@Fn_getLabGuardImage := GetProcAddress(_hST, 'getLabGuardImage');
|
|
@Fn_labGuardPS := GetProcAddress(_hST, 'labGuardPS');
|
|
end;
|
|
end;
|
|
Result := _hST <> 0;
|
|
end;
|
|
end;
|
|
|
|
function getEPapyrusImage(sOutPath: AnsiString; nSize: Integer; ullProduct: ULONGLONG): Integer;
|
|
begin
|
|
Result := -1;
|
|
if InitProcedure and Assigned(Fn_getEPapyrusImage) then
|
|
Result := Fn_getEPapyrusImage(PAnsiChar(sOutPath), nSize, ullProduct);
|
|
end;
|
|
|
|
function getLabGuardImage(nModuleType, nPartner, nCustomer: Integer; ullSeq: ULONGLONG; sOutPath: AnsiString; nSize, nType: Integer): Integer;
|
|
begin
|
|
Result := -1;
|
|
if InitProcedure and Assigned(Fn_getLabGuardImage) then
|
|
Result := Fn_getLabGuardImage(nModuleType, nPartner, nCustomer, ullSeq, PAnsiChar(sOutPath), nSize, nType);
|
|
end;
|
|
|
|
{
|
|
Function
|
|
int labGuardPS(const char* keyPath, const char* writePath, int size, int type, int user, const char* date, char* data);
|
|
|
|
|
|
Parameter
|
|
1) const char* keyPath
|
|
- 압축 파일 내에 존재하는 라이센스 키 파일에 대한 경로이며, labcurity.txt 파일을 위치시키신 경로를 입력해주시면 됩니다. ("/your/path/keyName.txt")
|
|
|
|
2) const char* writePath
|
|
- 생성될 단위 워터마크 이미지가 저장될 경로입니다. ("/your/path/output.png")
|
|
|
|
3) int size
|
|
- 생성될 단위 워터마크 이미지의 사이즈를 지정하는 Parameter 이며, 2 또는 4를 입력하실 수 있습니다. LAB Guard-S는 2, LAB Guard-P는 4입니다.
|
|
- 해당 Parameter 값에는 2를 입력해주시면 됩니다.
|
|
|
|
4) int type -> Watermark Shape (0 ~ 3)
|
|
0 -> gray base dot data
|
|
1 -> gray base data
|
|
2 -> blue base dot data
|
|
3 -> blue base data
|
|
- 고객사의 니즈에 따라 다양한 워터마크 Shape을 사용하게 됩니다.
|
|
- 권장 옵션은 3 -> blue base data 입니다.
|
|
- 3번 값 기준 권장 투명도는 MFC 옵션 값 기준( 0-투명 ~ 255-불투명) 38 입니다.
|
|
- 해당 parameter의 옵션에 따라 권장드리는 투명도가 다를 수 있습니다.
|
|
|
|
5) int user
|
|
- 현재 제공드리는 SDK는 테스트 버전이기 때문에 1~100까지 입력할 수 있습니다.
|
|
- POC 또는 실 계약시 계약 인원에 따라 늘어날 수 있습니다.
|
|
|
|
6) const char* date
|
|
- 워터마크에 담을 시간 정보 입니다.
|
|
- 분 단위로 입력이 가능하며, 워터마크를 생성하는 시점에 대한 시간 정보를 입력하시면 됩니다.
|
|
- (format -> yyyy/MM/dd HH:mm) (2023/01/01 00:00 ~ )
|
|
|
|
7) char* data
|
|
- LAB Guard 검출 모듈에서 보여지는 워터마크 일련번호를 생성해서 포인터에 저장합니다.
|
|
- user와 date 값 조합으로 생성되며, 보통 해당 워터마크 일련번호를 화면 워터마크 생성시 남긴 로그 또는 출력물 워터마크 로그에 연동하여 구현하게 됩니다.
|
|
- 크기 할당 필요. ex) char data[100]
|
|
|
|
Return
|
|
0 -> Success to Save
|
|
1 -> Unavailable KeyFile
|
|
2 -> Expired
|
|
3 -> No permission
|
|
5 -> Failed to Save
|
|
6 -> Product out of range
|
|
}
|
|
|
|
function labGuardPS(sKeyPath, sWritePath: AnsiString; nSize, nType,
|
|
nUser: Integer; sDate: AnsiString; var sSeq: AnsiString): Integer;
|
|
var
|
|
arrData: array [0..99] of AnsiChar;
|
|
begin
|
|
Result := -1;
|
|
if InitProcedure and Assigned(Fn_labGuardPS) then
|
|
begin
|
|
sSeq := '';
|
|
ZeroMemory(@arrData, Length(arrData));
|
|
|
|
// FormatDateTime('yyyy/mm/dd hh:nn', Now) 이렇게 해도 2024-05-31... 이렇게 반환되서 강제로 바꿔줌 24_0531 10:45:14 kku
|
|
sDate := StringReplace(sDate, '-', '/', [rfReplaceAll]);
|
|
Result := Fn_labGuardPS(PAnsiChar(sKeyPath), PAnsiChar(sWritePath),
|
|
nSize, nType, nUser, PAnsiChar(sDate), arrData);
|
|
if Result = 0 then
|
|
sSeq := AnsiString(arrData);
|
|
end;
|
|
end;
|
|
|
|
end.
|