\r
   end;\r
 \r
+procedure init;\r
+\r
 implementation\r
 uses\r
   { zipplet: moved pgtypes to interface because it's needed for the string definitions }\r
                                  hbrBackground : 0;\r
                                  lpszMenuName  : nil;\r
                                  lpszClassName : 'dnswinClass');\r
+procedure init;\r
 begin\r
 \r
     if Windows.RegisterClass(MyWindowClass) = 0 then halt;\r
                                nil);      { CreateParam   }\r
   //writeln('dnswin hwnd is ',hwnddnswin);\r
   //writeln('last error is ',GetLastError);\r
+end;\r
+\r
+\r
 end.\r
 
 \r
 implementation\r
 \r
-uses wcore,lcore,bsearchtree,sysutils,windows,winsock,pgtypes,messages,classes,lsocket;\r
+uses\r
+  dnswin, //to call init\r
+  wcore,lcore,bsearchtree,sysutils,windows,winsock,pgtypes,messages,classes,lsocket;\r
+\r
 type\r
   twineventcore=class(teventcore)\r
   public\r
 begin\r
   if (inited) then exit;\r
 \r
+  dnswin.init;\r
+\r
   eventcore := twineventcore.create;\r
   if Windows.RegisterClass(MyWindowClass) = 0 then halt;\r
   //writeln('about to create lcore handle, hinstance=',hinstance);\r