Autor Beitrag
thePraYeR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 27



BeitragVerfasst: Mi 08.10.03 22:44 
Hi,

beim Aufruf von
ausblenden Delphi-Quelltext
1:
rc:=DSM_ENTRY(pprivAppId,Nil,DG_CONTROL,DAT_PARENT,MSG_OPENDSM,NIL);					

kommt eine Exception (Zugriffsverletzung in TWIN_32.dll...Lesen von Adresse 00000000000)

Kompletter code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

const
(*Sprachkonstanten*)
  TWLG_DAN                  =   0//* Danish                 */
  TWLG_DUT                  =   1//* Dutch                  */
  TWLG_ENG                  =   2//* International English  */
  TWLG_FCF                  =   3//* French Canadian        */
  TWLG_FIN                  =   4//* Finnish                */
  TWLG_FRN                  =   5//* French                 */
  TWLG_GER                  =   6//* German                 */
  TWLG_ICE                  =   7//* Icelandic              */
  TWLG_ITN                  =   8//* Italian                */
  TWLG_NOR                  =   9//* Norwegian              */
  TWLG_POR                  =  10//* Portuguese             */
  TWLG_SPA                  =  11//* Spanish                */
  TWLG_SWE                  =  12//* Swedish                */
  TWLG_USA                  =  13//* U.S. English           */
  TWLG_USERLOCALE           =  -1;
  TWLG_AFRIKAANS            =  14;
  TWLG_ALBANIA              =  15;
  TWLG_ARABIC               =  16;
  TWLG_ARABIC_ALGERIA       =  17;
  TWLG_ARABIC_BAHRAIN       =  18;
  TWLG_ARABIC_EGYPT         =  19;
  TWLG_ARABIC_IRAQ          =  20;
  TWLG_ARABIC_JORDAN        =  21;
  TWLG_ARABIC_KUWAIT        =  22;
  TWLG_ARABIC_LEBANON       =  23;
  TWLG_ARABIC_LIBYA         =  24;
  TWLG_ARABIC_MOROCCO       =  25;
  TWLG_ARABIC_OMAN          =  26;
  TWLG_ARABIC_QATAR         =  27;
  TWLG_ARABIC_SAUDIARABIA   =  28;
  TWLG_ARABIC_SYRIA         =  29;
  TWLG_ARABIC_TUNISIA       =  30;
  TWLG_ARABIC_UAE           =  31//* United Arabic Emirates */
  TWLG_ARABIC_YEMEN         =  32;
  TWLG_BASQUE               =  33;
  TWLG_BYELORUSSIAN         =  34;
  TWLG_BULGARIAN            =  35;
  TWLG_CATALAN              =  36;
  TWLG_CHINESE              =  37;
  TWLG_CHINESE_HONGKONG     =  38;
  TWLG_CHINESE_PRC          =  39//* People's Republic of China */
  TWLG_CHINESE_SINGAPORE    =  40;
  TWLG_CHINESE_SIMPLIFIED   =  41;
  TWLG_CHINESE_TAIWAN       =  42;
  TWLG_CHINESE_TRADITIONAL  =  43;
  TWLG_CROATIA              =  44;
  TWLG_CZECH                =  45;
  TWLG_DANISH               = TWLG_DAN;
  TWLG_DUTCH                = TWLG_DUT;
  TWLG_DUTCH_BELGIAN        =  46;
  TWLG_ENGLISH              = TWLG_ENG;
  TWLG_ENGLISH_AUSTRALIAN   =  47;
  TWLG_ENGLISH_CANADIAN     =  48;
  TWLG_ENGLISH_IRELAND      =  49;
  TWLG_ENGLISH_NEWZEALAND   =  50;
  TWLG_ENGLISH_SOUTHAFRICA  =  51;
  TWLG_ENGLISH_UK           =  52;
  TWLG_ENGLISH_USA          = TWLG_USA;
  TWLG_ESTONIAN             =  53;
  TWLG_FAEROESE             =  54;
  TWLG_FARSI                =  55;
  TWLG_FINNISH              = TWLG_FIN;
  TWLG_FRENCH               = TWLG_FRN;
  TWLG_FRENCH_BELGIAN       =  56;
  TWLG_FRENCH_CANADIAN      = TWLG_FCF;
  TWLG_FRENCH_LUXEMBOURG    =  57;
  TWLG_FRENCH_SWISS         =  58;
  TWLG_GERMAN               = TWLG_GER;
  TWLG_GERMAN_AUSTRIAN      =  59;
  TWLG_GERMAN_LUXEMBOURG    =  60;
  TWLG_GERMAN_LIECHTENSTEIN =  61;
  TWLG_GERMAN_SWISS         =  62;
  TWLG_GREEK                =  63;
  TWLG_HEBREW               =  64;
  TWLG_HUNGARIAN            =  65;
  TWLG_ICELANDIC            = TWLG_ICE;
  TWLG_INDONESIAN           =  66;
  TWLG_ITALIAN              = TWLG_ITN;
  TWLG_ITALIAN_SWISS        =  67;
  TWLG_JAPANESE             =  68;
  TWLG_KOREAN               =  69;
  TWLG_KOREAN_JOHAB         =  70;
  TWLG_LATVIAN              =  71;
  TWLG_LITHUANIAN           =  72;
  TWLG_NORWEGIAN            = TWLG_NOR;
  TWLG_NORWEGIAN_BOKMAL     =  73;
  TWLG_NORWEGIAN_NYNORSK    =  74;
  TWLG_POLISH               =  75;
  TWLG_PORTUGUESE           = TWLG_POR;
  TWLG_PORTUGUESE_BRAZIL    =  76;
  TWLG_ROMANIAN             =  77;
  TWLG_RUSSIAN              =  78;
  TWLG_SERBIAN_LATIN        =  79;
  TWLG_SLOVAK               =  80;
  TWLG_SLOVENIAN            =  81;
  TWLG_SPANISH              = TWLG_SPA;
  TWLG_SPANISH_MEXICAN      =  82;
  TWLG_SPANISH_MODERN       =  83;
  TWLG_SWEDISH              = TWLG_SWE;
  TWLG_THAI                 =  84;
  TWLG_TURKISH              =  85;
  TWLG_UKRANIAN             =  86;
  TWLG_ASSAMESE             =  87;
  TWLG_BENGALI              =  88;
  TWLG_BIHARI               =  89;
  TWLG_BODO                 =  90;
  TWLG_DOGRI                =  91;
  TWLG_GUJARATI             =  92;
  TWLG_HARYANVI             =  93;
  TWLG_HINDI                =  94;
  TWLG_KANNADA              =  95;
  TWLG_KASHMIRI             =  96;
  TWLG_MALAYALAM            =  97;
  TWLG_MARATHI              =  98;
  TWLG_MARWARI              =  99;
  TWLG_MEGHALAYAN           = 100;
  TWLG_MIZO                 = 101;
  TWLG_NAGA                 = 102;
  TWLG_ORISSI               = 103;
  TWLG_PUNJABI              = 104;
  TWLG_PUSHTU               = 105;
  TWLG_SERBIAN_CYRILLIC     = 106;
  TWLG_SIKKIMI              = 107;
  TWLG_SWEDISH_FINLAND      = 108;
  TWLG_TAMIL                = 109;
  TWLG_TELUGU               = 110;
  TWLG_TRIPURI              = 111;
  TWLG_URDU                 = 112;
  TWLG_VIETNAMESE           = 113;
