PC Review


Reply
Thread Tools Rate Thread

[C#] How can I close an handle ?

 
 
=?Utf-8?B?RnJlZGR5Ym95?=
Guest
Posts: n/a
 
      2nd Jun 2005
Hi,

I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
I'd like to close this handle with CloseHandle Method in core.dll but it
seems to me that method has no effect.

I use DeleteObject but it seems to me there are small memory leaks...

How can I do ?

Thanks

Best Regards
 
Reply With Quote
 
 
 
 
=?Utf-8?B?QWxleCBZYWtobmluIFtNVlBd?=
Guest
Posts: n/a
 
      2nd Jun 2005
Which handle are you trying to de-allocate?

Could you show your code?
--
Alex Yakhnin, .NET CF MVP
www.intelliprog.com | www.opennetcf.org


"Freddyboy" wrote:

> Hi,
>
> I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> I'd like to close this handle with CloseHandle Method in core.dll but it
> seems to me that method has no effect.
>
> I use DeleteObject but it seems to me there are small memory leaks...
>
> How can I do ?
>
> Thanks
>
> Best Regards

 
Reply With Quote
 
Sergey Bogdanov
Guest
Posts: n/a
 
      2nd Jun 2005
The DeleteObject should work for you to delete bitmap (HBITMAP). How did
you know that you have "small memory leaks"?

--
Sergey Bogdanov
http://www.sergeybogdanov.com


Freddyboy wrote:
> Hi,
>
> I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> I'd like to close this handle with CloseHandle Method in core.dll but it
> seems to me that method has no effect.
>
> I use DeleteObject but it seems to me there are small memory leaks...
>
> How can I do ?
>
> Thanks
>
> Best Regards

 
Reply With Quote
 
=?Utf-8?B?RnJlZGR5Ym95?=
Guest
Posts: n/a
 
      3rd Jun 2005
Hi Alex, Hi Sergey

yes I can show my code of course.

[DllImport("coredll.dll", SetLastError=true)]
public static extern bool CloseHandle(IntPtr hObject);
....
// get an handle to a bitmap
IntPtr hBitmap;
hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
.....
// create bitmap with an handle
myBmp = BitmapBuffer.FromHbitmap(hBitmap);
....
// delete handle (unmanaged ressource) with close handle
CloseHandle(hBitmap); // the value which is return is false

// That's why I used DeleteObject
DeleteObject(hBitmap);

But when I analyse Memory with Majerus's tools (www.phm.lu), I can see the
memory is more and more used.

I think my problem is hBitmap.

CreateGreyImageInDeviceContext is a method which is in a C Dll. There are
some methods which send some messages and with methods I can perform a
preview and I can take some pictures. Maybe a problem with unmaneged Window
Message ? I know also compact framework service pack 3 which correct some
bugs with the marshalling between C# and C

What do you think about this ?

Thanks

Best Regards.

Fred



"Alex Yakhnin [MVP]" wrote:

> Which handle are you trying to de-allocate?
>
> Could you show your code?
> --
> Alex Yakhnin, .NET CF MVP
> www.intelliprog.com | www.opennetcf.org
>
>
> "Freddyboy" wrote:
>
> > Hi,
> >
> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> > I'd like to close this handle with CloseHandle Method in core.dll but it
> > seems to me that method has no effect.
> >
> > I use DeleteObject but it seems to me there are small memory leaks...
> >
> > How can I do ?
> >
> > Thanks
> >
> > Best Regards

 
Reply With Quote
 
=?Utf-8?B?RnJlZGR5Ym95?=
Guest
Posts: n/a
 
      3rd Jun 2005
Hi Sergey,

I used Majerus's tools (www.phm.lu) to analyse Memory. When my application
is running I can see memory is more and more used.

Thanks

"Sergey Bogdanov" wrote:

> The DeleteObject should work for you to delete bitmap (HBITMAP). How did
> you know that you have "small memory leaks"?
>
> --
> Sergey Bogdanov
> http://www.sergeybogdanov.com
>
>
> Freddyboy wrote:
> > Hi,
> >
> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> > I'd like to close this handle with CloseHandle Method in core.dll but it
> > seems to me that method has no effect.
> >
> > I use DeleteObject but it seems to me there are small memory leaks...
> >
> > How can I do ?
> >
> > Thanks
> >
> > Best Regards

>

 
Reply With Quote
 
Sergey Bogdanov
Guest
Posts: n/a
 
      3rd Jun 2005
I believe, the problem indeed that you do not free myHdc handle?

--
Sergey Bogdanov
http://www.sergeybogdanov.com


Freddyboy wrote:
> Hi Alex, Hi Sergey
>
> yes I can show my code of course.
>
> [DllImport("coredll.dll", SetLastError=true)]
> public static extern bool CloseHandle(IntPtr hObject);
> ...
> // get an handle to a bitmap
> IntPtr hBitmap;
> hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
> ....
> // create bitmap with an handle
> myBmp = BitmapBuffer.FromHbitmap(hBitmap);
> ...
> // delete handle (unmanaged ressource) with close handle
> CloseHandle(hBitmap); // the value which is return is false
>
> // That's why I used DeleteObject
> DeleteObject(hBitmap);
>
> But when I analyse Memory with Majerus's tools (www.phm.lu), I can see the
> memory is more and more used.
>
> I think my problem is hBitmap.
>
> CreateGreyImageInDeviceContext is a method which is in a C Dll. There are
> some methods which send some messages and with methods I can perform a
> preview and I can take some pictures. Maybe a problem with unmaneged Window
> Message ? I know also compact framework service pack 3 which correct some
> bugs with the marshalling between C# and C
>
> What do you think about this ?
>
> Thanks
>
> Best Regards.
>
> Fred
>
>
>
> "Alex Yakhnin [MVP]" wrote:
>
>
>>Which handle are you trying to de-allocate?
>>
>>Could you show your code?
>>--
>>Alex Yakhnin, .NET CF MVP
>>www.intelliprog.com | www.opennetcf.org
>>
>>
>>"Freddyboy" wrote:
>>
>>
>>>Hi,
>>>
>>>I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
>>>I'd like to close this handle with CloseHandle Method in core.dll but it
>>>seems to me that method has no effect.
>>>
>>>I use DeleteObject but it seems to me there are small memory leaks...
>>>
>>>How can I do ?
>>>
>>>Thanks
>>>
>>>Best Regards

 
Reply With Quote
 
Guest
Posts: n/a
 
      3rd Jun 2005
Are you ever disposing myBmp? Are you ever actually running out of memory?

-Chris



"Freddyboy" <(E-Mail Removed)> wrote in message
news:F49DDCAF-5BAC-4237-95A3-(E-Mail Removed)...
> Hi Alex, Hi Sergey
>
> yes I can show my code of course.
>
> [DllImport("coredll.dll", SetLastError=true)]
> public static extern bool CloseHandle(IntPtr hObject);
> ...
> // get an handle to a bitmap
> IntPtr hBitmap;
> hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
> ....
> // create bitmap with an handle
> myBmp = BitmapBuffer.FromHbitmap(hBitmap);
> ...
> // delete handle (unmanaged ressource) with close handle
> CloseHandle(hBitmap); // the value which is return is false
>
> // That's why I used DeleteObject
> DeleteObject(hBitmap);
>
> But when I analyse Memory with Majerus's tools (www.phm.lu), I can see the
> memory is more and more used.
>
> I think my problem is hBitmap.
>
> CreateGreyImageInDeviceContext is a method which is in a C Dll. There are
> some methods which send some messages and with methods I can perform a
> preview and I can take some pictures. Maybe a problem with unmaneged
> Window
> Message ? I know also compact framework service pack 3 which correct some
> bugs with the marshalling between C# and C
>
> What do you think about this ?
>
> Thanks
>
> Best Regards.
>
> Fred
>
>
>
> "Alex Yakhnin [MVP]" wrote:
>
>> Which handle are you trying to de-allocate?
>>
>> Could you show your code?
>> --
>> Alex Yakhnin, .NET CF MVP
>> www.intelliprog.com | www.opennetcf.org
>>
>>
>> "Freddyboy" wrote:
>>
>> > Hi,
>> >
>> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
>> > I'd like to close this handle with CloseHandle Method in core.dll but
>> > it
>> > seems to me that method has no effect.
>> >
>> > I use DeleteObject but it seems to me there are small memory leaks...
>> >
>> > How can I do ?
>> >
>> > Thanks
>> >
>> > Best Regards



 
Reply With Quote
 
=?Utf-8?B?RnJlZGR5Ym95?=
Guest
Posts: n/a
 
      3rd Jun 2005
I perform a dispose on myBmp and I dispose also myHdc.
Complete Code:
// Constructor
public NDImager()
{
// Get form handle
myHandle = GetActiveWindow();
if (myHandle != IntPtr.Zero)
{
// get handle device context
myHdc = OpenNETCF.Win32.Core.GetDC(myHandle);
// build a NDImagerMessageWindow object
myMsgWnd = new NDImagerMessageWindow(this);
}
}

// An other Method which used myBmp, myHdc ...
// this code is in a switch
// I think it's here there is a problem with memory

// get an handle to a bitmap
IntPtr hBitmap;
hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);

