X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/d63fdd677fc6ab221d92999630627bd1a0b8afd4..3ac664ec654230b9ad26ab12242c1db6f636a26f:/wcore.pas

diff --git a/wcore.pas b/wcore.pas
index 928486f..e79fc10 100755
--- a/wcore.pas
+++ b/wcore.pas
@@ -1,8 +1,3 @@
-{ Copyright (C) 2005 Bas Steendijk and Peter Green
-  For conditions of distribution and use, see copyright notice in zlib_license.txt
-  which is included in the package
-  ----------------------------------------------------------------------------- }
-
 unit wcore;
 
 {
@@ -63,6 +58,7 @@ procedure addtask(ahandler:ttaskevent;aobj:tobject;awparam,alparam:longint);
 procedure disconnecttasks(aobj:tobject);
 procedure exitmessageloop;
 procedure processmessages;
+procedure wcoreinit;
 
 var
   onshutdown:procedure(s:ansistring);
@@ -272,22 +268,17 @@ function MyWindowProc(
 var
     MsgRec : TMessage;
     a:integer;
-    handled:boolean;
 begin
   Result := 0;  // This means we handled the message
 
-  handled := false;
-
   {MsgRec.hwnd    := ahWnd;}
   MsgRec.wParam  := awParam;
   MsgRec.lParam  := alParam;
 
-  if (ahwnd = hwndwcore) then begin
-   dotasks;
-   case auMsg of
+  dotasks;
+  case auMsg of
     {$ifndef threadtimer}
     WM_TIMER: begin
-      handled := true;
       if msgrec.wparam = timerid_wcore then begin
         a := wcore_timehandler;
         killtimer(hwndwcore,timerid_wcore);
@@ -299,15 +290,14 @@ begin
     {WINMSG_TASK:dotasks;}
 
     WM_CLOSE: begin
-      handled := true;
+      {}
     end;
     WM_DESTROY: begin
-      handled := true;
+      {}
     end;
-   end;
+  else
+      Result := DefWindowProc(ahWnd, auMsg, awParam, alParam)
   end;
-
-  if not handled then Result := DefWindowProc(ahWnd, auMsg, awParam, alParam)
 end;
 
 
@@ -323,11 +313,8 @@ var
                                  lpszMenuName  : nil;
                                  lpszClassName : 'wcoreClass');
 
-procedure messageloop;
-var
-  MsgRec : TMsg;
+procedure wcoreinit;
 begin
-
   if Windows.RegisterClass(MyWindowClass) = 0 then halt;
   //writeln('about to create wcore handle, hinstance=',hinstance);
   hwndwcore := CreateWindowEx(WS_EX_TOOLWINDOW,
@@ -350,6 +337,14 @@ begin
   {$endif}
 
 
+end;
+
+procedure messageloop;
+var
+  MsgRec : TMsg;
+
+begin
+
   while GetMessage(MsgRec, 0, 0, 0) do begin
     TranslateMessage(MsgRec);
     DispatchMessage(MsgRec);
@@ -370,12 +365,13 @@ end;
 
 function ProcessMessage : Boolean;
 var
-    Msg : TMsg;
+    MsgRec : TMsg;
 begin
     Result := FALSE;
-    if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin
+    if PeekMessage(MsgRec, 0, 0, 0, PM_REMOVE) then begin
       Result := TRUE;
-      DispatchMessage(Msg);
+      TranslateMessage(MsgRec);
+      DispatchMessage(MsgRec);
     end;
 end;
 
@@ -386,3 +382,4 @@ end;
 
 
 end.
+