[VB6] ActiveX CommonControls (Replacement of the MS common controls)-VBForums
Results 1 to 9 of 9

Thread: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

  1. #1

    Thread Starter
    Fanatic Member
    Join Date
    Jun 2012
    Posts
    611

    [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    This is the ActiveX Control version that comes out of the Std-EXE version.

    Current version: 1.4.15

    The development state of the ActiveX Control version does not necessarily match to the Std-EXE version.
    That comes because the Std-EXE version is the "leading source" and the ActiveX Control version is derived from the Std-EXE version after a certain time.
    Reason why is that it is not practicable to release a new ActiveX Control after each new feature.
    However, certain bugfixes can and will be implemented into the current ActiveX Control version. (Revision)

    It is not recommended to use the source code to compile another binary.
    If own modification is necessary please rename the library to avoid redundancies.

    Advantageous compared to the Std-EXE version is that all property pages support Unicode.

    All controls are marked as "Safe for Initialization and Scripting" by the IObjectSafety interface.
    In order to mark the CommonDialog class also "Safe" it is necessary to run the following .reg file:
    Code:
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\CLSID\{FA34BDD0-8273-4694-8DB7-F863D3133584}\Implemented Categories]
    
    [HKEY_CLASSES_ROOT\CLSID\{FA34BDD0-8273-4694-8DB7-F863D3133584}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
    
    [HKEY_CLASSES_ROOT\CLSID\{FA34BDD0-8273-4694-8DB7-F863D3133584}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
    Also everything is 100% IDE-Safe.

    Here is a solution to use the VBCCR14.OCX Registration-Free. (Side-by-side)
    Keep in mind that this technology needs at minimum Windows XP SP2 or Windows Server 2003.

    Tutorial:
    The "Development" machine needs to register the VBCCR14.OCX as usual and use the components for e.g. in a Std-EXE project.
    The source project needs to include the Side-by-side resources. (see below)
    Then on the "End user" machine you only need the VBCCR14.OCX and the .exe (Std-EXE project) on the same folder.
    It will work then without any registration.

    The source code of "VBCCR14SideBySide.res" is:

    Code:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
       <file name="VBCCR14.OCX">
          <typelib tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" version="1.0" flags="control" helpdir="" />
          <comClass clsid="{FA34BDD0-8273-4694-8DB7-F863D3133584}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.CommonDialog" />
          <comClass clsid="{E9576A24-838A-4B69-B8C9-063F9DE30A6D}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{5AFEEEF5-8C47-45A1-8646-CA56BC966060}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.UpDown" />
          <comClass clsid="{F6A47357-9766-43D0-8862-2E5D8912C551}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{33EE7765-244F-430A-B5D0-61B5D5087642}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.TreeView" />
          <comClass clsid="{EB4EA217-1D71-4372-B1E6-6091BC34947E}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{3476027A-6C84-4EC6-ADCE-A6D786CDF103}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ToolBar" />
          <comClass clsid="{7EA9C304-34A9-413A-996E-E94525E5EEC9}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{6D0410C8-ACEE-43B1-A412-7DCBFB1F06BB}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.TextBoxW" />
          <comClass clsid="{D9ABEA51-C354-4057-B18E-FDD11A6886AC}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{08CE8C1F-7992-4B64-BC14-3897887ABC23}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{8264A5C0-71AD-40B7-B0C9-EC415325D4CE}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.TabStrip" />
          <comClass clsid="{621F5341-4006-4D00-9052-7C68955609E5}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{6B4985AB-D039-4AD4-90A4-B0C831499DF3}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.SysInfo" />
          <comClass clsid="{B0277B53-BD73-4F6B-8718-BA6068F7EB6B}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{827BBAA2-DFD6-4D67-86B8-3548E9C39C4F}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{64F18345-A294-4B25-8E88-BE6DDF9BA730}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.StatusBar" />
          <comClass clsid="{1229BCAA-4311-4553-8D7A-3EF0A001D039}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.SpinBox" />
          <comClass clsid="{58CE17AD-066F-4D39-ACD1-D43479D24048}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{BB99FD24-BC54-456B-9819-CF246A358551}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{D7CAE4F3-6079-4A78-98EB-8A619CB80D51}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.Slider" />
          <comClass clsid="{6625D827-0725-487E-AF4E-2D5EC736A38E}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{9F05614C-26D1-4799-BA5F-A8389F8BA2D6}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{08A53AB8-0760-4429-BE93-0222C3B5DC4F}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.RichTextBox" />
          <comClass clsid="{D5B75237-63AC-46D9-A977-61E7FE957B66}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ProgressBar" />
          <comClass clsid="{9EA8876D-30FB-4001-98B4-55DD9686BD6C}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{9707FE7E-6FDA-468D-903D-AE83EFF51156}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.Pager" />
          <comClass clsid="{6DD651D4-2F48-4914-B72C-ED428F2D2823}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{5328FEC5-4CAA-40E6-9DA5-A3FCA5706BEC}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.OptionButtonW" />
          <comClass clsid="{C13DEF10-AD23-426E-B5BC-81C2CB8FDD41}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{12817B7B-20D8-4B3A-90F2-BCB6EDACD340}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.MonthView" />
          <comClass clsid="{06BDFC1B-26C0-49E9-9617-21246788AF6D}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.MCIWnd" />
          <comClass clsid="{F78DB7AD-D236-496D-830E-B4877F775C68}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{DB01458F-AC34-4389-B22E-8B31ADB8336A}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ListView" />
          <comClass clsid="{8FB13ECE-9F93-4478-9AE9-B4FE3C895ADD}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{BAA0BDE8-4971-48F8-B112-BA62FB126BEE}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{7278EDB8-2027-417C-B2DE-37DABE4A8908}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ListBoxW" />
          <comClass clsid="{BB1F2CA8-32B4-4756-962D-F8793B06BF48}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.LabelW" />
          <comClass clsid="{788CD621-BCFF-435E-896F-FF262A95D09F}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.IPAddress" />
          <comClass clsid="{F1901D3C-A8EA-4661-94F4-0D78F25C442A}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{F889EFF8-DB23-4990-AD5C-3A321CA792EB}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ImageList" />
          <comClass clsid="{5B15D76E-85E4-4684-8572-94C7B196BFE5}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{2BC1D82D-E8CB-4261-99E4-4453C3B49A56}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ImageCombo" />
          <comClass clsid="{CE9A3FC3-90B9-48A3-BA38-8B86622DDC80}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{643023B8-35DC-400A-AE59-E7BD4270B595}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.HotKey" />
          <comClass clsid="{D4683043-F846-4462-953A-2229EC1F23CE}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.FrameW" />
          <comClass clsid="{10157A68-DC16-4E3A-B665-FCBC9F9D70EC}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{13B08C6C-5210-4EE6-B891-36E93D78771B}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.DTPicker" />
          <comClass clsid="{02B4F984-3DC9-4FB6-A69F-70C4747FC7E1}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.CoolBar" />
          <comClass clsid="{A380B369-1371-4559-98D3-0DC6FBAFA4F9}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{38CD73E0-75F0-42C9-8F27-265DE9EC468F}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{20128D51-D6E0-4C38-8F97-5E4CC26643A6}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.CommandButtonW" />
          <comClass clsid="{BF1CC364-B236-4993-B5FA-4A60D15F247B}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.ComboBoxW" />
          <comClass clsid="{473AAF7E-EF84-40FE-BA25-F555EC8A4EA7}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.CheckBoxW" />
          <comClass clsid="{1629B24C-3AE2-41C9-9E45-B7DD06D54CBD}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{1328704D-FAA4-4969-B3CB-DA3DF422C3B5}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.Animation" />
          <comClass clsid="{FC8C032F-0F57-4400-936E-35B82322473B}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.LinkLabel" />
          <comClass clsid="{20F1D9E7-2936-4CEB-B22A-3BD14F9943C7}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
          <comClass clsid="{26C800D4-B0D2-4EE0-B1F5-AA65E83BED7B}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" progid="VBCCR14.CommandLink" />
          <comClass clsid="{DF3EE51D-D512-4997-B644-C95A05673ABB}" tlbid="{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}" threadingModel="Apartment" />
       </file>
    </assembly>
    The attached file VBCCR14.OCX.zip.docx should be renamed to VBCCR14.OCX.zip after download.
    The .docx extension was necessary so it could be uploaded. (there is a file limit of 500 KB for .zip extension)
    Attached Files Attached Files
    Last edited by Krool; Apr 21st, 2017 at 04:51 PM.

  2. #2
    Hyperactive Member
    Join Date
    Jul 2013
    Posts
    275

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Thank you very much
    Carlos

  3. #3
    New Member
    Join Date
    Oct 2016
    Posts
    13

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Thank you very much

  4. #4
    Addicted Member
    Join Date
    Oct 2005
    Posts
    234

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Hey guys - thanks for the great work. I'm having a problem though. First off the demo app crashes VB6 when I load the main form.

    I made a new form and added controls to it one by one. I ran into a snag when I added the Link Label control. I get "The Linklabel control requires at least version 6.0 of comctl32.dll. in order to use it, you have to define a manifest file for your application. For using the control in the VB6 IDE, define a manifest file for VB6".

    The command Link control says almost exactly the same thing except it says i need version 6.1 of comctl32.dll

    Any idea where a guy can get comctl32? Any idea where I could get a manifest file for VB6 (or what that means?)

  5. #5

    Thread Starter
    Fanatic Member
    Join Date
    Jun 2012
    Posts
    611

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Quote Originally Posted by Darkbob View Post
    Hey guys - thanks for the great work. I'm having a problem though. First off the demo app crashes VB6 when I load the main form.

    I made a new form and added controls to it one by one. I ran into a snag when I added the Link Label control. I get "The Linklabel control requires at least version 6.0 of comctl32.dll. in order to use it, you have to define a manifest file for your application. For using the control in the VB6 IDE, define a manifest file for VB6".

    The command Link control says almost exactly the same thing except it says i need version 6.1 of comctl32.dll

    Any idea where a guy can get comctl32? Any idea where I could get a manifest file for VB6 (or what that means?)
    The comctl32 is already there. A manifest file just says which version you want to use.
    Follow the instructions here to enable the IDE for using the 6.x comctl32. And add the VBCCR14SideBySideAndVisualStyles.res to your app to enable your compiled .exe to use the 6.x comctl32.

  6. #6
    Addicted Member
    Join Date
    Oct 2005
    Posts
    234

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Thanks for the reply. I did follow the instructions and made a new VB6.EXE file. Added all the indicated resource files - all 3 listed above - and put the new EXE in the proper folder, replaced the existing VB6.EXE, rebooted and re-ran the demo project.

    Similar error followed by the IDE crashing.

    The error is happening because ComCtlsSupportLevel() returns a zero. The source code responds with an error message saying

    "To use this functionality, you must provide a manifest specifying comctl32.dll version 6.0 or higher."

    Sad that such an amazing project and the demo just doesn't work at all.
    Last edited by Darkbob; Jan 29th, 2017 at 11:40 AM.

  7. #7
    Addicted Member
    Join Date
    Oct 2005
    Posts
    234

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Pretty impressive work! I've managed to use the OCX file. No luck with any of the side by side stuff. I'm just lost in that area. And the demo crashes and locks up VB. So that doesn't exactly instill confidence. But other than that, it's quite the project. Thanks!

  8. #8
    New Member
    Join Date
    Mar 2017
    Posts
    3

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    Thanks for the project. This is really helpful. But I have a problem when I am trying to use this ActiveX CommonControls with my project to support Unicode. But it works only with developing machine. When I tried to run the project in another computer after registering the VBCCR14.OCX, it gives me a error message "Error in loading DLL". Could you please tell me how do I solve this issue?

  9. #9
    New Member
    Join Date
    Apr 2017
    Posts
    4

    Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)

    First and foremost, thanks a ton to Krool for this wonderful effort. This is absolutely marvelous and it is pretty exciting to go through the various aspects of this project (Replacement of the MS common controls). Though I am interested in all the controls, as of now, my primary interest is on the RichTexBox. So, I started experimenting with it and I encountered some problems.

    I am listing the problems below along with a code snippet to illustrate the problems. Please note that I am new to this forum and this is the first time I am writing here. So, in case I have not followed any protocols related to posting, kindly bear with me and please do guide me for later posts. Also, in case I have understood things completely wrongly about one or more aspects of either the RichTextBox control of this project or of this project itself and that is the reason for me facing the following problems, then kindly correct my understanding and kindly guide me as to what to do to set right the following problems.

    Problems:
    1. When I set some string (e.g. "a") for a RichTexBox control (say, named 'rtb1') and then compare the text with the same string (i.e. if rtb1.text = "a"), the comparison does not return true. Also, adding some string to the end of 'rtb1' results in characters not present in the string getting added (and displayed). I found that space in the original string was always getting replaced by a character whose Unicode value was U2000 (Decimal - 8192). Same with other characters, as far as I observed. A specific character (say 'a') was always getting replaced by one other specific character.

    2. 'Len' and 'Instr' consider "VbCrLf"s fully whereas 'SelStart' and 'Find' ignore the Lf in "VbCrLf"s. Because of this, inconsistencies arise.

    The code below illustrates what happens because of the above two problems. It needs a Form with a CommandButton (Command1) and a RichTextBox (named 'rtb1')
    Code:
    Private Sub Command1_Click()
      
      Dim s As String
      
      s = " a " & vbCrLf & vbCrLf & " ab"
      
      rtb1.Text = s
      If rtb1.Text = s Then
        MsgBox "yes"
      End If
      
      MsgBox "Length = " & Len(rtb1.Text) '10 is displayed
      rtb1.SelStart = Len(rtb1.Text)
      MsgBox "Selstart = " & rtb1.SelStart '8 is displayed
        
      MsgBox "Instr b = " & InStr(rtb1.Text, "b") '10 is displayed
      MsgBox "Find b = " & rtb1.Find("b") '7 is displayed
      
      rtb1.Text = rtb1.Text & s 'characters not present in string 's' get added (and displayed)
                                
    End Sub
    Note-1:
    After working on "problem 1" for around 6 hours - to find its cause and a possible solution, I finally set right the problem at my end by introducing a line of code in the following function of 'RichTextBox.ctl'.
    Code:
    Private Function StreamStringOut(ByRef Value As String, ByVal Flags As Long) As Long.
    I added the following line
    Code:
    value = left$(value, len(value))
    after the line
    Code:
    Value = RtfStreamStringOut()
    in the aforesaid 'StreamStringOut' function.

    I am not at all suggesting that the inclusion of the above line of code is the right thing to do. I am just mentioning what I did so that it can serve as a tip to Krool or any other member to find out the right thing to be done, eventually.

    Note-2:
    As of now, I do need VbCrLf in my programs. So, I would be happy if the eventual solution does consider VbCrLf fully so that it is consistent with the behavior of the normal RichTextBox (RICHTX32.OCX component, I mean).

    Note-3:
    I have tested with the latest version of the ocx control (1.4.11). My system is Windows 7, 64-bit.

    A few queries now:
    1. The links in the RichTextBox are not clickable. I have to set some property on or off to make them clickable? If so, what is that property? If not, is anything planned for making the links clickable in future?
    2. The normal RichTextBox wraps text around even if horizontal scroll bar is set. The RichTextBox of this project wraps text around only when the horizontal scroll bar is not set. Can the RichTextBox of this project also made to wrap text around even if horizontal scroll bar is set?

    Thanks.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Featured


Click Here to Expand Forum to Full Width

Survey posted by VBForums.