// delete last bitmap
if (myBmp != null)
{
myBmp.Dispose();
myBmp = null;
}

// if handle is not null
if (hBitmap != IntPtr.Zero)
{
// create bitmap with an handle
myBmp = NDBitmapBuffer.FromHbitmap(hBitmap);
// display bitmap
myPictureBox.Image = myBmp;
myPictureBox.Invalidate();

// delete handle (unmanaged ressource)
// the value which is returned by closehandle is false that's why I use
DeleteObject
DeleteObject(hBitmap);
}
protected void Dispose(bool disposing)
{
if (disposing)
{
// Stop Window Message
StopRunningWithMessageWnd();
Thread.Sleep(500);

// Remember to release the device context
OpenNETCF.Win32.Core.ReleaseDC(myHandle, myHdc);
myHdc = IntPtr.Zero;

if (myBmp != null)
{
myBmp.Dispose();
myBmp = null;
}

// Dispose Message Manager
myMsgWnd.Dispose();
myMsgWnd = null;
}
}

Do you have an idea with all code ?

Thanks

Best Regards


"<ctacke/>" wrote:

> Are you ever disposing myBmp? Are you ever actually running out of memory?
>
> -Chris
>
>
>
> "Freddyboy" <(E-Mail Removed)> wrote in message
> news:F49DDCAF-5BAC-4237-95A3-(E-Mail Removed)...
> > Hi Alex, Hi Sergey
> >
> > yes I can show my code of course.
> >
> > [DllImport("coredll.dll", SetLastError=true)]
> > public static extern bool CloseHandle(IntPtr hObject);
> > ...
> > // get an handle to a bitmap
> > IntPtr hBitmap;
> > hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
> > ....
> > // create bitmap with an handle
> > myBmp = BitmapBuffer.FromHbitmap(hBitmap);
> > ...
> > // delete handle (unmanaged ressource) with close handle
> > CloseHandle(hBitmap); // the value which is return is false
> >
> > // That's why I used DeleteObject
> > DeleteObject(hBitmap);
> >
> > But when I analyse Memory with Majerus's tools (www.phm.lu), I can see the
> > memory is more and more used.
> >
> > I think my problem is hBitmap.
> >
> > CreateGreyImageInDeviceContext is a method which is in a C Dll. There are
> > some methods which send some messages and with methods I can perform a
> > preview and I can take some pictures. Maybe a problem with unmaneged
> > Window
> > Message ? I know also compact framework service pack 3 which correct some
> > bugs with the marshalling between C# and C
> >
> > What do you think about this ?
> >
> > Thanks
> >
> > Best Regards.
> >
> > Fred
> >
> >
> >
> > "Alex Yakhnin [MVP]" wrote:
> >
> >> Which handle are you trying to de-allocate?
> >>
> >> Could you show your code?
> >> --
> >> Alex Yakhnin, .NET CF MVP
> >> www.intelliprog.com | www.opennetcf.org
> >>
> >>
> >> "Freddyboy" wrote:
> >>
> >> > Hi,
> >> >
> >> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> >> > I'd like to close this handle with CloseHandle Method in core.dll but
> >> > it
> >> > seems to me that method has no effect.
> >> >
> >> > I use DeleteObject but it seems to me there are small memory leaks...
> >> >
> >> > How can I do ?
> >> >
> >> > Thanks
> >> >
> >> > Best Regards

