Hi Francois,

Yes it works this way as well! I am happy to see ICS even higher quality and 
being a part of it!!

SZ

----- Original Message ----- 
From: "Francois PIETTE" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Sunday, December 25, 2005 9:55 PM
Subject: Re: [twsocket] SOLUTION (POSSIBLE NOFORMS BUG) Cannot create 
ahiddenwindows for TWSocket


> Arno confirmed your message.
> I looked at the code.
> You are probably right. But I think the cure is to fix 
> XSocketDeallocateHWnd
> (in wsocket.pas) so that all other unit using it is fixed at once:
>
> function XSocketDeallocateHWnd(Wnd: HWND): boolean;
> begin
>    SetWindowLong(Wnd, 0, 0);              // <== ADDED
>    Result := DestroyWindow(Wnd);
> end;
>
> With this fix, the line "SetWindowLong(FWindowHandle, 0, 0);" can be 
> removed
> from DeallocateSocketHWnd:
>
> procedure TCustomWSocket.DeallocateSocketHWnd;
> begin
> {$IFDEF DELPHI1}
>    DeallocateHWnd(FWindowHandle);
> {$ELSE}
>    { Wilfried added check for existing window }
>    if FWindowHandle = 0 then
>        Exit;
>
>    { Remove the object reference from the window }
> //    SetWindowLong(FWindowHandle, 0, 0);            <=== REMOVED
>    {
>         }
>    { if Destructor call's here and it is wrong thread it will not
>     }
>    { so no need to check Thread Id here, it is done in the
> eadDetach    }
>    { method
> ndowHandle);                          }
>    if XSocketDeallocateHWnd(FWindowHandle) then
>        FWindowHandle := 0;
> {$ENDIF}
> end;
>
> Can you verify it works with your test case ?
> Thanks !
>
> --
> [EMAIL PROTECTED]
> http://www.overbyte.be
>
>
> ----- Original Message ----- 
> From: "Fastream Technologies" <[EMAIL PROTECTED]>
> To: "ICS support mailing" <twsocket@elists.org>
> Sent: Saturday, December 24, 2005 8:27 AM
> Subject: [twsocket] SOLUTION (POSSIBLE NOFORMS BUG) Cannot create a
> hiddenwindows for TWSocket
>
>
>> Hello FRancois and Arno,
>>
>> I found a cure for the problem:
>>
>> SetWindowLong(Handle, 0, 0)); // in both THttpConnection and THttpCli
>> descendents' ddestructor
>>
>> SetWindowLong(FCtrlSocket->Handle, 0, 0); // in THttpCli destructor.
>>
>> I am using TService, NOFORMS and MT and I am constructing/destructing in
>> the
>> same listener thread with correct (no errors) thread(de/at)tach BUT 
>> UNLESS
>> YOU ADD THE ABOVE LINES THAT I BORROWED FROM ICS, APPLICATION CRASHES!
>>
>> FYI.
>>
>> SubZero
>>
>> ----- Original Message ----- 
>> From: "Fastream Technologies" <[EMAIL PROTECTED]>
>> To: "ICS support mailing" <twsocket@elists.org>
>> Sent: Friday, December 23, 2005 8:44 PM
>> Subject: Re: [twsocket] Cannot create a hidden windows for TWSocket
>>
>>
>>> The problem persists!!! :((((
>>>
>>> This load balancer has two sockets per client: one inward and one
>>> outward.
>>> The destroyHTTPClient is the THttpCli for the web server connection.
>>>
>>> Regards,
>>>
>>> SZ
>>>
>>> ----- Original Message ----- 
>>> From: "Arno Garrels" <[EMAIL PROTECTED]>
>>> To: "ICS support mailing" <twsocket@elists.org>
>>> Sent: Friday, December 23, 2005 7:50 PM
>>> Subject: Re: [twsocket] Cannot create a hidden windows for TWSocket
>>>
>>>
>>>> Fastream Technologies wrote:
>>>>> The error occurs when the client is disconnected. The problematic
>>>>> message
>>>>> ID is 1025. Here is the non-ICS code:
>>>>>
>>>>> void __fastcall httpServerClientClass::TriggerSessionClosed(WORD
>>>>> ErrCode)
>>>>> {
>>>>>         if(!FSessionClosedFlag && !serverThread->isTerminated())
>>>>>         {
>>>>>                 FSessionClosedFlag = true;
>>>>>
>>>>>                 if(FServer)
>>>>>                 {
>>>>>                         if(affinityThread)
>>>>>                         {
>>>>>                                 destroyHTTPClient();
>>>>>                                 ThreadDetach();
>>>>>
>>>>> PostThreadMessage(serverThread->ThreadID,
>>>>> WM_DESTROY_CLIENT, (unsigned int)this, 0);
>>>>>                 }
>>>>> }
>>>>
>>>> What is destroyHTTPClient()?
>>>>
>>>>>
>>>>> and the message handler is (in the listener thread):
>>>>>
>>>>> case WM_DESTROY_CLIENT:
>>>>>                 {
>>>>>                         httpServerClientClass *client =
>>>>> (httpServerClientClass*)(void*)msg.wParam;
>>>>>                         client->ThreadAttach();
>>>>>                         client->Release();
>>>>>                         break;
>>>>>                 }
>>>>
>>>>
>>>>
>>>>>
>>>>> HTH,
>>>>>
>>>>> SZ
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Francois Piette" <[EMAIL PROTECTED]>
>>>>> To: <twsocket@elists.org>
>>>>> Sent: Friday, December 23, 2005 11:35 AM
>>>>> Subject: [twsocket] Cannot create a hidden windows for TWSocket
>>>>>
>>>>>
>>>>>>> Ok. The problem when I attach the debugger to the service process
>>>>>>> seems
>>>>>>> to
>>>>>>> be "Cannot create a hidden windows for TWSocket.". Any cure for 
>>>>>>> this?
>>>>>>
>>>>>> You should try to get windows error number/message to know more.
>>>>>> Usually you get this when Windows run out of resources.
>>>>>> The error created in XSocketAllocateHWnd. Grab the error number by
>>>>>> calling GetLastError. Maybe this
>>>>>> error number will tell more.
>>>>>>
>>>>>> --
>>>>>> Contribute to the SSL Effort. Visit
>>>>>> http://www.overbyte.be/eng/ssl.html
>>>>>> --
>>>>>> [EMAIL PROTECTED]
>>>>>> Author of ICS (Internet Component Suite, freeware)
>>>>>> Author of MidWare (Multi-tier framework, freeware)
>>>>>> http://www.overbyte.be
>>>>>>
>>>>>>
>>>>>> --
>>>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>>>> Visit our website at http://www.overbyte.be
>>>> -- 
>>>> To unsubscribe or change your settings for TWSocket mailing list
>>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>>> Visit our website at http://www.overbyte.be
>>>
>>> -- 
>>> To unsubscribe or change your settings for TWSocket mailing list
>>> please goto http://www.elists.org/mailman/listinfo/twsocket
>>> Visit our website at http://www.overbyte.be
>>
>> -- 
>> To unsubscribe or change your settings for TWSocket mailing list
>> please goto http://www.elists.org/mailman/listinfo/twsocket
>> Visit our website at http://www.overbyte.be
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to