(*Länderkonstanten*)
  TWCY_AFGHANISTAN    = 1001;
  TWCY_ALGERIA        =  213;
  TWCY_AMERICANSAMOA  =  684;
  TWCY_ANDORRA        =   33;
  TWCY_ANGOLA         = 1002;
  TWCY_ANGUILLA       = 8090;
  TWCY_ANTIGUA        = 8091;
  TWCY_ARGENTINA      =   54;
  TWCY_ARUBA          =  297;
  TWCY_ASCENSIONI     =  247;
  TWCY_AUSTRALIA      =   61;
  TWCY_AUSTRIA        =   43;
  TWCY_BAHAMAS        = 8092;
  TWCY_BAHRAIN        =  973;
  TWCY_BANGLADESH     =  880;
  TWCY_BARBADOS       = 8093;
  TWCY_BELGIUM        =   32;
  TWCY_BELIZE         =  501;
  TWCY_BENIN          =  229;
  TWCY_BERMUDA        = 8094;
  TWCY_BHUTAN         = 1003;
  TWCY_BOLIVIA        =  591;
  TWCY_BOTSWANA       =  267;
  TWCY_BRITAIN        =    6;
  TWCY_BRITVIRGINIS   = 8095;
  TWCY_BRAZIL         =   55;
  TWCY_BRUNEI         =  673;
  TWCY_BULGARIA       =  359;
  TWCY_BURKINAFASO    = 1004;
  TWCY_BURMA          = 1005;
  TWCY_BURUNDI        = 1006;
  TWCY_CAMAROON       =  237;
  TWCY_CANADA         =    2;
  TWCY_CAPEVERDEIS    =  238;
  TWCY_CAYMANIS       = 8096;
  TWCY_CENTRALAFREP   = 1007;
  TWCY_CHAD           = 1008;
  TWCY_CHILE          =   56;
  TWCY_CHINA          =   86;
  TWCY_CHRISTMASIS    = 1009;
  TWCY_COCOSIS        = 1009;
  TWCY_COLOMBIA       =   57;
  TWCY_COMOROS        = 1010;
  TWCY_CONGO          = 1011;
  TWCY_COOKIS         = 1012;
  TWCY_COSTARICA      =  506;
  TWCY_CUBA           =    5;
  TWCY_CYPRUS         =  357;
  TWCY_CZECHOSLOVAKIA =   42;
  TWCY_DENMARK        =   45;
  TWCY_DJIBOUTI       = 1013;
  TWCY_DOMINICA       = 8097;
  TWCY_DOMINCANREP    = 8098;
  TWCY_EASTERIS       = 1014;
  TWCY_ECUADOR        =  593;
  TWCY_EGYPT          =   20;
  TWCY_ELSALVADOR     =  503;
  TWCY_EQGUINEA       = 1015;
  TWCY_ETHIOPIA       =  251;
  TWCY_FALKLANDIS     = 1016;
  TWCY_FAEROEIS       =  298;
  TWCY_FIJIISLANDS    =  679;
  TWCY_FINLAND        =  358;
  TWCY_FRANCE         =   33;
  TWCY_FRANTILLES     =  596;
  TWCY_FRGUIANA       =  594;
  TWCY_FRPOLYNEISA    =  689;
  TWCY_FUTANAIS       = 1043;
  TWCY_GABON          =  241;
  TWCY_GAMBIA         =  220;
  TWCY_GERMANY        =   49;
  TWCY_GHANA          =  233;
  TWCY_GIBRALTER      =  350;
  TWCY_GREECE         =   30;
  TWCY_GREENLAND      =  299;
  TWCY_GRENADA        = 8099;
  TWCY_GRENEDINES     = 8015;
  TWCY_GUADELOUPE     =  590;
  TWCY_GUAM           =  671;
  TWCY_GUANTANAMOBAY  = 5399;
  TWCY_GUATEMALA      =  502;
  TWCY_GUINEA         =  224;
  TWCY_GUINEABISSAU   = 1017;
  TWCY_GUYANA         =  592;
  TWCY_HAITI          =  509;
  TWCY_HONDURAS       =  504;
  TWCY_HONGKONG       =  852;
  TWCY_HUNGARY        =   36;
  TWCY_ICELAND        =  354;
  TWCY_INDIA          =   91;
  TWCY_INDONESIA      =   62;
  TWCY_IRAN           =   98;
  TWCY_IRAQ           =  964;
  TWCY_IRELAND        =  353;
  TWCY_ISRAEL         =  972;
  TWCY_ITALY          =   39;
  TWCY_IVORYCOAST     =  225;
  TWCY_JAMAICA        = 8010;
  TWCY_JAPAN          =   81;
  TWCY_JORDAN         =  962;
  TWCY_KENYA          =  254;
  TWCY_KIRIBATI       = 1018;
  TWCY_KOREA          =   82;
  TWCY_KUWAIT         =  965;
  TWCY_LAOS           = 1019;
  TWCY_LEBANON        = 1020;
  TWCY_LIBERIA        =  231;
  TWCY_LIBYA          =  218;
  TWCY_LIECHTENSTEIN  =   41;
  TWCY_LUXENBOURG     =  352;
  TWCY_MACAO          =  853;
  TWCY_MADAGASCAR     = 1021;
  TWCY_MALAWI         =  265;
  TWCY_MALAYSIA       =   60;
  TWCY_MALDIVES       =  960;
  TWCY_MALI           = 1022;
  TWCY_MALTA          =  356;
  TWCY_MARSHALLIS     =  692;
  TWCY_MAURITANIA     = 1023;
  TWCY_MAURITIUS      =  230;
  TWCY_MEXICO         =    3;
  TWCY_MICRONESIA     =  691;
  TWCY_MIQUELON       =  508;
  TWCY_MONACO         =   33;
  TWCY_MONGOLIA       = 1024;
  TWCY_MONTSERRAT     = 8011;
  TWCY_MOROCCO        =  212;
  TWCY_MOZAMBIQUE     = 1025;
  TWCY_NAMIBIA        =  264;
  TWCY_NAURU          = 1026;
  TWCY_NEPAL          =  977;
  TWCY_NETHERLANDS    =   31;
  TWCY_NETHANTILLES   =  599;
  TWCY_NEVIS          = 8012;
  TWCY_NEWCALEDONIA   =  687;
  TWCY_NEWZEALAND     =   64;
  TWCY_NICARAGUA      =  505;
  TWCY_NIGER          =  227;
  TWCY_NIGERIA        =  234;
  TWCY_NIUE           = 1027;
  TWCY_NORFOLKI       = 1028;
  TWCY_NORWAY         =   47;
  TWCY_OMAN           =  968;
  TWCY_PAKISTAN       =   92;
  TWCY_PALAU          = 1029;
  TWCY_PANAMA         =  507;
  TWCY_PARAGUAY       =  595;
  TWCY_PERU           =   51;
  TWCY_PHILLIPPINES   =   63;
  TWCY_PITCAIRNIS     = 1030;
  TWCY_PNEWGUINEA     =  675;
  TWCY_POLAND         =   48;
  TWCY_PORTUGAL       =  351;
  TWCY_QATAR          =  974;
  TWCY_REUNIONI       = 1031;
  TWCY_ROMANIA        =   40;
  TWCY_RWANDA         =  250;
  TWCY_SAIPAN         =  670;
  TWCY_SANMARINO      =   39;
  TWCY_SAOTOME        = 1033;
  TWCY_SAUDIARABIA    =  966;
  TWCY_SENEGAL        =  221;
  TWCY_SEYCHELLESIS   = 1034;
  TWCY_SIERRALEONE    = 1035;
  TWCY_SINGAPORE      =   65;
  TWCY_SOLOMONIS      = 1036;
  TWCY_SOMALI         = 1037;
  TWCY_SOUTHAFRICA    =   27;
  TWCY_SPAIN          =   34;
  TWCY_SRILANKA       =   94;
  TWCY_STHELENA       = 1032;
  TWCY_STKITTS        = 8013;
  TWCY_STLUCIA        = 8014;
  TWCY_STPIERRE       =  508;
  TWCY_STVINCENT      = 8015;
  TWCY_SUDAN          = 1038;
  TWCY_SURINAME       =  597;
  TWCY_SWAZILAND      =  268;
  TWCY_SWEDEN         =   46;
  TWCY_SWITZERLAND    =   41;
  TWCY_SYRIA          = 1039;
  TWCY_TAIWAN         =  886;
  TWCY_TANZANIA       =  255;
  TWCY_THAILAND       =   66;
  TWCY_TOBAGO         = 8016;
  TWCY_TOGO           =  228;
  TWCY_TONGAIS        =  676;
  TWCY_TRINIDAD       = 8016;
  TWCY_TUNISIA        =  216;
  TWCY_TURKEY         =   90;
  TWCY_TURKSCAICOS    = 8017;
  TWCY_TUVALU         = 1040;
  TWCY_UGANDA         =  256;
  TWCY_USSR           =    7;
  TWCY_UAEMIRATES     =  971;
  TWCY_UNITEDKINGDOM  =   44;
  TWCY_USA            =    1;
  TWCY_URUGUAY        =  598;
  TWCY_VANUATU        = 1041;
  TWCY_VATICANCITY    =   39;
  TWCY_VENEZUELA      =   58;
  TWCY_WAKE           = 1042;
  TWCY_WALLISIS       = 1043;
  TWCY_WESTERNSAHARA  = 1044;
  TWCY_WESTERNSAMOA   = 1045;
  TWCY_YEMEN          = 1046;
  TWCY_YUGOSLAVIA     =   38;
  TWCY_ZAIRE          =  243;
  TWCY_ZAMBIA         =  260;
  TWCY_ZIMBABWE       =  263;
  TWCY_ALBANIA        =  355;
  TWCY_ARMENIA        =  374;
  TWCY_AZERBAIJAN     =  994;
  TWCY_BELARUS        =  375;
  TWCY_BOSNIAHERZGO   =  387;
  TWCY_CAMBODIA       =  855;
  TWCY_CROATIA        =  385;
  TWCY_CZECHREPUBLIC  =  420;
  TWCY_DIEGOGARCIA    =  246;
  TWCY_ERITREA        =  291;
  TWCY_ESTONIA        =  372;
  TWCY_GEORGIA        =  995;
  TWCY_LATVIA         =  371;
  TWCY_LESOTHO        =  266;
  TWCY_LITHUANIA      =  370;
  TWCY_MACEDONIA      =  389;
  TWCY_MAYOTTEIS      =  269;
  TWCY_MOLDOVA        =  373;
  TWCY_MYANMAR        =   95;
  TWCY_NORTHKOREA     =  850;
  TWCY_PUERTORICO     =  787;
  TWCY_RUSSIA         =    7;
  TWCY_SERBIA         =  381;
  TWCY_SLOVAKIA       =  421;
  TWCY_SLOVENIA       =  386;
  TWCY_SOUTHKOREA     =   82;
  TWCY_UKRAINE        =  380;
  TWCY_USVIRGINIS     =  340;
  TWCY_VIETNAM        =   84;

