2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
61
61
#include "resource.h"
62
62
#include "compat_defs.h"
63
63
/*********************************************************************************************/
64
static Word16 gwHeightRC = 0;
65
Word16 gwLowRC_rrec = RRECCOM_ERR_NO; /* Not static since it is accessed in recog.cpp. */
66
Word8* lnOcrPath = NULL;
67
/*********************************************************************************************/
68
/*********************************************************************************************/
69
BOOL APIENTRY DllMain( HANDLE hModule,
70
DWORD ul_reason_for_call,
64
static uint16_t gwHeightRC = 0;
65
uint16_t gwLowRC_rrec = RRECCOM_ERR_NO; /* Not static since it is accessed in recog.cpp. */
66
uchar* lnOcrPath = NULL;
67
/*********************************************************************************************/
68
/*********************************************************************************************/
69
Bool APIENTRY DllMain( HANDLE hModule,
70
uint32_t ul_reason_for_call,
87
CASE_DATA(RRECCOM_FNRECOG, Bool32, (Word32)RRECCOM_Recog);
88
CASE_DATA(RRECCOM_FNREX_ISLANGUAGE, Bool32, (Word32)RRECCOM_IsLanguage);
89
// CASE_DATA(RRECCOM_FNRECOGCOMP, Bool32, (Word32)RRECCOM_RecogComp);
87
CASE_DATA(RRECCOM_FNRECOG, Bool32, (uint32_t)RRECCOM_Recog);
88
CASE_DATA(RRECCOM_FNREX_ISLANGUAGE, Bool32, (uint32_t)RRECCOM_IsLanguage);
89
// CASE_DATA(RRECCOM_FNRECOGCOMP, Bool32, (uint32_t)RRECCOM_RecogComp);
91
/* CASE_DATA(RRECCOM_Word8_Matrix ,Word8,matrix);
92
CASE_DATA(RRECCOM_Word8_Fax1x2 ,Word8,fax1x2);
93
CASE_DATA(RRECCOM_Word16_ActualResolution ,Word16,actual_resolution);
91
/* CASE_DATA(RRECCOM_Word8_Matrix ,uchar,matrix);
92
CASE_DATA(RRECCOM_Word8_Fax1x2 ,uchar,fax1x2);
93
CASE_DATA(RRECCOM_Word16_ActualResolution ,uint16_t,actual_resolution);
94
94
case RRECCOM_FNEVNPROPERT:
95
*(Word32*)pData = (Word32)RRECCOM_SetEVNProperties;
95
*(uint32_t*)pData = (uint32_t)RRECCOM_SetEVNProperties;
97
97
case RRECCOM_FNEXTRACOMP :
98
*(Word32*)pData = (Word32)RRECCOMExtracomp;
98
*(uint32_t*)pData = (uint32_t)RRECCOMExtracomp;
100
100
case RRECCOM_FNEXTRA :
101
*(Word32*)pData = (Word32)RRECCOMExtra;
101
*(uint32_t*)pData = (uint32_t)RRECCOMExtra;
103
103
case RRECCOM_FNEXTRADIB:
104
*(Word32*)pData = (Word32)RRECCOMExtraDIB;
104
*(uint32_t*)pData = (uint32_t)RRECCOMExtraDIB;
107
107
case RRECCOM_FNGETCONTAINER:
108
*(Word32*)pData = (Word32)RRECCOMGetContainer;
108
*(uint32_t*)pData = (uint32_t)RRECCOMGetContainer;
111
111
case RRECCOM_FNGETLENEREP:
112
*(Word32*)pData = (Word32)RRECCOMMakeLP;
112
*(uint32_t*)pData = (uint32_t)RRECCOMMakeLP;
114
114
case RRECCOM_FNVERSION:
115
*(Word32*)pData = (Word32)RRECCOM_VERSION_CODE;
115
*(uint32_t*)pData = (uint32_t)RRECCOM_VERSION_CODE;
117
117
case RRECCOM_FNREX_ISLANGUAGE:
118
*(Word32*)pData = (Word32)RRECCOM_IsLanguage;
118
*(uint32_t*)pData = (uint32_t)RRECCOM_IsLanguage;
120
120
case RRECCOM_FNGETORIENT:
121
*(Word32*)pData = (Word32)RRECCOM_GetOrient;
121
*(uint32_t*)pData = (uint32_t)RRECCOM_GetOrient;
123
123
case RRECCOM_FNMN2CCOM:
124
*(Word32*)pData = (Word32)RRECCOM_MN2CCOM;
124
*(uint32_t*)pData = (uint32_t)RRECCOM_MN2CCOM;
126
126
case RRECCOM_FNGETINVERTION:
127
*(Word32*)pData = (Word32)RRECCOM_GetInvertion;
129
case RRECCOM_FNEVNALPHABET: // ��������� �������� ��� �����
130
*(Word32*)pData = (Word32)RRECCOM_SetEVNAlphabet;
132
case RRECCOM_FNEXTRACOMP3CB: // 3 ��������
133
*(Word32*)pData = (Word32)RRECCOMExtracomp3CB;
135
case RRECCOM_FNEXTGETRECRASTERORIENT: // ���������� �������� ������
136
*(Word32*)pData = (Word32)exc_get_rec_raster_orient;
138
case RRECCOM_FNSETALLALPHAGRA: // ������� ��������� ����
139
*(Word32*)pData = (Word32)exc_set_all_alphabet_gra;
127
*(uint32_t*)pData = (uint32_t)RRECCOM_GetInvertion;
129
case RRECCOM_FNEVNALPHABET: // установка алфавита для евент
130
*(uint32_t*)pData = (uint32_t)RRECCOM_SetEVNAlphabet;
132
case RRECCOM_FNEXTRACOMP3CB: // 3 коллбэка
133
*(uint32_t*)pData = (uint32_t)RRECCOMExtracomp3CB;
135
case RRECCOM_FNEXTGETRECRASTERORIENT: // ориентация рабочего растра
136
*(uint32_t*)pData = (uint32_t)exc_get_rec_raster_orient;
138
case RRECCOM_FNSETALLALPHAGRA: // алфавит нейронной сети
139
*(uint32_t*)pData = (uint32_t)exc_set_all_alphabet_gra;
142
142
gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;
161
/* CASE_DATA(RRECCOM_Word8_Matrix ,Word8,matrix);
162
CASE_DATA(RRECCOM_Word8_Fax1x2 ,Word8,fax1x2);
163
CASE_DATA(RRECCOM_Word16_ActualResolution,Word16,actual_resolution);
161
/* CASE_DATA(RRECCOM_Word8_Matrix ,uchar,matrix);
162
CASE_DATA(RRECCOM_Word8_Fax1x2 ,uchar,fax1x2);
163
CASE_DATA(RRECCOM_Word16_ActualResolution,uint16_t,actual_resolution);
164
164
CASE_PDATA(RRECCOM_ProgressStart, FNRRECCOM_ProgressStart, fnProgressStart);
165
165
CASE_PDATA(RRECCOM_ProgressStep, FNRRECCOM_ProgressStep, fnProgressStep);
166
166
CASE_PDATA(RRECCOM_ProgressFinish, FNRRECCOM_ProgressFinish,fnProgressFinish);
168
CASE_PDATA(RRECCOM_OcrPath, Word8*, lnOcrPath);
168
CASE_PDATA(RRECCOM_OcrPath, uchar*, lnOcrPath);
170
170
gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;
180
180
/*********************************************************************************************/
181
RRECCOM_FUNC(Word32) RRECCOM_GetReturnCode(void)
181
RRECCOM_FUNC(uint32_t) RRECCOM_GetReturnCode(void)
183
183
if(gwLowRC_rrec == RRECCOM_ERR_NO) return 0;
185
185
return (gwHeightRC<<16)|(gwLowRC_rrec-RRECCOM_ERR_MIN);
187
187
/*********************************************************************************************/
188
RRECCOM_FUNC(char*) RRECCOM_GetReturnString(Word32 dwError)
188
RRECCOM_FUNC(char*) RRECCOM_GetReturnString(uint32_t dwError)
190
Word16 rc = (Word16)((dwError & 0xFFFF) );
190
uint16_t rc = (uint16_t)((dwError & 0xFFFF) );
191
191
static char szBuffer[512];
193
193
if (dwError >> 16 != gwHeightRC) gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;