Bei geöffneter Datenquelle müssen die mit GetMessage aus der Windows Nachrichtenwarteschlange bezogenen Nachrichten "gefiltert" werden, ähnlich dem Vorgang bei der Windows-Funktion IsDialogMessage,
|
void WINAPI TWAINIsTwainMessage( |
||
|
HTWAINACCESS |
hta, |
|
|
LPMSG |
msg, |
|
|
HWND |
hWnd): |
|
|
hta |
TWAIN-Verwaltungsinstanzhandle von TWAINInitialize erzeugt, |
|
|
msg |
Zeiger auf die Windows-Nachricht (Siehe GetMessage, PeekMessage, TramslateMessage etc.) |
|
|
hWnd |
Fensterhandle des Fensters, das eingelesene Bilder durch die Nachricht UWM_TWAINIMAGERECEIVED erhalten soll. |
|
|
Windows API: |
||
|
MSG msg; |
||
|
while (GetMessage(&msg,NULL,0,0)) |
||
|
{ |
||
|
if (!TWAINIsTwainMessage(TwainAccessHandle, &msg, hwMain)) |
||
|
{ TranslateMessage(&msg); |
||
|
DispatchMessage(&msg); |
||
|
} |
||
|
} |
||
|
Borland Delphi: |
||
|
type |
||
|
TDavForm = class(TForm) |
||
|
procedure MyAppMessage(var Msg: TMsg; var Handled: Boolean); procedure MnuOpenClick(Sender: Tobject); |
||
|
... |
||
|
if (TwainAccessHandle<>0) then |
||
|
Application.OnMessage:=MyAppMessage; |
||
|
... |
||
|
procedure TDavForm.MyAppMessage(var Msg: TMsg; var Handled: Boolean); |
||
|
begin |
||
|
if (TwainAccessHandle<>0) then |
||
|
Handled:=TWAINIsTwainMessage(TwainAccessHandle,Msg,Handle); |
||
|
end; |
||
|
Anmerkungen |
||
|
Die Anwendung kann bei Verwendung der Funktion TWAINGetImage auf die Veränderung der Windows-Nachrichtenbehandlung verzichten. |
||