(*TWAIn-Konstanten*)
  TWON_PROTOCOLMINOR = 9;
  TWON_PROTOCOLMAJOR = 1;
(*TWAIN-Datengruppenkonstanten*)
  DG_CONTROL = $0001//* data pertaining to control       */
  DG_IMAGE   = $0002//* data pertaining to raster images */
  DG_AUDIO   = $0004;
(*Data argument types*)
  DAT_NULL            = $0000//* No data or structure. */;
  DAT_CUSTOMBASE      = $8000//* Base of custom DATs. */;
  //Argument Types for the DG_CONTROL Data Group. */
  DAT_CAPABILITY      = $0001//* TW_CAPABILITY */;
  DAT_EVENT           = $0002//* TW_EVENT */;
  DAT_IDENTITY        = $0003//* TW_IDENTITY */;
  DAT_PARENT          = $0004//* TW_HANDLE, application win handle in Windows */;
  DAT_PENDINGXFERS    = $0005//* TW_PENDINGXFERS */;
  DAT_SETUPMEMXFER    = $0006//* TW_SETUPMEMXFER */;
  DAT_SETUPFILEXFER   = $0007//* TW_SETUPFILEXFER */;
  DAT_STATUS          = $0008//* TW_STATUS */;
  DAT_USERINTERFACE   = $0009//* TW_USERINTERFACE */;
  DAT_XFERGROUP       = $000a//* TW_UINT32 */;
  //-=03/21/95 - TWUNK */;optional message required for thunker to request the special information. */;
  DAT_TWUNKIDENTITY   = $000b//* TW_TWUNKIDENTITY */;
  DAT_CUSTOMDSDATA    = $000c//* TW_CUSTOMDSDATA. */;
  //  =1.8 */;
  DAT_DEVICEEVENT     = $000d//* TW_DEVICEEVENT */;
  DAT_FILESYSTEM      = $000e//* TW_FILESYSTEM */;
  DAT_PASSTHRU        = $000f//* TW_PASSTHRU */;
  //  Argument Types for the DG_IMAGE Data Group. */;
  DAT_IMAGEINFO       = $0101//* TW_IMAGEINFO */;
  DAT_IMAGELAYOUT     = $0102//* TW_IMAGELAYOUT */;
  DAT_IMAGEMEMXFER    = $0103//* TW_IMAGEMEMXFER */;
  DAT_IMAGENATIVEXFER = $0104//* TW_UINT32 loword is hDIB, PICHandle */;
  DAT_IMAGEFILEXFER   = $0105//* Null data */;
  DAT_CIECOLOR        = $0106//* TW_CIECOLOR */;
  DAT_GRAYRESPONSE    = $0107//* TW_GRAYRESPONSE */;
  DAT_RGBRESPONSE     = $0108//* TW_RGBRESPONSE */;
  DAT_JPEGCOMPRESSION = $0109//* TW_JPEGCOMPRESSION */;
  DAT_PALETTE8        = $010a//* TW_PALETTE8 */;
  DAT_EXTIMAGEINFO    = $010b//* TW_EXTIMAGEINFO -- for 1.7 Spec. */;
  //  =1.8 */  Argument=Types for the DG_AUDIO Data Group. */;
  DAT_AUDIOFILEXFER   = $0201//* Null data */;
  DAT_AUDIOINFO       = $0202//* TW_AUDIOINFO */;
  DAT_AUDIONATIVEXFER = $0203//* TW_UINT32 handle to WAV, (AIFF Mac) */;
  //=1.9 */;
  DAT_SETUPFILEXFER2  = $0301//* New file xfer operation */;
