89 #if (TWNDSM_OS == TWNDSM_OS_MACOSX)
90 #pragma clang diagnostic push
91 #pragma clang diagnostic ignored "-Wall"
93 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
110 {TWLG_AFRIKAANS, ANSI_CHARSET, MAKELANGID(LANG_AFRIKAANS,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x4b\x61\x6e\x73\x65\x6c\x6c\x65\x65\x72"},
111 {TWLG_ALBANIA, EASTEUROPE_CHARSET, MAKELANGID(LANG_ALBANIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
112 {TWLG_ARABIC, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_NEUTRAL),
"",
"",
"",
""},
113 {TWLG_ARABIC_ALGERIA, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_ALGERIA),
"",
"",
"",
""},
114 {TWLG_ARABIC_BAHRAIN, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_BAHRAIN),
"",
"",
"",
""},
115 {TWLG_ARABIC_EGYPT, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_EGYPT),
"",
"",
"",
""},
116 {TWLG_ARABIC_IRAQ, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_IRAQ),
"",
"",
"",
""},
117 {TWLG_ARABIC_JORDAN, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_JORDAN),
"",
"",
"",
""},
118 {TWLG_ARABIC_KUWAIT, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_KUWAIT),
"",
"",
"",
""},
119 {TWLG_ARABIC_LEBANON, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_LEBANON),
"",
"",
"",
""},
120 {TWLG_ARABIC_LIBYA, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_LIBYA),
"",
"",
"",
""},
121 {TWLG_ARABIC_MOROCCO, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_MOROCCO),
"",
"",
"",
""},
122 {TWLG_ARABIC_OMAN, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_OMAN),
"",
"",
"",
""},
123 {TWLG_ARABIC_QATAR, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_QATAR),
"",
"",
"",
""},
124 {TWLG_ARABIC_SAUDIARABIA, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_SAUDI_ARABIA),
"",
"",
"",
""},
125 {TWLG_ARABIC_SYRIA, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_SYRIA),
"",
"",
"",
""},
126 {TWLG_ARABIC_TUNISIA, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_TUNISIA),
"",
"",
"",
""},
127 {TWLG_ARABIC_UAE, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_UAE),
"",
"",
"",
""},
128 {TWLG_ARABIC_YEMEN, ARABIC_CHARSET, MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_YEMEN),
"",
"",
"",
""},
129 {TWLG_ASSAMESE, ANSI_CHARSET, MAKELANGID(LANG_ASSAMESE,SUBLANG_NEUTRAL),
"",
"",
"",
""},
130 {TWLG_BASQUE, ANSI_CHARSET, MAKELANGID(LANG_BASQUE,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x55\x74\x7a\x69"},
131 {TWLG_BENGALI, ANSI_CHARSET, MAKELANGID(LANG_BENGALI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
132 {TWLG_BIHARI, 0, 0,
"",
"",
"",
""},
133 {TWLG_BODO, 0, 0,
"",
"",
"",
""},
134 {TWLG_BULGARIAN, RUSSIAN_CHARSET, MAKELANGID(LANG_BULGARIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
135 {TWLG_BYELORUSSIAN, RUSSIAN_CHARSET, MAKELANGID(LANG_BELARUSIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
136 {TWLG_CATALAN, ANSI_CHARSET, MAKELANGID(LANG_CATALAN,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x43\x61\x6e\x63\x65\x6c\xc2\xb7\x6c\x61"},
137 {TWLG_CHINESE, GB2312_CHARSET, MAKELANGID(LANG_CHINESE,SUBLANG_NEUTRAL),
"\xe9\x80\x89\xe6\x8b\xa9\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90",
"\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90\x3a",
"\xe9\x80\x89\xe6\x8b\xa9",
"\xe5\x8f\x96\xe6\xb6\x88"},
138 {TWLG_CHINESE_HONGKONG, CHINESEBIG5_CHARSET,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_HONGKONG),
"\xe9\x81\xb8\xe6\x93\x87\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90",
"\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90\x3a",
"\xe7\xa2\xba\xe5\xae\x9a",
"\xe5\x8f\x96\xe6\xb6\x88"},
139 {TWLG_CHINESE_PRC, GB2312_CHARSET, MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
"\xe9\x80\x89\xe6\x8b\xa9\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90",
"\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90\x3a",
"\xe9\x80\x89\xe6\x8b\xa9",
"\xe5\x8f\x96\xe6\xb6\x88"},
140 {TWLG_CHINESE_SIMPLIFIED, GB2312_CHARSET, MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
"\xe9\x80\x89\xe6\x8b\xa9\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90",
"\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90\x3a",
"\xe9\x80\x89\xe6\x8b\xa9",
"\xe5\x8f\x96\xe6\xb6\x88"},
141 {TWLG_CHINESE_SINGAPORE, GB2312_CHARSET, MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
"\xe9\x80\x89\xe6\x8b\xa9\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90",
"\xe6\x95\xb0\xe6\x8d\xae\xe6\xba\x90\x3a",
"\xe9\x80\x89\xe6\x8b\xa9",
"\xe5\x8f\x96\xe6\xb6\x88"},
142 {TWLG_CHINESE_TAIWAN, CHINESEBIG5_CHARSET,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL),
"\xe9\x81\xb8\xe6\x93\x87\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90",
"\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90\x3a",
"\xe7\xa2\xba\xe5\xae\x9a",
"\xe5\x8f\x96\xe6\xb6\x88"},
143 {TWLG_CHINESE_TRADITIONAL,CHINESEBIG5_CHARSET,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL),
"\xe9\x81\xb8\xe6\x93\x87\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90",
"\xe5\xbd\xb1\xe5\x83\x8f\xe4\xbe\x86\xe6\xba\x90\x3a",
"\xe7\xa2\xba\xe5\xae\x9a",
"\xe5\x8f\x96\xe6\xb6\x88"},
144 {TWLG_CROATIA, EASTEUROPE_CHARSET, MAKELANGID(LANG_CROATIAN,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x4f\x64\x75\x73\x74\x61\x6e\x69"},
145 {TWLG_CZECH, EASTEUROPE_CHARSET, MAKELANGID(LANG_CZECH,SUBLANG_DEFAULT),
"Select Source",
"Sources:",
"Select",
"\x53\x74\x6f\x72\x6e\x6f"},
146 {TWLG_DANISH, ANSI_CHARSET, MAKELANGID(LANG_DANISH,SUBLANG_NEUTRAL),
"\x56\xC3\xA6\x6C\x67\x20\x45\x6E\x68\x65\x64",
"\x45\x6E\x68\x65\x64",
"\x56\xE6\x6C\x67",
"\x41\x6E\x6E\x75\x6C\x6C\x65\x72"},
147 {TWLG_DOGRI, 0, 0,
"",
"",
"",
""},
148 {TWLG_DUTCH, ANSI_CHARSET, MAKELANGID(LANG_DUTCH,SUBLANG_DUTCH),
"\x53\x65\x6c\x65\x63\x74\x65\x65\x72\x20\x62\x72\x6f\x6e",
"\x42\x72\x6f\x6e\x6e\x65\x6e\x3a",
"\x53\x65\x6c\x65\x63\x74\x65\x72\x65\x6e",
"\x41\x6e\x6e\x75\x6c\x65\x72\x65\x6e"},
149 {TWLG_DUTCH_BELGIAN, ANSI_CHARSET, MAKELANGID(LANG_DUTCH,SUBLANG_DUTCH_BELGIAN),
"\x53\x65\x6c\x65\x63\x74\x65\x65\x72\x20\x62\x72\x6f\x6e",
"\x42\x72\x6f\x6e\x6e\x65\x6e\x3a",
"\x53\x65\x6c\x65\x63\x74\x65\x72\x65\x6e",
"\x41\x6e\x6e\x75\x6c\x65\x72\x65\x6e"},
150 {TWLG_ENGLISH, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"Cancel"},
151 {TWLG_ENGLISH_AUSTRALIAN, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_AUS),
"Select Source",
"Sources:",
"Select",
"Cancel"},
152 {TWLG_ENGLISH_CANADIAN, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_CAN),
"Select Source",
"Sources:",
"Select",
"Cancel"},
153 {TWLG_ENGLISH_IRELAND, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_EIRE),
"Select Source",
"Sources:",
"Select",
"Cancel"},
154 {TWLG_ENGLISH_NEWZEALAND, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_NZ),
"Select Source",
"Sources:",
"Select",
"Cancel"},
155 {TWLG_ENGLISH_SOUTHAFRICA,ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_SOUTH_AFRICA),
"Select Source",
"Sources:",
"Select",
"Cancel"},
156 {TWLG_ENGLISH_UK, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_UK),
"Select Source",
"Sources:",
"Select",
"Cancel"},
157 {TWLG_ENGLISH_USA, ANSI_CHARSET, MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),
"Select Source",
"Sources:",
"Select",
"Cancel"},
158 {TWLG_ESTONIAN, BALTIC_CHARSET, MAKELANGID(LANG_ESTONIAN,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x4b\x75\x73\x74\x75\x74\x61"},
159 {TWLG_FAEROESE, EASTEUROPE_CHARSET, MAKELANGID(LANG_FAEROESE,SUBLANG_NEUTRAL),
"",
"",
"",
""},
160 {TWLG_FARSI, ARABIC_CHARSET, MAKELANGID(LANG_FARSI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
161 {TWLG_FINNISH, ANSI_CHARSET, MAKELANGID(LANG_FINNISH,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x50\x65\x72\x75\x75\x74\x61"},
162 {TWLG_FRENCH, ANSI_CHARSET, MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH),
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72\x20\x73\x6f\x75\x72\x63\x65",
"\x53\x6f\x75\x72\x63\x65\x73\x3a",
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72",
"\x41\x6e\x6e\x75\x6c\x65\x72"},
163 {TWLG_FRENCH_BELGIAN, ANSI_CHARSET, MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_BELGIAN),
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72\x20\x73\x6f\x75\x72\x63\x65",
"\x53\x6f\x75\x72\x63\x65\x73\x3a",
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72",
"\x41\x6e\x6e\x75\x6c\x65\x72"},
164 {TWLG_FRENCH_CANADIAN, ANSI_CHARSET, MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_CANADIAN),
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72\x20\x73\x6f\x75\x72\x63\x65",
"\x53\x6f\x75\x72\x63\x65\x73\x3a",
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72",
"\x41\x6e\x6e\x75\x6c\x65\x72"},
165 {TWLG_FRENCH_LUXEMBOURG, ANSI_CHARSET, MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_LUXEMBOURG),
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72\x20\x73\x6f\x75\x72\x63\x65",
"\x53\x6f\x75\x72\x63\x65\x73\x3a",
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72",
"\x41\x6e\x6e\x75\x6c\x65\x72"},
166 {TWLG_FRENCH_SWISS, ANSI_CHARSET, MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_SWISS),
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72\x20\x73\x6f\x75\x72\x63\x65",
"\x53\x6f\x75\x72\x63\x65\x73\x3a",
"\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\x65\x72",
"\x41\x6e\x6e\x75\x6c\x65\x72"},
167 {TWLG_GERMAN, ANSI_CHARSET, MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN),
"\x51\x75\x65\x6c\x6c\x65\x20\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x51\x75\x65\x6c\x6c\x65\x6e\x3a",
"\x41\x75\x73\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x41\x62\x62\x72\x65\x63\x68\x65\x6e"},
168 {TWLG_GERMAN_AUSTRIAN, ANSI_CHARSET, MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_AUSTRIAN),
"\x51\x75\x65\x6c\x6c\x65\x20\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x51\x75\x65\x6c\x6c\x65\x6e\x3a",
"\x41\x75\x73\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x41\x62\x62\x72\x65\x63\x68\x65\x6e"},
169 {TWLG_GERMAN_LIECHTENSTEIN,ANSI_CHARSET, MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_LIECHTENSTEIN),
"\x51\x75\x65\x6c\x6c\x65\x20\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x51\x75\x65\x6c\x6c\x65\x6e\x3a",
"\x41\x75\x73\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x41\x62\x62\x72\x65\x63\x68\x65\x6e"},
170 {TWLG_GERMAN_LUXEMBOURG, ANSI_CHARSET, MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_LUXEMBOURG),
"\x51\x75\x65\x6c\x6c\x65\x20\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x51\x75\x65\x6c\x6c\x65\x6e\x3a",
"\x41\x75\x73\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x41\x62\x62\x72\x65\x63\x68\x65\x6e"},
171 {TWLG_GERMAN_SWISS, ANSI_CHARSET, MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_SWISS),
"\x51\x75\x65\x6c\x6c\x65\x20\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x51\x75\x65\x6c\x6c\x65\x6e\x3a",
"\x41\x75\x73\x77\xc3\xa4\x68\x6c\x65\x6e",
"\x41\x62\x62\x72\x65\x63\x68\x65\x6e"},
172 {TWLG_GREEK, GREEK_CHARSET, MAKELANGID(LANG_GREEK,SUBLANG_DEFAULT),
"",
"",
"",
""},
173 {TWLG_GUJARATI, GREEK_CHARSET, MAKELANGID(LANG_GUJARATI,SUBLANG_DEFAULT),
"",
"",
"",
""},
174 {TWLG_HARYANVI, 0, 0,
"",
"",
"",
""},
175 {TWLG_HEBREW, HEBREW_CHARSET, MAKELANGID(LANG_HEBREW,SUBLANG_NEUTRAL),
"",
"",
"",
""},
176 {TWLG_HINDI, HEBREW_CHARSET, MAKELANGID(LANG_HINDI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
177 {TWLG_HUNGARIAN, EASTEUROPE_CHARSET, MAKELANGID(LANG_HUNGARIAN,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x4d\xc3\xa9\x67\x73\x65"},
178 {TWLG_ICELANDIC, ANSI_CHARSET, MAKELANGID(LANG_ICELANDIC,SUBLANG_NEUTRAL),
"",
"",
"",
""},
179 {TWLG_INDONESIAN, ANSI_CHARSET, MAKELANGID(LANG_INDONESIAN,SUBLANG_NEUTRAL),
"\x50\x69\x6c\x69\x74\x68\x20\x53\x75\x6d\x62\x65\x72",
"\x53\x75\x6d\x62\x65\x72\x3a",
"\x50\x69\x6c\x69\x74\x68",
"\x42\x61\x74\x61\x6c"},
180 {TWLG_ITALIAN, ANSI_CHARSET, MAKELANGID(LANG_ITALIAN,SUBLANG_ITALIAN),
"\x53\x65\x6c\x65\x7a\x69\x6f\x6e\x61\x20\x6f\x72\x69\x67\x69\x6e\x65",
"\x4f\x72\x69\x67\x69\x6e\x69\x3a",
"\x53\x65\x6c\x65\x7a\x69\x6f\x6e\x61",
"\x41\x6e\x6e\x75\x6c\x6c\x61"},
181 {TWLG_ITALIAN_SWISS, ANSI_CHARSET, MAKELANGID(LANG_ITALIAN,SUBLANG_ITALIAN_SWISS),
"\x53\x65\x6c\x65\x7a\x69\x6f\x6e\x61\x20\x6f\x72\x69\x67\x69\x6e\x65",
"\x4f\x72\x69\x67\x69\x6e\x69\x3a",
"\x53\x65\x6c\x65\x7a\x69\x6f\x6e\x61",
"\x41\x6e\x6e\x75\x6c\x6c\x61"},
182 {TWLG_JAPANESE, SHIFTJIS_CHARSET, MAKELANGID(LANG_JAPANESE,SUBLANG_DEFAULT),
"\xe5\x8e\x9f\xe7\xa8\xbf\xe3\x81\xae\xe9\x81\xb8\xe6\x8a\x9e",
"\xe5\x8e\x9f\xe7\xa8\xbf\x3a",
"\xe9\x81\xb8\xe6\x8a\x9e",
"\xe3\x82\xad\xe3\x83\xa3\xe3\x83\xb3\xe3\x82\xbb\xe3\x83\xab"},
183 {TWLG_KANNADA, ANSI_CHARSET, MAKELANGID(LANG_KANNADA,SUBLANG_NEUTRAL),
"",
"",
"",
""},
184 {TWLG_KASHMIRI, ANSI_CHARSET, MAKELANGID(LANG_KASHMIRI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
185 {TWLG_KOREAN, HANGUL_CHARSET, MAKELANGID(LANG_KOREAN,SUBLANG_KOREAN),
"\xec\x9e\xa5\xec\xb9\x98\x20\xec\x84\xa0\xed\x83\x9d",
"\xec\x9e\xa5\xec\xb9\x98",
"\xec\x84\xa0\xed\x83\x9d",
"\xec\xb7\xa8\xec\x86\x8c"},
186 {TWLG_KOREAN_JOHAB, JOHAB_CHARSET, MAKELANGID(LANG_KOREAN,SUBLANG_KOREAN),
"\xec\x9e\xa5\xec\xb9\x98\x20\xec\x84\xa0\xed\x83\x9d",
"\xec\x9e\xa5\xec\xb9\x98",
"\xec\x84\xa0\xed\x83\x9d",
"\xec\xb7\xa8\xec\x86\x8c"},
187 {TWLG_LATVIAN, BALTIC_CHARSET, MAKELANGID(LANG_LATVIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
188 {TWLG_LITHUANIAN, BALTIC_CHARSET, MAKELANGID(LANG_LITHUANIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
189 {TWLG_MALAYALAM, BALTIC_CHARSET, MAKELANGID(LANG_MALAYALAM,SUBLANG_NEUTRAL),
"",
"",
"",
""},
190 {TWLG_MARATHI, ANSI_CHARSET, MAKELANGID(LANG_MARATHI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
191 {TWLG_MARWARI, 0, 0,
"",
"",
"",
""},
192 {TWLG_MEGHALAYAN, 0, 0,
"",
"",
"",
""},
193 {TWLG_MIZO, 0, 0,
"",
"",
"",
""},
194 {TWLG_NAGA, 0, 0,
"",
"",
"",
""},
195 {TWLG_NORWEGIAN, ANSI_CHARSET, MAKELANGID(LANG_NORWEGIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
196 {TWLG_NORWEGIAN_BOKMAL, ANSI_CHARSET, MAKELANGID(LANG_NORWEGIAN,SUBLANG_NORWEGIAN_BOKMAL),
"",
"",
"",
""},
197 {TWLG_NORWEGIAN_NYNORSK, ANSI_CHARSET, MAKELANGID(LANG_NORWEGIAN,SUBLANG_NORWEGIAN_NYNORSK),
"",
"",
"",
""},
198 {TWLG_ORISSI, 0, 0,
"",
"",
"",
""},
199 {TWLG_POLISH, EASTEUROPE_CHARSET, MAKELANGID(LANG_POLISH,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x41\x6e\x75\x6c\x75\x6a"},
200 {TWLG_PORTUGUESE, EASTEUROPE_CHARSET, MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE),
"\x53\x65\x6c\x65\x63\x69\x6f\x6e\x61\x72\x20\x4f\x72\x69\x67\x65\x6d",
"\x4f\x72\x69\x67\x65\x6e\x73\x3a",
"\x53\x65\x6c\x65\x63\x69\x6f\x6e\x61\x72",
"\x43\x61\x6e\x63\x65\x6c\x61\x72"},
201 {TWLG_PORTUGUESE_BRAZIL, ANSI_CHARSET, MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN),
"\x53\x65\x6c\x65\x63\x69\x6f\x6e\x61\x72\x20\x4f\x72\x69\x67\x65\x6d",
"\x4f\x72\x69\x67\x65\x6e\x73\x3a",
"\x53\x65\x6c\x65\x63\x69\x6f\x6e\x61\x72",
"\x43\x61\x6e\x63\x65\x6c\x61\x72"},
202 {TWLG_PUNJABI, ANSI_CHARSET, MAKELANGID(LANG_PUNJABI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
203 {TWLG_PUSHTU, 0, 0,
"",
"",
"",
""},
204 {TWLG_ROMANIAN, EASTEUROPE_CHARSET, MAKELANGID(LANG_ROMANIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
205 {TWLG_RUSSIAN, RUSSIAN_CHARSET, MAKELANGID(LANG_RUSSIAN,SUBLANG_DEFAULT),
"\xd0\x92\xd1\x8b\xd0\xb1\xd1\x80\xd0\xb0\xd1\x82\xd1\x8c\x20\xd0\xb8\xd1\x81\xd1\x82\xd0\xbe\xd1\x87\xd0\xbd\xd0\xb8\xd0\xba",
"\xd0\x98\xd1\x81\xd1\x82\xd0\xbe\xd1\x87\xd0\xbd\xd0\xb8\xd0\xba\xd0\xb8\x3a",
"\xd0\x92\xd1\x8b\xd0\xb1\xd1\x80\xd0\xb0\xd1\x82\xd1\x8c",
"\xd0\x9e\xd1\x82\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x82\xd1\x8c"},
206 {TWLG_SERBIAN_CYRILLIC, ANSI_CHARSET, MAKELANGID(LANG_SERBIAN,SUBLANG_SERBIAN_CYRILLIC),
"",
"",
"",
""},
207 {TWLG_SERBIAN_LATIN, EASTEUROPE_CHARSET, MAKELANGID(LANG_SERBIAN,SUBLANG_SERBIAN_LATIN),
"",
"",
"",
""},
208 {TWLG_SIKKIMI, 0, 0,
"",
"",
"",
""},
209 {TWLG_SLOVAK, EASTEUROPE_CHARSET, MAKELANGID(LANG_SLOVAK,SUBLANG_NEUTRAL),
"",
"",
"",
""},
210 {TWLG_SLOVENIAN, EASTEUROPE_CHARSET, MAKELANGID(LANG_SLOVENIAN,SUBLANG_NEUTRAL),
"Select Source",
"Sources:",
"Select",
"\x50\x72\x65\x6b\x69\x6e\x69"},
211 {TWLG_SPANISH, ANSI_CHARSET, MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH),
"\x53\x65\x6c\x65\x63\x63\x69\xc3\xb3\x6e\x20\x64\x65\x20\x66\x75\x65\x6e\x74\x65",
"\x46\x75\x65\x6e\x74\x65\x73\x3a",
"\x53\x65\x6c\x65\x63\x63\x69\x6f\x6e\x61\x72",
"\x43\x61\x6e\x63\x65\x6c\x61\x72"},
212 {TWLG_SPANISH_MEXICAN, ANSI_CHARSET, MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MEXICAN),
"\x53\x65\x6c\x65\x63\x63\x69\xc3\xb3\x6e\x20\x64\x65\x20\x66\x75\x65\x6e\x74\x65",
"\x46\x75\x65\x6e\x74\x65\x73\x3a",
"\x53\x65\x6c\x65\x63\x63\x69\x6f\x6e\x61\x72",
"\x43\x61\x6e\x63\x65\x6c\x61\x72"},
213 {TWLG_SPANISH_MODERN, ANSI_CHARSET, MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MODERN),
"\x53\x65\x6c\x65\x63\x63\x69\xc3\xb3\x6e\x20\x64\x65\x20\x66\x75\x65\x6e\x74\x65",
"\x46\x75\x65\x6e\x74\x65\x73\x3a",
"\x53\x65\x6c\x65\x63\x63\x69\x6f\x6e\x61\x72",
"\x43\x61\x6e\x63\x65\x6c\x61\x72"},
214 {TWLG_SWEDISH, ANSI_CHARSET, MAKELANGID(LANG_SWEDISH,SUBLANG_SWEDISH),
"Select Source",
"Sources:",
"Select",
"\x41\x76\x62\x72\x79\x74"},
215 {TWLG_SWEDISH_FINLAND, ANSI_CHARSET, MAKELANGID(LANG_SWEDISH,SUBLANG_SWEDISH_FINLAND),
"Select Source",
"Sources:",
"Select",
"\x41\x76\x62\x72\x79\x74"},
216 {TWLG_TAMIL, ANSI_CHARSET, MAKELANGID(LANG_TAMIL,SUBLANG_NEUTRAL),
"",
"",
"",
""},
217 {TWLG_TELUGU, ANSI_CHARSET, MAKELANGID(LANG_TELUGU,SUBLANG_NEUTRAL),
"",
"",
"",
""},
218 {TWLG_THAI, THAI_CHARSET, MAKELANGID(LANG_THAI,SUBLANG_NEUTRAL),
"",
"",
"",
""},
219 {TWLG_TRIPURI, 0, 0,
"",
"",
"",
""},
220 {TWLG_TURKISH, TURKISH_CHARSET, MAKELANGID(LANG_TURKISH,SUBLANG_DEFAULT),
"\x4b\x61\x79\x6e\x61\x6b\x20\x73\x65\xc3\xa7\x69\x6e\x69\x7a",
"\x4b\x61\x79\x6e\x61\x6b",
"\x53\x65\xc3\xa7\x69\x6e\x69\x7a",
"\xc4\xb0\x70\x74\x61\x6c"},
221 {TWLG_UKRANIAN, RUSSIAN_CHARSET, MAKELANGID(LANG_UKRAINIAN,SUBLANG_NEUTRAL),
"",
"",
"",
""},
222 {TWLG_URDU, ANSI_CHARSET, MAKELANGID(LANG_URDU,SUBLANG_NEUTRAL),
"",
"",
"",
""},
223 {TWLG_VIETNAMESE, VIETNAMESE_CHARSET, MAKELANGID(LANG_VIETNAMESE,SUBLANG_NEUTRAL),
"",
"",
"",
""},
224 {-1, 0, 0, 0, 0, 0, 0}
226 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
229 #error Sorry, we do not recognize this system...
231 #if (TWNDSM_OS == TWNDSM_OS_MACOSX)
232 #pragma clang diagnostic pop
236 #define TWNDSM_DS_REG_LOC "Software\\Microsoft\\Windows NT\\CurrentVersion\\TWAIN64"
238 #define TWNDSM_DS_REG_LOC "Software\\Microsoft\\Windows NT\\CurrentVersion\\TWAIN"
253 static TW_HANDLE PASCAL DSM_MemAllocate(TW_UINT32 _size);
259 static void PASCAL DSM_MemFree(TW_HANDLE _handle);
266 static TW_MEMREF PASCAL DSM_MemLock(TW_HANDLE _handle);
272 static void PASCAL DSM_MemUnlock(TW_HANDLE _handle);
332 if ( (_MSG == MSG_OPENDSM)
333 && (_DAT == DAT_PARENT)
334 && (_DG == DG_CONTROL)
340 kPANIC(
"Failed to new CTwnDsm!!!");
350 if ( ( (_MSG == MSG_GET) || (_MSG == MSG_CHECKSTATUS) )
351 && (_DAT == DAT_STATUS)
352 && (_DG == DG_CONTROL)
356 ((
TW_STATUS*)_pData)->ConditionCode = TWCC_BUMMER;
357 return (TWRC_SUCCESS);
362 return (TWRC_FAILURE);
374 if ( (TWRC_SUCCESS == rcDSM)
375 && (_MSG == MSG_CLOSEDSM)
376 && (_DAT == DAT_PARENT)
377 && (_DG == DG_CONTROL)
398 memset(&
pod,0,
sizeof(
pod));
404 kPANIC(
"Failed to new CTwnDsmLog!!!");
409 kLOG((
kLOGINFO,
"************************************************"));
418 kPANIC(
"Failed to new CTwnDsmApps!!!");
438 memset(&
pod,0,
sizeof(
pod));
454 TW_UINT16 rcDSM = TWRC_SUCCESS;
463 if ( (_DAT == DAT_NULL )
464 || (_DAT == DAT_CALLBACK && _MSG == MSG_INVOKE_CALLBACK ) )
476 if ( (DAT_EVENT == _DAT)
477 && (MSG_PROCESSEVENT == _MSG))
484 rcDSM = TWRC_FAILURE;
489 ((
TW_EVENT*)(_pData))->TWMessage = ptwcallback2->Message;
494 kLOG((
kLOGINFO,
"%.32s retrieving DAT_EVENT / %s\n", pAppId->ProductName, szMsg));
496 ptwcallback2->Message = 0;
498 rcDSM = TWRC_DSEVENT;
504 if( TWRC_SUCCESS == rcDSM )
513 if ((pDSId == 0) || (_MSG == MSG_CLOSEDS))
529 rcDSM = TWRC_FAILURE;
545 if(((((pAppId->ProtocolMajor*10) + (pAppId->ProtocolMinor)) <= 201) ||
547 ((((pAppId->ProtocolMajor*10) + (pAppId->ProtocolMinor)) <= 202) ||
565 rcDSM = TWRC_FAILURE;
567 kLOG((
kLOGERR,
"Exception caught while DS was processing message. Returning Failure."));
573 if( _DAT == DAT_EVENT && _MSG == MSG_PROCESSEVENT)
575 kLOG((
kLOGINFO,
"Nested DAT_EVENT / MSG_PROCESSEVENT Ignored"));
576 rcDSM = TWRC_NOTDSEVENT;
577 ((
TW_EVENT*)(_pData))->TWMessage = MSG_NULL;
581 kLOG((
kLOGERR,
"Nested calls back to the DS. Returning Failure."));
583 rcDSM = TWRC_FAILURE;
591 kLOG((
kLOGERR,
"Unable to find driver, check your AppId and DsId values..."));
593 kLOG((
kLOGERR,
"DS_Entry is null...%ld",(TWID_T)pAppId->Id));
594 rcDSM = TWRC_FAILURE;
601 rcDSM = TWRC_FAILURE;
609 case DAT_TWUNKIDENTITY:
618 if( _MSG == MSG_CHECKSTATUS )
621 kLOG((
kLOGINFO,
"MSG_CHECKSTATUS is Depreciated using MSG_GET"));
666 rcDSM =
DSM_Null(pAppId,pDSId,_MSG);
700 TW_INT16 result = TWRC_SUCCESS;
705 case MSG_CHECKSTATUS:
707 _pStatus->Reserved = 0;
711 result = TWRC_FAILURE;
741 result = TWRC_SUCCESS;
757 result = TWRC_FAILURE;
787 result = TWRC_SUCCESS;
795 result =
OpenDS(_pAppId,_pDsId);
799 result =
CloseDS(_pAppId,_pDsId);
823 result = TWRC_FAILURE;
830 result = TWRC_FAILURE;
847 TW_INT16 result = TWRC_SUCCESS;
861 else if (MSG_GET != _MSG)
867 else if (0 == _pTwunkId)
904 else if (MSG_GET != _MSG)
910 else if (0 == _pEntrypoint)
916 else if (0 == _pEntrypoint->Size)
918 kLOG((
kLOGERR,
"_pEntrypoint is zero, it needs to be set to the size of TW_ENTRYPOINT..."));
922 else if (!(_pAppId->SupportedGroups & DF_APP2))
924 kLOG((
kLOGERR,
"_pAppId->SupportedGroups must include the DF_APP2 flag to make this call..."));
944 _pEntrypoint->DSM_MemAllocate = DSM_MemAllocate;
945 _pEntrypoint->DSM_MemFree = DSM_MemFree;
946 _pEntrypoint->DSM_MemLock = DSM_MemLock;
947 _pEntrypoint->DSM_MemUnlock = DSM_MemUnlock;
953 kLOG((
kLOGERR,
"_pEntrypoint->Size cannot be larger than %ld, we got %ld...",
sizeof(
TW_ENTRYPOINT),_pEntrypoint->Size));
983 result = TWRC_SUCCESS;
988 case MSG_REGISTER_CALLBACK:
1001 return TWRC_FAILURE;
1005 ptwcallback2->CallBackProc = ((
TW_CALLBACK*)_pData)->CallBackProc;
1006 ptwcallback2->RefCon = (TWID_T)((
TW_CALLBACK*)_pData)->RefCon;
1007 ptwcallback2->Message = ((
TW_CALLBACK*)_pData)->Message;
1012 case MSG_INVOKE_CALLBACK:
1017 kLOG((
kLOGINFO,
"MSG_INVOKE_CALLBACK is deprecated - use DAT_NULL"));
1021 return TWRC_FAILURE;
1027 return TWRC_FAILURE;
1031 result =
DSM_Null(_pDest,_pOrigin,ptwcallback->Message);
1036 result = TWRC_FAILURE;
1064 result = TWRC_SUCCESS;
1069 case MSG_REGISTER_CALLBACK:
1076 return TWRC_FAILURE;
1082 return TWRC_FAILURE;
1086 memcpy(ptwcallback2,_pData,
sizeof(*ptwcallback2));
1091 case MSG_INVOKE_CALLBACK:
1096 kLOG((
kLOGINFO,
"MSG_INVOKE_CALLBACK is deprecated - use DAT_NULL"));
1100 return TWRC_FAILURE;
1106 return TWRC_FAILURE;
1110 result =
DSM_Null(_pDest,_pOrigin,ptwcallback2->Message);
1115 result = TWRC_FAILURE;
1145 return TWRC_FAILURE;
1147 else if ( ((TWID_T)_pAppId->Id < 1)
1150 kLOG((
kLOGERR,
"id is out of range...%d",(
int)(TWID_T)_pAppId->Id));
1152 return TWRC_FAILURE;
1156 result = TWRC_SUCCESS;
1161 kLOG((
kLOGERR,
"DSM must be open before opening DS"));
1163 return(TWRC_FAILURE);
1171 return TWRC_FAILURE;
1175 if (0 == (TWID_T)_pDsId->Id)
1178 if (0 != _pDsId->ProductName[0])
1185 if (TWRC_SUCCESS != result)
1194 if (0 == _pDsId->ProductName[0])
1201 if (TWRC_SUCCESS != result)
1210 if (result != TWRC_SUCCESS)
1213 return TWRC_FAILURE;
1221 result = TWRC_SUCCESS;
1226 if (_pDsId->SupportedGroups & DF_DS2)
1228 memset(&twentrypoint,0,
sizeof(twentrypoint));
1231 twentrypoint.DSM_MemAllocate = DSM_MemAllocate;
1232 twentrypoint.DSM_MemFree = DSM_MemFree;
1233 twentrypoint.DSM_MemLock = DSM_MemLock;
1234 twentrypoint.DSM_MemUnlock = DSM_MemUnlock;
1240 (TW_MEMREF)&twentrypoint);
1244 if (TWRC_SUCCESS != result)
1262 if (TWRC_SUCCESS != result)
1265 TW_UINT16 rcDSMStatus;
1274 (TW_MEMREF)&twstatus);
1275 if (rcDSMStatus == TWRC_SUCCESS)
1288 if (TWRC_SUCCESS == result)
1292 if( ( _pAppId->ProtocolMajor == 2
1293 && _pAppId->ProtocolMinor == 0 )
1294 || _pAppId->ProtocolMajor < 2 )
1296 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
1298 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
1302 char szFile[FILENAME_MAX];
1303 szHome = getenv(
"HOME");
1306 SSTRCPY(szFile,
sizeof(szFile),szHome);
1307 SSTRCAT(szFile,
sizeof(szFile),
"/.twndsmrc");
1309 SSTRCAT(szFile,
sizeof(szFile),
"/defaultds");
1310 FOPEN(pfile,szFile,
"w");
1328 #error Sorry, we do not recognize this system...
1358 return TWRC_FAILURE;
1360 else if ( ((TWID_T)_pAppId->Id < 1)
1363 kLOG((
kLOGERR,
"id out of range...%d",(
int)(TWID_T)_pAppId->Id));
1365 return TWRC_FAILURE;
1369 result = TWRC_SUCCESS;
1375 return TWRC_FAILURE;
1383 return TWRC_FAILURE;
1399 if (TWRC_SUCCESS != result)
1415 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
1426 DWORD _dwReasonCalled,
1429 switch (_dwReasonCalled)
1431 case DLL_THREAD_ATTACH:
1432 case DLL_THREAD_DETACH:
1434 case DLL_PROCESS_ATTACH:
1437 case DLL_PROCESS_DETACH:
1444 kLOG((
kLOGERR,
"The DSM was left in an open state when it was unloaded!"));
1453 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
1456 #error Sorry, we do not recognize this system...
1461 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
1486 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
1489 #error Sorry, we do not recognize this system...
1494 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
1511 ::SendMessage(hwnd,WM_SETFONT,(WPARAM)lParam,(LPARAM)TRUE);
1526 char *szProductName;
1532 wchar_t uzUnicode[128];
1549 if (pAppId->Version.Language == (TW_UINT16)TWLG_USERLOCALE)
1552 LangId = ::GetUserDefaultLangID();
1604 if ( (
s_twlocalize[nIndex].Language == pAppId->Version.Language)
1647 memset(&lf,0,
sizeof(lf));
1650 hfont = CreateFontIndirect(&lf);
1653 MultiByteToWideChar(CP_UTF8,0,
s_twlocalize[nIndex].Title,-1,uzUnicode,
sizeof(uzUnicode)/
sizeof(*uzUnicode));
1654 SetWindowTextW(hWnd,uzUnicode);
1656 MultiByteToWideChar(CP_UTF8,0,
s_twlocalize[nIndex].Sources,-1,uzUnicode,
sizeof(uzUnicode)/
sizeof(*uzUnicode));
1657 SetWindowTextW(::GetDlgItem(hWnd,IDC_STATIC),uzUnicode);
1659 MultiByteToWideChar(CP_UTF8,0,
s_twlocalize[nIndex].Select,-1,uzUnicode,
sizeof(uzUnicode)/
sizeof(*uzUnicode));
1660 SetWindowTextW(::GetDlgItem(hWnd,IDOK),uzUnicode);
1662 MultiByteToWideChar(CP_UTF8,0,
s_twlocalize[nIndex].Cancel,-1,uzUnicode,
sizeof(uzUnicode)/
sizeof(*uzUnicode));
1663 SetWindowTextW(::GetDlgItem(hWnd,IDCANCEL),uzUnicode);
1666 hListBox = ::GetDlgItem(hWnd,ID_LST_SOURCES);
1669 SendMessage(hListBox,LB_RESETCONTENT,(WPARAM)NULL,(LPARAM)NULL);
1675 if (!szProductName[0])
1680 nIndex = (int)SendMessage(hListBox,LB_ADDSTRING,(WPARAM)NULL,(LPARAM)szProductName);
1681 if (LB_ERR == nIndex)
1686 nIndex = (int)SendMessage(hListBox,
1690 if (LB_ERR == nIndex)
1703 HWND hOK= ::GetDlgItem(hWnd,IDOK);
1704 EnableWindow(hOK, FALSE);
1709 nIndex = (int)SendMessage(hListBox,
1713 if (LB_ERR == nIndex)
1717 SendMessage(hListBox,LB_SETCURSEL,(WPARAM)nIndex,(LPARAM)NULL);
1725 GetClientRect(hParent,&rectParent);
1726 GetWindowRect(hWnd,&rectSelect);
1727 nWidth = (rectSelect.right - rectSelect.left);
1728 nHeight = (rectSelect.bottom - rectSelect.top);
1729 point.x = (rectParent.right - rectParent.left) / 2;
1730 point.y = (rectParent.bottom - rectParent.top) / 2;
1731 ClientToScreen(hParent,&point);
1732 point.x -= nWidth / 2;
1733 point.y -= nHeight / 2;
1743 MoveWindow(hWnd,point.x,point.y,nWidth,nHeight,FALSE);
1749 switch (LOWORD(wParam))
1751 case ID_LST_SOURCES:
1752 if (HIWORD(wParam) != LBN_DBLCLK)
1758 hListBox = ::GetDlgItem(hWnd, ID_LST_SOURCES);
1762 nIndex = (int)SendMessage(hListBox,LB_GETCURSEL,(WPARAM)0,(LPARAM)0);
1763 if (LB_ERR == nIndex)
1769 nIndex = (int)SendMessage(hListBox,LB_GETITEMDATA,(WPARAM)nIndex,(LPARAM)0);
1770 if (LB_ERR != nIndex)
1775 EndDialog(hWnd, IDOK);
1779 EndDialog(hWnd, IDCANCEL);
1786 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
1789 #error Sorry, we do not recognize this system...
1808 return TWRC_FAILURE;
1810 if ( ((TWID_T)_pAppId->Id < 1)
1815 return TWRC_FAILURE;
1817 else if (0 == _pDsId)
1820 return TWRC_FAILURE;
1825 return TWRC_FAILURE;
1835 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
1843 result = TWRC_SUCCESS;
1847 if (_pDsId->ProductName[0] != 0)
1864 (LPCWSTR)IDD_DLG_SOURCE,
1874 kLOG((
kLOGERR,
"We came out of the Select Dialog with a null..."));
1876 return TWRC_FAILURE;
1896 status = ERROR_SUCCESS;
1900 if (RegCreateKeyEx(HKEY_CURRENT_USER,
1905 KEY_READ | KEY_WRITE, NULL,
1907 NULL) == ERROR_SUCCESS)
1909 status = RegSetValueEx(hKey,
"Default Source",0,REG_SZ,(LPBYTE)szPath,(DWORD)strlen((
char*)szPath)+1);
1910 if (status != ERROR_SUCCESS)
1913 kLOG((
kLOGERR,
"Failed to save default DS to registry"));
1924 else if (ret == IDCANCEL)
1926 result = TWRC_CANCEL;
1932 ::MessageBox(NULL,
"Dialog failed!",
"Error",MB_OK|MB_ICONINFORMATION);
1934 result = TWRC_FAILURE;
1940 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
1943 return TWRC_FAILURE;
1947 #error Sorry, we do not recognize this system...
1958 TW_INT16 result = TWRC_SUCCESS;
1965 return TWRC_FAILURE;
1967 else if ( (TWID_T)_pAppId->Id < 1
1970 kLOG((
kLOGERR,
"_pAppId.Id is out of range...%d",(
int)(TWID_T)_pAppId->Id));
1972 return TWRC_FAILURE;
1977 return TWRC_FAILURE;
1985 return TWRC_FAILURE;
1987 else if ((TWID_T)_pDsId->Id < 1
1992 return TWRC_FAILURE;
2001 return TWRC_FAILURE;
2005 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
2007 long status = ERROR_SUCCESS;
2010 if (RegCreateKeyEx(HKEY_CURRENT_USER,
2015 KEY_READ | KEY_WRITE, NULL,
2017 NULL) == ERROR_SUCCESS)
2019 status = RegSetValueEx(hKey,
"Default Source",0,REG_SZ,(LPBYTE)szPath,(DWORD)strlen((
char*)szPath)+1);
2020 if (status != ERROR_SUCCESS)
2023 kLOG((
kLOGERR,
"Failed to save default DS to registry"));
2026 result = TWRC_FAILURE;
2034 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
2038 char szFile[FILENAME_MAX];
2039 szHome = getenv(
"HOME");
2042 SSTRCPY(szFile,
sizeof(szFile),szHome);
2043 SSTRCAT(szFile,
sizeof(szFile),
"/.twndsmrc/defaultds");
2044 FOPEN(pfile,szFile,
"w");
2047 iResult = fwrite(szPath, 1, strlen(szPath), pfile);
2058 #error Sorry, we do not recognize this system...
2059 result = TWRC_FAILURE
2082 return TWRC_FAILURE;
2084 else if (0 == _pDsId->ProductName[0])
2086 return TWRC_FAILURE;
2093 if (0 == strncmp((
char*)_pDsId->ProductName,
2099 return TWRC_SUCCESS;
2104 return TWRC_FAILURE;
2121 return TWRC_FAILURE;
2132 return TWRC_ENDOFLIST;
2140 return TWRC_FAILURE;
2149 return TWRC_SUCCESS;
2167 return TWRC_FAILURE;
2174 return TWRC_FAILURE;
2184 return TWRC_ENDOFLIST;
2191 return TWRC_SUCCESS;
2202 bool bMatchFnd =
false;
2203 bool bDefaultFound =
false;
2212 return TWRC_FAILURE;
2219 return TWRC_FAILURE;
2224 if (0 != (TWID_T)_pDsId->Id)
2226 kLOG((
kLOGINFO,
"Please make sure your TW_IDENTITY.Id for your driver (the destination) is zeroed out before making this call..."));
2237 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
2239 if (RegOpenKeyEx(HKEY_CURRENT_USER,
2243 &hKey) == ERROR_SUCCESS )
2246 DWORD DWtype = REG_SZ;
2248 bDefaultFound = ( RegQueryValueEx(hKey,
"Default Source",NULL,&DWtype,(LPBYTE)
pod.
m_DefaultDSPath,&DWsize) == ERROR_SUCCESS);
2255 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
2259 char szFile[FILENAME_MAX];
2261 szHome = getenv(
"HOME");
2264 SSTRCPY(szFile,
sizeof(szFile),szHome);
2265 SSTRCAT(szFile,
sizeof(szFile),
"/.twndsmrc/defaultds");
2266 FOPEN(pfile,szFile,
"r");
2272 kLOG((
kLOGINFO,
"The defaultds file is empty, this is okay..."));
2275 bDefaultFound =
true;
2282 #error Sorry, we do not recognize this system...
2318 return TWRC_FAILURE;
2321 return TWRC_SUCCESS;
2330 const TW_UINT32 _DG,
2331 const TW_UINT16 _DAT,
2332 const TW_UINT16 _MSG,
2333 const TW_MEMREF _pData)
2348 if ( (DG_CONTROL == _DG)
2349 && (DAT_EVENT == _DAT))
2359 memset(szData, 0,
sizeof(szData));
2365 if ( (DG_CONTROL == _DG)
2366 && (DAT_CAPABILITY == _DAT) )
2372 if( MSG_SET == _MSG )
2382 kLOG((
kLOGINFO,
"%.32s -> %.32s",_pOrigin? (
char*)_pOrigin->ProductName:
"DSM", _pDest? (
char*)_pDest->ProductName:
"DSM"));
2387 kLOG((
kLOGINFO,
"%s/%s/%s/%s",szDg,szDat,szMsg,szData));
2403 const TW_UINT16 _DAT,
2404 const TW_UINT16 _MSG,
2405 const TW_MEMREF _pData,
2406 const TW_UINT16 _RC)
2413 if( NULL != _pData && TWRC_FAILURE != _RC)
2415 if( DG_CONTROL == _DG
2416 && DAT_CAPABILITY == _DAT
2417 && ( MSG_GET == _MSG || MSG_GETCURRENT == _MSG || MSG_GETDEFAULT == _MSG || MSG_RESET == _MSG ) )
2424 else if( DG_CONTROL == _DG
2425 && DAT_PENDINGXFERS == _DAT )
2429 SSNPRINTF(szValue,
NCHARS(szValue),
NCHARS(szValue),
" Count = %d", pXfer->Count==0xFFFF?-1:pXfer->Count);
2432 else if( DG_CONTROL == _DG
2433 && DAT_STATUS == _DAT )
2458 TW_INT16 result = TWRC_SUCCESS;
2460 bool bPrinted =
false;
2466 return TWRC_FAILURE;
2470 if ( (MSG_DEVICEEVENT != _MSG)
2471 && (MSG_CLOSEDSOK != _MSG)
2472 && (MSG_CLOSEDSREQ != _MSG)
2473 && (MSG_XFERREADY != _MSG))
2476 return TWRC_FAILURE;
2483 if ( (0 != ptwcallback2)
2484 && (ptwcallback2->CallBackProc))
2490 MemRef = (TW_MEMREF)ptwcallback2->RefCon;
2508 result = ((DSMENTRYPROC)(ptwcallback2->CallBackProc))(
2519 kLOG((
kLOGERR,
"Exception caught while App was processing message. Returning Failure."));
2520 result = TWRC_FAILURE;
2534 if (ptwcallback2->Message != 0)
2538 kLOG((
kLOGERR,
"%.32s NEVER retrieved DAT_EVENT / %s\n", _pAppId->ProductName, szMsg));
2540 ptwcallback2->Message = _MSG;
2562 const TW_UINT32 _DG)
2567 SSNPRINTF(_szDg,_nChars,_nChars,
"DG_0x%04lx",_DG);
2571 SSTRCPY(_szDg,_nChars,
"DG_CONTROL");
2575 SSTRCPY(_szDg,_nChars,
"DG_IMAGE");
2579 SSTRCPY(_szDg,_nChars,
"DG_AUDIO");
2591 const TW_UINT16 _DAT)
2596 SSNPRINTF(_szDat,_nChars,_nChars,
"DAT_0x%04x",_DAT);
2599 SSTRCPY(_szDat,_nChars,
"DAT_NULL");
2602 case DAT_CUSTOMBASE:
2603 SSTRCPY(_szDat,_nChars,
"DAT_CUSTOMBASE");
2606 case DAT_CAPABILITY:
2607 SSTRCPY(_szDat,_nChars,
"DAT_CAPABILITY");
2611 SSTRCPY(_szDat,_nChars,
"DAT_EVENT");
2615 SSTRCPY(_szDat,_nChars,
"DAT_IDENTITY");
2619 SSTRCPY(_szDat,_nChars,
"DAT_PARENT");
2622 case DAT_PENDINGXFERS:
2623 SSTRCPY(_szDat,_nChars,
"DAT_PENDINGXFERS");
2626 case DAT_SETUPMEMXFER:
2627 SSTRCPY(_szDat,_nChars,
"DAT_SETUPMEMXFER");
2630 case DAT_SETUPFILEXFER:
2631 SSTRCPY(_szDat,_nChars,
"DAT_SETUPFILEXFER");
2635 SSTRCPY(_szDat,_nChars,
"DAT_STATUS");
2638 case DAT_USERINTERFACE:
2639 SSTRCPY(_szDat,_nChars,
"DAT_USERINTERFACE");
2643 SSTRCPY(_szDat,_nChars,
"DAT_XFERGROUP");
2646 case DAT_TWUNKIDENTITY:
2647 SSTRCPY(_szDat,_nChars,
"DAT_TWUNKIDENTITY");
2650 case DAT_CUSTOMDSDATA:
2651 SSTRCPY(_szDat,_nChars,
"DAT_CUSTOMDSDATA");
2654 case DAT_DEVICEEVENT:
2655 SSTRCPY(_szDat,_nChars,
"DAT_DEVICEEVENT");
2658 case DAT_FILESYSTEM:
2659 SSTRCPY(_szDat,_nChars,
"DAT_FILESYSTEM");
2663 SSTRCPY(_szDat,_nChars,
"DAT_PASSTHRU");
2667 SSTRCPY(_szDat,_nChars,
"DAT_CALLBACK");
2670 case DAT_STATUSUTF8:
2671 SSTRCPY(_szDat,_nChars,
"DAT_STATUSUTF8");
2675 SSTRCPY(_szDat,_nChars,
"DAT_IMAGEINFO");
2678 case DAT_IMAGELAYOUT:
2679 SSTRCPY(_szDat,_nChars,
"DAT_IMAGELAYOUT");
2682 case DAT_IMAGEMEMXFER:
2683 SSTRCPY(_szDat,_nChars,
"DAT_IMAGEMEMXFER");
2686 case DAT_IMAGENATIVEXFER:
2687 SSTRCPY(_szDat,_nChars,
"DAT_IMAGENATIVEXFER");
2690 case DAT_IMAGEFILEXFER:
2691 SSTRCPY(_szDat,_nChars,
"DAT_IMAGEFILEXFER");
2695 SSTRCPY(_szDat,_nChars,
"DAT_CIECOLOR");
2698 case DAT_GRAYRESPONSE:
2699 SSTRCPY(_szDat,_nChars,
"DAT_GRAYRESPONSE");
2702 case DAT_RGBRESPONSE:
2703 SSTRCPY(_szDat,_nChars,
"DAT_RGBRESPONSE");
2706 case DAT_JPEGCOMPRESSION:
2707 SSTRCPY(_szDat,_nChars,
"DAT_JPEGCOMPRESSION");
2711 SSTRCPY(_szDat,_nChars,
"DAT_PALETTE8");
2714 case DAT_EXTIMAGEINFO:
2715 SSTRCPY(_szDat,_nChars,
"DAT_EXTIMAGEINFO");
2718 case DAT_AUDIOFILEXFER:
2719 SSTRCPY(_szDat,_nChars,
"DAT_AUDIOFILEXFER");
2723 SSTRCPY(_szDat,_nChars,
"DAT_AUDIOINFO");
2726 case DAT_AUDIONATIVEXFER:
2727 SSTRCPY(_szDat,_nChars,
"DAT_AUDIONATIVEXFER");
2730 case DAT_ICCPROFILE:
2731 SSTRCPY(_szDat,_nChars,
"DAT_ICCPROFILE");
2734 case DAT_IMAGEMEMFILEXFER:
2735 SSTRCPY(_szDat,_nChars,
"DAT_IMAGEMEMFILEXFER");
2738 case DAT_ENTRYPOINT:
2739 SSTRCPY(_szDat,_nChars,
"DAT_ENTRYPOINT");
2751 const TW_UINT16 _MSG)
2756 SSNPRINTF(_szMsg,_nChars,_nChars,
"MSG_0x%04x",_MSG);
2760 SSTRCPY(_szMsg,_nChars,
"MSG_NULL");
2763 case MSG_CUSTOMBASE:
2764 SSTRCPY(_szMsg,_nChars,
"MSG_CUSTOMBASE");
2768 SSTRCPY(_szMsg,_nChars,
"MSG_GET");
2771 case MSG_GETCURRENT:
2772 SSTRCPY(_szMsg,_nChars,
"MSG_GETCURRENT");
2775 case MSG_GETDEFAULT:
2776 SSTRCPY(_szMsg,_nChars,
"MSG_GETDEFAULT");
2780 SSTRCPY(_szMsg,_nChars,
"MSG_GETFIRST");
2784 SSTRCPY(_szMsg,_nChars,
"MSG_GETNEXT");
2788 SSTRCPY(_szMsg,_nChars,
"MSG_SET");
2792 SSTRCPY(_szMsg,_nChars,
"MSG_RESET");
2795 case MSG_QUERYSUPPORT:
2796 SSTRCPY(_szMsg,_nChars,
"MSG_QUERYSUPPORT");
2800 SSTRCPY(_szMsg,_nChars,
"MSG_GETHELP");
2804 SSTRCPY(_szMsg,_nChars,
"MSG_GETLABEL");
2807 case MSG_GETLABELENUM:
2808 SSTRCPY(_szMsg,_nChars,
"MSG_GETLABELENUM");
2812 SSTRCPY(_szMsg,_nChars,
"MSG_XFERREADY");
2815 case MSG_CLOSEDSREQ:
2816 SSTRCPY(_szMsg,_nChars,
"MSG_CLOSEDSREQ");
2820 SSTRCPY(_szMsg,_nChars,
"MSG_CLOSEDSOK");
2823 case MSG_DEVICEEVENT:
2824 SSTRCPY(_szMsg,_nChars,
"MSG_DEVICEEVENT");
2826 case MSG_CHECKSTATUS:
2827 SSTRCPY(_szMsg,_nChars,
"MSG_CHECKSTATUS");
2830 SSTRCPY(_szMsg,_nChars,
"MSG_OPENDSM");
2834 SSTRCPY(_szMsg,_nChars,
"MSG_CLOSEDSM");
2838 SSTRCPY(_szMsg,_nChars,
"MSG_OPENDS");
2842 SSTRCPY(_szMsg,_nChars,
"MSG_CLOSEDS");
2845 case MSG_USERSELECT:
2846 SSTRCPY(_szMsg,_nChars,
"MSG_USERSELECT");
2850 SSTRCPY(_szMsg,_nChars,
"MSG_DISABLEDS");
2854 SSTRCPY(_szMsg,_nChars,
"MSG_ENABLEDS");
2857 case MSG_ENABLEDSUIONLY:
2858 SSTRCPY(_szMsg,_nChars,
"MSG_ENABLEDSUIONLY");
2861 case MSG_PROCESSEVENT:
2862 SSTRCPY(_szMsg,_nChars,
"MSG_PROCESSEVENT");
2866 SSTRCPY(_szMsg,_nChars,
"MSG_ENDXFER");
2869 case MSG_CHANGEDIRECTORY:
2870 SSTRCPY(_szMsg,_nChars,
"MSG_CHANGEDIRECTORY");
2873 case MSG_CREATEDIRECTORY:
2874 SSTRCPY(_szMsg,_nChars,
"MSG_CREATEDIRECTORY");
2878 SSTRCPY(_szMsg,_nChars,
"MSG_DELETE");
2881 case MSG_FORMATMEDIA:
2882 SSTRCPY(_szMsg,_nChars,
"MSG_FORMATMEDIA");
2886 SSTRCPY(_szMsg,_nChars,
"MSG_GETCLOSE");
2889 case MSG_GETFIRSTFILE:
2890 SSTRCPY(_szMsg,_nChars,
"MSG_GETFIRSTFILE");
2894 SSTRCPY(_szMsg,_nChars,
"MSG_GETINFO");
2897 case MSG_GETNEXTFILE:
2898 SSTRCPY(_szMsg,_nChars,
"MSG_GETNEXTFILE");
2902 SSTRCPY(_szMsg,_nChars,
"MSG_RENAME");
2906 SSTRCPY(_szMsg,_nChars,
"MSG_PASSTHRU");
2909 case MSG_REGISTER_CALLBACK:
2910 SSTRCPY(_szMsg,_nChars,
"MSG_REGISTER_CALLBACK");
2914 SSTRCPY(_szMsg,_nChars,
"MSG_RESETALL");
2926 const TW_UINT16 _Cap)
2931 SSNPRINTF(_szCap,_nChars,_nChars,
"CAP_0x%04x",_Cap);
2934 case CAP_CUSTOMBASE:
2935 SSTRCPY(_szCap,_nChars,
"CAP_CUSTOMBASE");
2939 SSTRCPY(_szCap,_nChars,
"CAP_XFERCOUNT");
2942 case ICAP_COMPRESSION:
2943 SSTRCPY(_szCap,_nChars,
"ICAP_COMPRESSION");
2946 case ICAP_PIXELTYPE:
2947 SSTRCPY(_szCap,_nChars,
"ICAP_PIXELTYPE");
2951 SSTRCPY(_szCap,_nChars,
"ICAP_UNITS");
2955 SSTRCPY(_szCap,_nChars,
"ICAP_XFERMECH");
2959 SSTRCPY(_szCap,_nChars,
"CAP_AUTHOR");
2963 SSTRCPY(_szCap,_nChars,
"CAP_CAPTION");
2966 case CAP_FEEDERENABLED:
2967 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERENABLED");
2970 case CAP_FEEDERLOADED:
2971 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERLOADED");
2975 SSTRCPY(_szCap,_nChars,
"CAP_TIMEDATE");
2978 case CAP_SUPPORTEDCAPS:
2979 SSTRCPY(_szCap,_nChars,
"CAP_SUPPORTEDCAPS");
2982 case CAP_EXTENDEDCAPS:
2983 SSTRCPY(_szCap,_nChars,
"CAP_EXTENDEDCAPS");
2987 SSTRCPY(_szCap,_nChars,
"CAP_AUTOFEED");
2991 SSTRCPY(_szCap,_nChars,
"CAP_CLEARPAGE");
2995 SSTRCPY(_szCap,_nChars,
"CAP_FEEDPAGE");
2998 case CAP_REWINDPAGE:
2999 SSTRCPY(_szCap,_nChars,
"CAP_REWINDPAGE");
3002 case CAP_INDICATORS:
3003 SSTRCPY(_szCap,_nChars,
"CAP_INDICATORS");
3006 case CAP_SUPPORTEDCAPSEXT:
3007 SSTRCPY(_szCap,_nChars,
"CAP_SUPPORTEDCAPSEXT");
3010 case CAP_PAPERDETECTABLE:
3011 SSTRCPY(_szCap,_nChars,
"CAP_PAPERDETECTABLE");
3014 case CAP_UICONTROLLABLE:
3015 SSTRCPY(_szCap,_nChars,
"CAP_UICONTROLLABLE");
3018 case CAP_DEVICEONLINE:
3019 SSTRCPY(_szCap,_nChars,
"CAP_DEVICEONLINE");
3023 SSTRCPY(_szCap,_nChars,
"CAP_AUTOSCAN");
3026 case CAP_THUMBNAILSENABLED:
3027 SSTRCPY(_szCap,_nChars,
"CAP_THUMBNAILSENABLED");
3031 SSTRCPY(_szCap,_nChars,
"CAP_DUPLEX");
3034 case CAP_DUPLEXENABLED:
3035 SSTRCPY(_szCap,_nChars,
"CAP_DUPLEXENABLED");
3038 case CAP_ENABLEDSUIONLY:
3039 SSTRCPY(_szCap,_nChars,
"CAP_ENABLEDSUIONLY");
3042 case CAP_CUSTOMDSDATA:
3043 SSTRCPY(_szCap,_nChars,
"CAP_CUSTOMDSDATA");
3047 SSTRCPY(_szCap,_nChars,
"CAP_ENDORSER");
3050 case CAP_JOBCONTROL:
3051 SSTRCPY(_szCap,_nChars,
"CAP_JOBCONTROL");
3055 SSTRCPY(_szCap,_nChars,
"CAP_ALARMS");
3058 case CAP_ALARMVOLUME:
3059 SSTRCPY(_szCap,_nChars,
"CAP_ALARMVOLUME");
3062 case CAP_AUTOMATICCAPTURE:
3063 SSTRCPY(_szCap,_nChars,
"CAP_AUTOMATICCAPTURE");
3066 case CAP_TIMEBEFOREFIRSTCAPTURE:
3067 SSTRCPY(_szCap,_nChars,
"CAP_TIMEBEFOREFIRSTCAPTURE");
3070 case CAP_TIMEBETWEENCAPTURES:
3071 SSTRCPY(_szCap,_nChars,
"CAP_TIMEBETWEENCAPTURES");
3074 case CAP_CLEARBUFFERS:
3075 SSTRCPY(_szCap,_nChars,
"CAP_CLEARBUFFERS");
3078 case CAP_MAXBATCHBUFFERS:
3079 SSTRCPY(_szCap,_nChars,
"CAP_MAXBATCHBUFFERS");
3082 case CAP_DEVICETIMEDATE:
3083 SSTRCPY(_szCap,_nChars,
"CAP_DEVICETIMEDATE");
3086 case CAP_POWERSUPPLY:
3087 SSTRCPY(_szCap,_nChars,
"CAP_POWERSUPPLY");
3090 case CAP_CAMERAPREVIEWUI:
3091 SSTRCPY(_szCap,_nChars,
"CAP_CAMERAPREVIEWUI");
3094 case CAP_DEVICEEVENT:
3095 SSTRCPY(_szCap,_nChars,
"CAP_DEVICEEVENT");
3098 case CAP_SERIALNUMBER:
3099 SSTRCPY(_szCap,_nChars,
"CAP_SERIALNUMBER");
3103 SSTRCPY(_szCap,_nChars,
"CAP_PRINTER");
3106 case CAP_PRINTERENABLED:
3107 SSTRCPY(_szCap,_nChars,
"CAP_PRINTERENABLED");
3110 case CAP_PRINTERINDEX:
3111 SSTRCPY(_szCap,_nChars,
"CAP_PRINTERINDEX");
3114 case CAP_PRINTERMODE:
3115 SSTRCPY(_szCap,_nChars,
"CAP_PRINTERMODE");
3118 case CAP_PRINTERSTRING:
3119 SSTRCPY(_szCap,_nChars,
"CAP_PRINTERSTRING");
3122 case CAP_PRINTERSUFFIX:
3123 SSTRCPY(_szCap,_nChars,
"CAP_PRINTERSUFFIX");
3127 SSTRCPY(_szCap,_nChars,
"CAP_LANGUAGE");
3130 case CAP_FEEDERALIGNMENT:
3131 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERALIGNMENT");
3134 case CAP_FEEDERORDER:
3135 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERORDER");
3138 case CAP_REACQUIREALLOWED:
3139 SSTRCPY(_szCap,_nChars,
"CAP_REACQUIREALLOWED");
3142 case CAP_BATTERYMINUTES:
3143 SSTRCPY(_szCap,_nChars,
"CAP_BATTERYMINUTES");
3146 case CAP_BATTERYPERCENTAGE:
3147 SSTRCPY(_szCap,_nChars,
"CAP_BATTERYPERCENTAGE");
3150 case CAP_CAMERASIDE:
3151 SSTRCPY(_szCap,_nChars,
"CAP_CAMERASIDE");
3155 SSTRCPY(_szCap,_nChars,
"CAP_SEGMENTED");
3158 case CAP_CAMERAENABLED:
3159 SSTRCPY(_szCap,_nChars,
"CAP_CAMERAENABLED");
3162 case CAP_CAMERAORDER:
3163 SSTRCPY(_szCap,_nChars,
"CAP_CAMERAORDER");
3166 case CAP_MICRENABLED:
3167 SSTRCPY(_szCap,_nChars,
"CAP_MICRENABLED");
3170 case CAP_FEEDERPREP:
3171 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERPREP");
3174 case CAP_FEEDERPOCKET:
3175 SSTRCPY(_szCap,_nChars,
"CAP_FEEDERPOCKET");
3178 case CAP_AUTOMATICSENSEMEDIUM:
3179 SSTRCPY(_szCap,_nChars,
"CAP_AUTOMATICSENSEMEDIUM");
3182 case CAP_CUSTOMINTERFACEGUID:
3183 SSTRCPY(_szCap,_nChars,
"CAP_CUSTOMINTERFACEGUID");
3186 case ICAP_AUTOBRIGHT:
3187 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOBRIGHT");
3190 case ICAP_BRIGHTNESS:
3191 SSTRCPY(_szCap,_nChars,
"ICAP_BRIGHTNESS");
3195 SSTRCPY(_szCap,_nChars,
"ICAP_CONTRAST");
3198 case ICAP_CUSTHALFTONE:
3199 SSTRCPY(_szCap,_nChars,
"ICAP_CUSTHALFTONE");
3202 case ICAP_EXPOSURETIME:
3203 SSTRCPY(_szCap,_nChars,
"ICAP_EXPOSURETIME");
3207 SSTRCPY(_szCap,_nChars,
"ICAP_FILTER");
3210 case ICAP_FLASHUSED:
3211 SSTRCPY(_szCap,_nChars,
"ICAP_FLASHUSED");
3215 SSTRCPY(_szCap,_nChars,
"ICAP_GAMMA");
3218 case ICAP_HALFTONES:
3219 SSTRCPY(_szCap,_nChars,
"ICAP_HALFTONES");
3222 case ICAP_HIGHLIGHT:
3223 SSTRCPY(_szCap,_nChars,
"ICAP_HIGHLIGHT");
3226 case ICAP_IMAGEFILEFORMAT:
3227 SSTRCPY(_szCap,_nChars,
"ICAP_IMAGEFILEFORMAT");
3230 case ICAP_LAMPSTATE:
3231 SSTRCPY(_szCap,_nChars,
"ICAP_LAMPSTATE");
3234 case ICAP_LIGHTSOURCE:
3235 SSTRCPY(_szCap,_nChars,
"ICAP_LIGHTSOURCE");
3238 case ICAP_ORIENTATION:
3239 SSTRCPY(_szCap,_nChars,
"ICAP_ORIENTATION");
3242 case ICAP_PHYSICALWIDTH:
3243 SSTRCPY(_szCap,_nChars,
"ICAP_PHYSICALWIDTH");
3246 case ICAP_PHYSICALHEIGHT:
3247 SSTRCPY(_szCap,_nChars,
"ICAP_PHYSICALHEIGHT");
3251 SSTRCPY(_szCap,_nChars,
"ICAP_SHADOW");
3255 SSTRCPY(_szCap,_nChars,
"ICAP_FRAMES");
3258 case ICAP_XNATIVERESOLUTION:
3259 SSTRCPY(_szCap,_nChars,
"ICAP_XNATIVERESOLUTION");
3262 case ICAP_YNATIVERESOLUTION:
3263 SSTRCPY(_szCap,_nChars,
"ICAP_YNATIVERESOLUTION");
3266 case ICAP_XRESOLUTION:
3267 SSTRCPY(_szCap,_nChars,
"ICAP_XRESOLUTION");
3270 case ICAP_YRESOLUTION:
3271 SSTRCPY(_szCap,_nChars,
"ICAP_YRESOLUTION");
3274 case ICAP_MAXFRAMES:
3275 SSTRCPY(_szCap,_nChars,
"ICAP_MAXFRAMES");
3279 SSTRCPY(_szCap,_nChars,
"ICAP_TILES");
3283 SSTRCPY(_szCap,_nChars,
"ICAP_BITORDER");
3286 case ICAP_CCITTKFACTOR:
3287 SSTRCPY(_szCap,_nChars,
"ICAP_CCITTKFACTOR");
3290 case ICAP_LIGHTPATH:
3291 SSTRCPY(_szCap,_nChars,
"ICAP_LIGHTPATH");
3294 case ICAP_PIXELFLAVOR:
3295 SSTRCPY(_szCap,_nChars,
"ICAP_PIXELFLAVOR");
3298 case ICAP_PLANARCHUNKY:
3299 SSTRCPY(_szCap,_nChars,
"ICAP_PLANARCHUNKY");
3303 SSTRCPY(_szCap,_nChars,
"ICAP_ROTATION");
3306 case ICAP_SUPPORTEDSIZES:
3307 SSTRCPY(_szCap,_nChars,
"ICAP_SUPPORTEDSIZES");
3310 case ICAP_THRESHOLD:
3311 SSTRCPY(_szCap,_nChars,
"ICAP_THRESHOLD");
3315 SSTRCPY(_szCap,_nChars,
"ICAP_XSCALING");
3319 SSTRCPY(_szCap,_nChars,
"ICAP_YSCALING");
3322 case ICAP_BITORDERCODES:
3323 SSTRCPY(_szCap,_nChars,
"ICAP_BITORDERCODES");
3326 case ICAP_PIXELFLAVORCODES:
3327 SSTRCPY(_szCap,_nChars,
"ICAP_PIXELFLAVORCODES");
3330 case ICAP_JPEGPIXELTYPE:
3331 SSTRCPY(_szCap,_nChars,
"ICAP_JPEGPIXELTYPE");
3335 SSTRCPY(_szCap,_nChars,
"ICAP_TIMEFILL");
3339 SSTRCPY(_szCap,_nChars,
"ICAP_BITDEPTH");
3342 case ICAP_BITDEPTHREDUCTION:
3343 SSTRCPY(_szCap,_nChars,
"ICAP_BITDEPTHREDUCTION");
3346 case ICAP_UNDEFINEDIMAGESIZE:
3347 SSTRCPY(_szCap,_nChars,
"ICAP_UNDEFINEDIMAGESIZE");
3350 case ICAP_IMAGEDATASET:
3351 SSTRCPY(_szCap,_nChars,
"ICAP_IMAGEDATASET");
3354 case ICAP_EXTIMAGEINFO:
3355 SSTRCPY(_szCap,_nChars,
"ICAP_EXTIMAGEINFO");
3358 case ICAP_MINIMUMHEIGHT:
3359 SSTRCPY(_szCap,_nChars,
"ICAP_MINIMUMHEIGHT");
3362 case ICAP_MINIMUMWIDTH:
3363 SSTRCPY(_szCap,_nChars,
"ICAP_MINIMUMWIDTH");
3366 case ICAP_AUTODISCARDBLANKPAGES:
3367 SSTRCPY(_szCap,_nChars,
"ICAP_AUTODISCARDBLANKPAGES");
3370 case ICAP_FLIPROTATION:
3371 SSTRCPY(_szCap,_nChars,
"ICAP_FLIPROTATION");
3374 case ICAP_BARCODEDETECTIONENABLED:
3375 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODEDETECTIONENABLED");
3378 case ICAP_SUPPORTEDBARCODETYPES:
3379 SSTRCPY(_szCap,_nChars,
"ICAP_SUPPORTEDBARCODETYPES");
3382 case ICAP_BARCODEMAXSEARCHPRIORITIES:
3383 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODEMAXSEARCHPRIORITIES");
3386 case ICAP_BARCODESEARCHPRIORITIES:
3387 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODESEARCHPRIORITIES");
3390 case ICAP_BARCODESEARCHMODE:
3391 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODESEARCHMODE");
3394 case ICAP_BARCODEMAXRETRIES:
3395 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODEMAXRETRIES");
3398 case ICAP_BARCODETIMEOUT:
3399 SSTRCPY(_szCap,_nChars,
"ICAP_BARCODETIMEOUT");
3402 case ICAP_ZOOMFACTOR:
3403 SSTRCPY(_szCap,_nChars,
"ICAP_ZOOMFACTOR");
3406 case ICAP_PATCHCODEDETECTIONENABLED:
3407 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODEDETECTIONENABLED");
3410 case ICAP_SUPPORTEDPATCHCODETYPES:
3411 SSTRCPY(_szCap,_nChars,
"ICAP_SUPPORTEDPATCHCODETYPES");
3414 case ICAP_PATCHCODEMAXSEARCHPRIORITIES:
3415 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODEMAXSEARCHPRIORITIES");
3418 case ICAP_PATCHCODESEARCHPRIORITIES:
3419 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODESEARCHPRIORITIES");
3422 case ICAP_PATCHCODESEARCHMODE:
3423 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODESEARCHMODE");
3426 case ICAP_PATCHCODEMAXRETRIES:
3427 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODEMAXRETRIES");
3430 case ICAP_PATCHCODETIMEOUT:
3431 SSTRCPY(_szCap,_nChars,
"ICAP_PATCHCODETIMEOUT");
3434 case ICAP_FLASHUSED2:
3435 SSTRCPY(_szCap,_nChars,
"ICAP_FLASHUSED2");
3438 case ICAP_IMAGEFILTER:
3439 SSTRCPY(_szCap,_nChars,
"ICAP_IMAGEFILTER");
3442 case ICAP_NOISEFILTER:
3443 SSTRCPY(_szCap,_nChars,
"ICAP_NOISEFILTER");
3447 SSTRCPY(_szCap,_nChars,
"ICAP_OVERSCAN");
3450 case ICAP_AUTOMATICBORDERDETECTION:
3451 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICBORDERDETECTION");
3454 case ICAP_AUTOMATICDESKEW:
3455 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICDESKEW");
3458 case ICAP_AUTOMATICROTATE:
3459 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICROTATE");
3462 case ICAP_JPEGQUALITY:
3463 SSTRCPY(_szCap,_nChars,
"ICAP_JPEGQUALITY");
3466 case ICAP_FEEDERTYPE:
3467 SSTRCPY(_szCap,_nChars,
"ICAP_FEEDERTYPE");
3470 case ICAP_ICCPROFILE:
3471 SSTRCPY(_szCap,_nChars,
"ICAP_ICCPROFILE");
3475 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOSIZE");
3478 case ICAP_AUTOMATICCROPUSESFRAME:
3479 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICCROPUSESFRAME");
3482 case ICAP_AUTOMATICLENGTHDETECTION:
3483 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICLENGTHDETECTION");
3486 case ICAP_AUTOMATICCOLORENABLED:
3487 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICCOLORENABLED");
3490 case ICAP_AUTOMATICCOLORNONCOLORPIXELTYPE:
3491 SSTRCPY(_szCap,_nChars,
"ICAP_AUTOMATICCOLORNONCOLORPIXELTYPE");
3494 case ICAP_COLORMANAGEMENTENABLED:
3495 SSTRCPY(_szCap,_nChars,
"ICAP_COLORMANAGEMENTENABLED");
3498 case ICAP_IMAGEMERGE:
3499 SSTRCPY(_szCap,_nChars,
"ICAP_IMAGEMERGE");
3502 case ICAP_IMAGEMERGEHEIGHTTHRESHOLD:
3503 SSTRCPY(_szCap,_nChars,
"ICAP_IMAGEMERGEHEIGHTTHRESHOLD");
3506 case ICAP_SUPPORTEDEXTIMAGEINFO:
3507 SSTRCPY(_szCap,_nChars,
"ICAP_SUPPORTEDEXTIMAGEINFO");
3510 case ACAP_AUDIOFILEFORMAT:
3511 SSTRCPY(_szCap,_nChars,
"ACAP_AUDIOFILEFORMAT");
3515 SSTRCPY(_szCap,_nChars,
"ACAP_XFERMECH");
3527 const TW_UINT16 _rc)
3532 SSNPRINTF(_szRc,_nChars,_nChars,
"TWRC_0x%04x",_rc);
3536 SSTRCPY(_szRc,_nChars,
"TWRC_SUCCESS");
3540 SSTRCPY(_szRc,_nChars,
"TWRC_FAILURE");
3543 case TWRC_CHECKSTATUS:
3544 SSTRCPY(_szRc,_nChars,
"TWRC_CHECKSTATUS");
3548 SSTRCPY(_szRc,_nChars,
"TWRC_CANCEL");
3552 SSTRCPY(_szRc,_nChars,
"TWRC_DSEVENT");
3555 case TWRC_NOTDSEVENT:
3556 SSTRCPY(_szRc,_nChars,
"TWRC_NOTDSEVENT");
3560 SSTRCPY(_szRc,_nChars,
"TWRC_XFERDONE");
3563 case TWRC_ENDOFLIST:
3564 SSTRCPY(_szRc,_nChars,
"TWRC_ENDOFLIST");
3567 case TWRC_INFONOTSUPPORTED:
3568 SSTRCPY(_szRc,_nChars,
"TWRC_INFONOTSUPPORTED");
3571 case TWRC_DATANOTAVAILABLE:
3572 SSTRCPY(_szRc,_nChars,
"TWRC_DATANOTAVAILABLE");
3582 const TW_UINT16 _ConType)
3587 SSNPRINTF(_szData,_nChars,_nChars,
" TWON_0x%04x",_ConType);
3590 case TWON_DONTCARE16:
3591 SSTRCPY(_szData,_nChars,
" TWON_DONTCARE16");
3595 SSTRCPY(_szData,_nChars,
" TWON_ARRAY");
3598 case TWON_ENUMERATION:
3599 SSTRCPY(_szData,_nChars,
" TWON_ENUMERATION");
3603 SSTRCPY(_szData,_nChars,
" TWON_ONEVALUE ");
3607 SSTRCPY(_szData,_nChars,
" TWON_RANGE");
3617 const TW_UINT16 _ConCode)
3622 SSNPRINTF(_szData,_nChars,_nChars,
" TWCC_0x%04x",_ConCode);
3626 SSTRCPY(_szData,_nChars,
" TWCC_SUCCESS");
3630 SSTRCPY(_szData,_nChars,
" TWCC_BUMMER");
3633 case TWCC_LOWMEMORY:
3634 SSTRCPY(_szData,_nChars,
" TWCC_LOWMEMORY");
3638 SSTRCPY(_szData,_nChars,
" TWCC_NODS");
3641 case TWCC_MAXCONNECTIONS:
3642 SSTRCPY(_szData,_nChars,
" TWCC_MAXCONNECTIONS");
3645 case TWCC_OPERATIONERROR:
3646 SSTRCPY(_szData,_nChars,
" TWCC_OPERATIONERROR");
3650 SSTRCPY(_szData,_nChars,
" TWCC_BADCAP");
3653 case TWCC_BADPROTOCOL:
3654 SSTRCPY(_szData,_nChars,
" TWCC_BADPROTOCOL");
3658 SSTRCPY(_szData,_nChars,
" TWCC_BADVALUE");
3662 SSTRCPY(_szData,_nChars,
" TWCC_SEQERROR");
3666 SSTRCPY(_szData,_nChars,
" TWCC_BADDEST");
3669 case TWCC_CAPUNSUPPORTED:
3670 SSTRCPY(_szData,_nChars,
" TWCC_CAPUNSUPPORTED");
3673 case TWCC_CAPBADOPERATION:
3674 SSTRCPY(_szData,_nChars,
" TWCC_CAPBADOPERATION");
3677 case TWCC_CAPSEQERROR:
3678 SSTRCPY(_szData,_nChars,
" TWCC_CAPSEQERROR");
3682 SSTRCPY(_szData,_nChars,
" TWCC_DENIED");
3685 case TWCC_FILEEXISTS:
3686 SSTRCPY(_szData,_nChars,
" TWCC_FILEEXISTS");
3689 case TWCC_FILENOTFOUND:
3690 SSTRCPY(_szData,_nChars,
" TWCC_FILENOTFOUND");
3694 SSTRCPY(_szData,_nChars,
" TWCC_NOTEMPTY");
3698 SSTRCPY(_szData,_nChars,
" TWCC_PAPERJAM");
3701 case TWCC_PAPERDOUBLEFEED:
3702 SSTRCPY(_szData,_nChars,
" TWCC_PAPERDOUBLEFEED");
3705 case TWCC_FILEWRITEERROR:
3706 SSTRCPY(_szData,_nChars,
" TWCC_FILEWRITEERROR");
3709 case TWCC_CHECKDEVICEONLINE:
3710 SSTRCPY(_szData,_nChars,
" TWCC_CHECKDEVICEONLINE");
3713 case TWCC_INTERLOCK:
3714 SSTRCPY(_szData,_nChars,
" TWCC_INTERLOCK");
3717 case TWCC_DAMAGEDCORNER:
3718 SSTRCPY(_szData,_nChars,
" TWCC_DAMAGEDCORNER");
3721 case TWCC_FOCUSERROR:
3722 SSTRCPY(_szData,_nChars,
" TWCC_FOCUSERROR");
3725 case TWCC_DOCTOOLIGHT:
3726 SSTRCPY(_szData,_nChars,
" TWCC_DOCTOOLIGHT");
3729 case TWCC_DOCTOODARK:
3730 SSTRCPY(_szData,_nChars,
" TWCC_DOCTOODARK");
3734 SSTRCPY(_szData,_nChars,
" TWCC_NOMEDIA");
3744 TW_HANDLE PASCAL DSM_MemAllocate (TW_UINT32 _bytes)
3752 return (TW_HANDLE)NULL;
3756 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
3757 handle = (TW_HANDLE)::GlobalAlloc(GPTR,_bytes);
3760 kLOG((
kLOGERR,
"DSM_MemAllocate failed to allocate %ld bytes...",_bytes));
3761 return (TW_HANDLE)NULL;
3766 #elif (TWNDSM_OS == TWNDSM_OS_MACOSX)
3767 handle = (TW_HANDLE)NewHandleClear(_bytes);
3770 kLOG((
kLOGERR,
"DSM_MemAllocate failed to allocate %ld bytes...",_bytes));
3771 return (TW_HANDLE)NULL;
3776 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3777 handle = (TW_HANDLE)calloc(_bytes,1);
3780 kLOG((
kLOGERR,
"DSM_MemAllocate failed to allocate %ld bytes...",_bytes));
3781 return (TW_HANDLE)NULL;
3787 #error Sorry, we do not recognize this system...
3797 void PASCAL DSM_MemFree (TW_HANDLE _handle)
3802 kLOG((
kLOGERR,
"ignoring attempt to free null handle..."));
3807 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
3808 ::GlobalFree(_handle);
3811 #elif (TWNDSM_OS == TWNDSM_OS_MACOSX)
3812 DisposeHandle((Handle)_handle);
3815 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3820 #error Sorry, we do not recognize this system...
3829 TW_MEMREF PASCAL DSM_MemLock (TW_HANDLE _handle)
3834 kLOG((
kLOGERR,
"attempting to lock null handle..."));
3835 return (TW_MEMREF)NULL;
3842 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
3843 return (TW_MEMREF)::GlobalLock(_handle);
3846 #elif (TWNDSM_OS == TWNDSM_OS_MACOSX)
3847 return _handle ? *_handle : 0;
3850 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3851 return (TW_MEMREF)_handle;
3855 #error Sorry, we do not recognize this system...
3866 void PASCAL DSM_MemUnlock (TW_HANDLE _handle)
3871 kLOG((
kLOGERR,
"attempting to unlock null handle..."));
3876 #if (TWNDSM_CMP == TWNDSM_CMP_VISUALCPP)
3877 ::GlobalUnlock(_handle);
3880 #elif (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3884 #error Sorry, we do not recognize this system...
3895 #if (TWNDSM_OS == TWNDSM_OS_MACOSX)
3896 pRet = CFBundleGetFunctionPointerForName((CFBundleRef)_pHandle,
3897 CFStringCreateWithCStringNoCopy(0, _pszSymbol, kCFStringEncodingUTF8, 0));
3900 #if (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3907 #if (TWNDSM_CMP == TWNDSM_CMP_GNUGPP)
3908 char* psz_error = 0;
3910 if((psz_error = dlerror()) != NULL)