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. |