init wcore stuff in lcoreinit, eliminating dependency on messageloop
[lcore.git] / lcorewsaasyncselect.pas
index b64797ae174c9f2959f0fb776a2be77a04ee481c..cde709bcd58c4cf2e1ccf9edd9fc55d4af2600d6 100755 (executable)
@@ -2,8 +2,10 @@ unit lcorewsaasyncselect;
 \r
 interface\r
 \r
+procedure lcoreinit;\r
 \r
 implementation\r
+\r
 uses wcore,lcore,bsearchtree,sysutils,windows,winsock,pgtypes,messages,classes,lsocket;\r
 type\r
   twineventcore=class(teventcore)\r
@@ -197,7 +199,12 @@ var
                                  lpszClassName : 'lcoreClass');\r
   GInitData: TWSAData;\r
 \r
+var\r
+  inited:boolean;\r
+procedure lcoreinit;\r
 begin\r
+  if (inited) then exit;\r
+\r
   eventcore := twineventcore.create;\r
   if Windows.RegisterClass(MyWindowClass) = 0 then halt;\r
   //writeln('about to create lcore handle, hinstance=',hinstance);\r
@@ -216,6 +223,12 @@ begin
   onaddtask := winaddtask;\r
   timerwrapperinterface := twintimerwrapperinterface.create(nil);\r
 \r
-  WSAStartup($200, GInitData);\r
+  WSAStartup(2, GInitData);\r
   absoloutemaxs := maxlongint;\r
+\r
+  wcoreinit;\r
+\r
+  inited := true;\r
+end;\r
+\r
 end.\r