(*Messages*)
  MSG_NULL                      = $0000//* Used in TW_EVENT structure */;
  MSG_CUSTOMBASE                = $8000//* Base of custom messages */;
  //ic=messages may be used with any of several DATs. */;
  MSG_GET                       = $0001//* Get one or more values */;
  MSG_GETCURRENT                = $0002//* Get current value */;
  MSG_GETDEFAULT                = $0003//* Get default (e.g. power up) value */;
  MSG_GETFIRST                  = $0004//* Get first of a series of items, e.g. DSs */;
  MSG_GETNEXT                   = $0005//* Iterate through a series of items. */;
  MSG_SET                       = $0006//* Set one or more values */;
  MSG_RESET                     = $0007//* Set current value to default value */;
  MSG_QUERYSUPPORT              = $0008//* Get supported operations on the cap. */;
  //ges=used with DAT_NULL */;
  MSG_XFERREADY                 = $0101//* The data source has data ready */;
  MSG_CLOSEDSREQ                = $0102//* Request for Application. to close DS */;
  MSG_CLOSEDSOK                 = $0103//* Tell the Application. to save the state. */;
  //=1.8 */;
  MSG_DEVICEEVENT               = $0104//* Some event has taken place */;
  //ges=used with a pointer to a DAT_STATUS structure */;
  MSG_CHECKSTATUS               = $0201//* Get status information */;
  //ges=used with a pointer to DAT_PARENT data */;
  MSG_OPENDSM                   = $0301//* Open the DSM */;
  MSG_CLOSEDSM                  = $0302//* Close the DSM */;
  //ges=used with a pointer to a DAT_IDENTITY structure */;
  MSG_OPENDS                    = $0401//* Open a data source */;
  MSG_CLOSEDS                   = $0402//* Close a data source */;
  MSG_USERSELECT                = $0403//* Put up a dialog of all DS */;
  //ges=used with a pointer to a DAT_USERINTERFACE structure */;
  MSG_DISABLEDS                 = $0501//* Disable data transfer in the DS */;
  MSG_ENABLEDS                  = $0502//* Enable data transfer in the DS */;
  MSG_ENABLEDSUIONLY            = $0503//* Enable for saving DS state only. */;
  //ges=used with a pointer to a DAT_EVENT structure */;
  MSG_PROCESSEVENT              = $0601;
  //ges=used with a pointer to a DAT_PENDINGXFERS structure */;
  MSG_ENDXFER                   = $0701;
  MSG_STOPFEEDER                = $0702;
  //=1.8 */;
  //ges=used with a pointer to a DAT_FILESYSTEM structure */;
  MSG_CHANGEDIRECTORY           = $0801;
  MSG_CREATEDIRECTORY           = $0802;
  MSG_DELETE                    = $0803;
  MSG_FORMATMEDIA               = $0804;
  MSG_GETCLOSE                  = $0805;
  MSG_GETFIRSTFILE              = $0806;
  MSG_GETINFO                   = $0807;
  MSG_GETNEXTFILE               = $0808;
  MSG_RENAME                    = $0809;
  MSG_COPY                      = $080A;
  MSG_AUTOMATICCAPTUREDIRECTORY = $080B;
  //ges=used with a pointer to a DAT_PASSTHRU structure */;
  MSG_PASSTHRU                  = $0901;