>
>
>

 
Reply With Quote
 
Chris Tacke, eMVP
Guest
Posts: n/a
 
      3rd Jun 2005
Do you actually run out of memory, or are you simply seeing usage increase?

--
Chris Tacke
Co-founder
OpenNETCF.org
Has OpenNETCF helped you? Consider donating to support us!
http://www.opennetcf.org/donate


"Freddyboy" <(E-Mail Removed)> wrote in message
news:A65FBE3C-3278-41BF-8936-(E-Mail Removed)...
>I perform a dispose on myBmp and I dispose also myHdc.
> Complete Code:
> // Constructor
> public NDImager()
> {
> // Get form handle
> myHandle = GetActiveWindow();
> if (myHandle != IntPtr.Zero)
> {
> // get handle device context
> myHdc = OpenNETCF.Win32.Core.GetDC(myHandle);
> // build a NDImagerMessageWindow object
> myMsgWnd = new NDImagerMessageWindow(this);
> }
> }
>
> // An other Method which used myBmp, myHdc ...
> // this code is in a switch
> // I think it's here there is a problem with memory
>
> // get an handle to a bitmap
> IntPtr hBitmap;
> hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
>
> // delete last bitmap
> if (myBmp != null)
> {
> myBmp.Dispose();
> myBmp = null;
> }
>
> // if handle is not null
> if (hBitmap != IntPtr.Zero)
> {
> // create bitmap with an handle
> myBmp = NDBitmapBuffer.FromHbitmap(hBitmap);
> // display bitmap
> myPictureBox.Image = myBmp;
> myPictureBox.Invalidate();
>
> // delete handle (unmanaged ressource)
> // the value which is returned by closehandle is false that's why I use
> DeleteObject
> DeleteObject(hBitmap);
> }
> protected void Dispose(bool disposing)
> {
> if (disposing)
> {
> // Stop Window Message
> StopRunningWithMessageWnd();
> Thread.Sleep(500);
>
> // Remember to release the device context
> OpenNETCF.Win32.Core.ReleaseDC(myHandle, myHdc);
> myHdc = IntPtr.Zero;
>
> if (myBmp != null)
> {
> myBmp.Dispose();
> myBmp = null;
> }
>
> // Dispose Message Manager
> myMsgWnd.Dispose();
> myMsgWnd = null;
> }
> }
>
> Do you have an idea with all code ?
>
> Thanks
>
> Best Regards
>
>
> "<ctacke/>" wrote:
>
>> Are you ever disposing myBmp? Are you ever actually running out of
>> memory?
>>
>> -Chris
>>
>>
>>
>> "Freddyboy" <(E-Mail Removed)> wrote in message
>> news:F49DDCAF-5BAC-4237-95A3-(E-Mail Removed)...
>> > Hi Alex, Hi Sergey
>> >
>> > yes I can show my code of course.
>> >
>> > [DllImport("coredll.dll", SetLastError=true)]
>> > public static extern bool CloseHandle(IntPtr hObject);
>> > ...
>> > // get an handle to a bitmap
>> > IntPtr hBitmap;
>> > hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
>> > ....
>> > // create bitmap with an handle
>> > myBmp = BitmapBuffer.FromHbitmap(hBitmap);
>> > ...
>> > // delete handle (unmanaged ressource) with close handle
>> > CloseHandle(hBitmap); // the value which is return is false
>> >
>> > // That's why I used DeleteObject
>> > DeleteObject(hBitmap);
>> >
>> > But when I analyse Memory with Majerus's tools (www.phm.lu), I can see
>> > the
>> > memory is more and more used.
>> >
>> > I think my problem is hBitmap.
>> >
>> > CreateGreyImageInDeviceContext is a method which is in a C Dll. There
>> > are
>> > some methods which send some messages and with methods I can perform a
>> > preview and I can take some pictures. Maybe a problem with unmaneged
>> > Window
>> > Message ? I know also compact framework service pack 3 which correct
>> > some
>> > bugs with the marshalling between C# and C
>> >
>> > What do you think about this ?
>> >
>> > Thanks
>> >
>> > Best Regards.
>> >
>> > Fred
>> >
>> >
>> >
>> > "Alex Yakhnin [MVP]" wrote:
>> >
>> >> Which handle are you trying to de-allocate?
>> >>
>> >> Could you show your code?
>> >> --
>> >> Alex Yakhnin, .NET CF MVP
>> >> www.intelliprog.com | www.opennetcf.org
>> >>
>> >>
>> >> "Freddyboy" wrote:
>> >>
>> >> > Hi,
>> >> >
>> >> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
>> >> > I'd like to close this handle with CloseHandle Method in core.dll
>> >> > but
>> >> > it
>> >> > seems to me that method has no effect.
>> >> >
>> >> > I use DeleteObject but it seems to me there are small memory
>> >> > leaks...
>> >> >
>> >> > How can I do ?
>> >> >
>> >> > Thanks
>> >> >
>> >> > Best Regards

