procedure disconnecttasks(aobj:tobject);\r
 procedure exitmessageloop;\r
 procedure processmessages;\r
+procedure wcoreinit;\r
 \r
 var\r
   onshutdown:procedure(s:ansistring);\r
                                  lpszMenuName  : nil;\r
                                  lpszClassName : 'wcoreClass');\r
 \r
-procedure messageloop;\r
-var\r
-  MsgRec : TMsg;\r
+procedure wcoreinit;\r
 begin\r
-\r
   if Windows.RegisterClass(MyWindowClass) = 0 then halt;\r
   //writeln('about to create wcore handle, hinstance=',hinstance);\r
   hwndwcore := CreateWindowEx(WS_EX_TOOLWINDOW,\r
   {$endif}\r
 \r
 \r
+end;\r
+\r
+procedure messageloop;\r
+var\r
+  MsgRec : TMsg;\r
+\r
+begin\r
+\r
   while GetMessage(MsgRec, 0, 0, 0) do begin\r
     TranslateMessage(MsgRec);\r
     DispatchMessage(MsgRec);\r