(*Return Codes*)
  TWRC_CUSTOMBASE = $8000;

  TWRC_SUCCESS          = 0;
  TWRC_FAILURE          = 1//* Application may get TW_STATUS for info on failure */
  TWRC_CHECKSTATUS      = 2//* "tried hard"; get status                  */
  TWRC_CANCEL           = 3;
  TWRC_DSEVENT          = 4;
  TWRC_NOTDSEVENT       = 5;
  TWRC_XFERDONE         = 6;
  TWRC_ENDOFLIST        = 7//* After MSG_GETNEXT if nothing left         */
  TWRC_INFONOTSUPPORTED = 8;
  TWRC_DATANOTAVAILABLE = 9;

type
(*Grunddatentypen*)
     TW_UINT16 = Word;
     TW_UINT32 = LongWord;
     TW_STR32  = packed array[0..33]of Char;
     TW_MEMREF = Pointer;
     pTW_UINT16 = ^TW_UINT16;
     pTW_UINT32 = ^TW_UINT32;

(*TW_VERSION*)
     TW_VERSION = packed record
       MajorNum : TW_UINT16;
       MinorNum : TW_UINT16;
       Language : TW_UINT16;
       Country  : TW_UINT16;
       Info     : TW_STR32;
     End//TW_VERSION
     pTW_VERSION = ^TW_VERSION;