>>
>>
>>



 
Reply With Quote
 
=?Utf-8?B?RnJlZGR5Ym95?=
Guest
Posts: n/a
 
      6th Jun 2005
Hi Chris,

I just see a usage increase.

Thanks.

"Chris Tacke, eMVP" wrote:

> Do you actually run out of memory, or are you simply seeing usage increase?
>
> --
> Chris Tacke
> Co-founder
> OpenNETCF.org
> Has OpenNETCF helped you? Consider donating to support us!
> http://www.opennetcf.org/donate
>
>
> "Freddyboy" <(E-Mail Removed)> wrote in message
> news:A65FBE3C-3278-41BF-8936-(E-Mail Removed)...
> >I perform a dispose on myBmp and I dispose also myHdc.
> > Complete Code:
> > // Constructor
> > public NDImager()
> > {
> > // Get form handle
> > myHandle = GetActiveWindow();
> > if (myHandle != IntPtr.Zero)
> > {
> > // get handle device context
> > myHdc = OpenNETCF.Win32.Core.GetDC(myHandle);
> > // build a NDImagerMessageWindow object
> > myMsgWnd = new NDImagerMessageWindow(this);
> > }
> > }
> >
> > // An other Method which used myBmp, myHdc ...
> > // this code is in a switch
> > // I think it's here there is a problem with memory
> >
> > // get an handle to a bitmap
> > IntPtr hBitmap;
> > hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
> >
> > // delete last bitmap
> > if (myBmp != null)
> > {
> > myBmp.Dispose();
> > myBmp = null;
> > }
> >
> > // if handle is not null
> > if (hBitmap != IntPtr.Zero)
> > {
> > // create bitmap with an handle
> > myBmp = NDBitmapBuffer.FromHbitmap(hBitmap);
> > // display bitmap
> > myPictureBox.Image = myBmp;
> > myPictureBox.Invalidate();
> >
> > // delete handle (unmanaged ressource)
> > // the value which is returned by closehandle is false that's why I use
> > DeleteObject
> > DeleteObject(hBitmap);
> > }
> > protected void Dispose(bool disposing)
> > {
> > if (disposing)
> > {
> > // Stop Window Message
> > StopRunningWithMessageWnd();
> > Thread.Sleep(500);
> >
> > // Remember to release the device context
> > OpenNETCF.Win32.Core.ReleaseDC(myHandle, myHdc);
> > myHdc = IntPtr.Zero;
> >
> > if (myBmp != null)
> > {
> > myBmp.Dispose();
> > myBmp = null;
> > }
> >
> > // Dispose Message Manager
> > myMsgWnd.Dispose();
> > myMsgWnd = null;
> > }
> > }
> >
> > Do you have an idea with all code ?
> >
> > Thanks
> >
> > Best Regards
> >
> >
> > "<ctacke/>" wrote:
> >
> >> Are you ever disposing myBmp? Are you ever actually running out of
> >> memory?
> >>
> >> -Chris
> >>
> >>
> >>
> >> "Freddyboy" <(E-Mail Removed)> wrote in message
> >> news:F49DDCAF-5BAC-4237-95A3-(E-Mail Removed)...
> >> > Hi Alex, Hi Sergey
> >> >
> >> > yes I can show my code of course.
> >> >
> >> > [DllImport("coredll.dll", SetLastError=true)]
> >> > public static extern bool CloseHandle(IntPtr hObject);
> >> > ...
> >> > // get an handle to a bitmap
> >> > IntPtr hBitmap;
> >> > hBitmap = NDCaptureUtility.CreateGreyImageInDeviceContext(myHdc);
> >> > ....
> >> > // create bitmap with an handle
> >> > myBmp = BitmapBuffer.FromHbitmap(hBitmap);
> >> > ...
> >> > // delete handle (unmanaged ressource) with close handle
> >> > CloseHandle(hBitmap); // the value which is return is false
> >> >
> >> > // That's why I used DeleteObject
> >> > DeleteObject(hBitmap);
> >> >
> >> > But when I analyse Memory with Majerus's tools (www.phm.lu), I can see
> >> > the
> >> > memory is more and more used.
> >> >
> >> > I think my problem is hBitmap.
> >> >
> >> > CreateGreyImageInDeviceContext is a method which is in a C Dll. There
> >> > are
> >> > some methods which send some messages and with methods I can perform a
> >> > preview and I can take some pictures. Maybe a problem with unmaneged
> >> > Window
> >> > Message ? I know also compact framework service pack 3 which correct
> >> > some
> >> > bugs with the marshalling between C# and C
> >> >
> >> > What do you think about this ?
> >> >
> >> > Thanks
> >> >
> >> > Best Regards.
> >> >
> >> > Fred
> >> >
> >> >
> >> >
> >> > "Alex Yakhnin [MVP]" wrote:
> >> >
> >> >> Which handle are you trying to de-allocate?
> >> >>
> >> >> Could you show your code?
> >> >> --
> >> >> Alex Yakhnin, .NET CF MVP
> >> >> www.intelliprog.com | www.opennetcf.org
> >> >>
> >> >>
> >> >> "Freddyboy" wrote:
> >> >>
> >> >> > Hi,
> >> >> >
> >> >> > I have an handle on a bitmap (FromHBitmap by Alex Yakhnin).
> >> >> > I'd like to close this handle with CloseHandle Method in core.dll
> >> >> > but
> >> >> > it
> >> >> > seems to me that method has no effect.
> >> >> >
> >> >> > I use DeleteObject but it seems to me there are small memory
> >> >> > leaks...
> >> >> >
> >> >> > How can I do ?
> >> >> >
> >> >> > Thanks
> >> >> >
> >> >> > Best Regards
> >>
> >>
> >>

>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
unlock file, close handle, kill process that holds it? Sergei Shelukhin Microsoft Dot NET 0 11th Dec 2007 12:40 PM
Close file handle to rewrite in teh same VB session Bill Nguyen Microsoft VB .NET 3 20th Apr 2005 03:22 PM
How to release the file handle when FileStream.Close() throws? =?Utf-8?B?am9lbA==?= Microsoft Dot NET Framework 2 11th Mar 2005 11:17 PM
close handle of opened file The Clansman Microsoft VB .NET 2 12th Jan 2005 09:27 PM
Event that handle "close browser" Metallica Microsoft ASP .NET 6 22nd Sep 2004 12:57 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 10:26 AM.