(*TW_IDENTITY*)
     TW_IDENTITY = packed record
       Id              : TW_UINT32;
       Version         : TW_VERSION;
       ProtocolMajor   : TW_UINT16;
       ProtocalMinor   : TW_UINT16;
       SupportedGroups : TW_UINT32;
       Manufacturer    : TW_STR32;
       ProductFamily   : TW_STR32;
       ProductName     : TW_STR32;
     end;//TW_IDENTITY
     pTW_IDENTITY = ^TW_IDENTITY;
(*Funktionen*)
     TDSM_ENTRY = function(pOrigin,pDest:pTW_IDENTITY;DG:LongWord;DAT,MSG:Word;pData:TW_MEMREF):Word; cdecl;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var privDLLHandle:THandle;
    DSM_ENTRY:TDSM_ENTRY;
    privAppId:TW_IDENTITY;
    pprivAppId:pTW_Identity;
    privSourceId : TW_IDENTITY;
    pprivSourceId:pTW_Identity;
    rc:TW_UINT16;
    ErrorNum:DWord;
    lpMsgBuf:PChar;
begin
//State 1
  privDLLHandle:=LoadLibrary(PCHar('TWAIN_32.DLL'));
  If privDLLHandle<>0Then Begin
    DSM_ENTRY:=GetProcAddress(privDLLHandle,'DSM_Entry');
    If(@DSM_ENTRY<>Nil)then Begin
      privAppId.Id:=0;
      privAppId.Version.MajorNum:=3;
      privAppId.Version.MinorNum:=5;
      privAppId.Version.Language:=TWLG_GERMAN;
      privAppId.Version.Country:=TWCY_GERMANY;
      lstrcpy(privAppId.Version.Info,'');
      privAppId.ProtocolMajor:=1;
      privAppId.ProtocalMinor:=9;
      privAppid.SupportedGroups:=DG_IMAGE OR DG_CONTROL;
      lstrcpy(privAppId.Manufacturer,'');
      lstrcpy(privAppId.ProductFamily,'');
      lstrcpy(privAppId.ProductName,'');
      pprivAppId:=@privAppId;
//Start Stage2
      rc:=DSM_ENTRY(pprivAppId,Nil,DG_CONTROL,DAT_PARENT,MSG_OPENDSM,NIL);
//State 2. ??Bei Fehlschlag?
//start Stage 3
      privSourceId.Id:=0;
      privSourceId.ProductName:='\0';//wenn spezielle Source ausgewählt werden soll, hier name
      rc:=DSM_ENTRY(@privAppId,Nil,DG_CONTROL,DAT_IDENTITY,MSG_USERSELECT,@privSourceId);
      If rc=TWRC_SUCCESS Then Begin

      End;//State 3
    End Else Begin
    ErrorNum:=GetLastError;


      ShowMessage(intToStr(ErrorNum));
    End;
  End;
end;

end.

Neuimplementierung ist notwendig, da bei sämtlichen freien Pascal-Implementierungen beim Einscannen bestimmter Dokumente mit meinem CanonD1250U2 reproduzierbar eine Exception auftritt (ungültige Gleitkommaoperation), die nicht im Delphi-Source korrigierbar ist.

Die Datentypen usw. sind entsprechend der TWAIN.H der Twain-Group definiert.

Vorab vielen Dank für Eure Antworten.

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.
thePraYeR Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 27



BeitragVerfasst: Mi 08.10.03 22:53 
Hat sich erledigt, Fehler gefunden. Wer lesen kann, ist klar im Vorteil.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 09.10.03 10:25 
Wäre schön wenn du uns sagst wo der Fehler lag!

Danke

Gruß
Tino
thePraYeR Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 27



BeitragVerfasst: Do 09.10.03 13:23 
Hatte als pData (letzter Parameter) NIL anstatt wie gefordert einen Zeiger auf das Handle eines Anwendungsfensters übergeben.