-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
MountainMan
Krool,
I have 3 questions regarding using the OCX version of the controls.
1 - What modules, if any, of the Std-EXE version need to be included when we use the OCX version? You have 3 modules int eh Std-EXE version that are general to all of the forms, Common.bas, Startup.bas and VisualStyles.bas. Are any of these needed to use the OCX version?
2 - In the Std-EXE version demo, at the start of each of the forms is code to call SetupVisualStylesFixes which resides int he aforementioned VisualStyles.bas module. Do we need to do this at the start of any/all our forms to get theming and visual styles or is that done automatically in the OCX version?
3 - If these are no specials subs to run at startup using the OCX version, then is there still the requirement that the program starts from Sub Main instead of going to a form? If so, what initialization code should we call before going to a form?
As a general comment, it might be nice to have a simple sample using the OCX version which would help us understand what we need to do besides side-by-side to get it to work with modern themes etc. If you want, I could cook up your Std-EXE sample for use with the OCX if you can help me understand the start-up things like in my questions above.
Thanks.
Using VBCCR16.OCX is no different than using COMCTL32.OCX. Again: No difference.
What do you do to get theming? You make a manifest file
What do you do to use COMCTL32.OCX regfree ? You make a manifest file, same for VBCCR16.OCX
VisualStyles.bas is only helping by fixing some issues with the theming, mostly for the intrinsic VB.Controls.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
In the StdEXE version of these controls you added the VListBox on 6/23/2020 control and on 7/24/2020 you added the VListBox control. When I use the current latest version here (v1.6.126) of the OCX version I do not see these controls available for use. Have you not included them yet? If so, does that mean they won't be available until version 1.7?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
MountainMan
In the StdEXE version of these controls you added the VListBox on 6/23/2020 control and on 7/24/2020 you added the VListBox control. When I use the current latest version here (v1.6.126) of the OCX version I do not see these controls available for use. Have you not included them yet? If so, does that mean they won't be available until version 1.7?
Yes. 1.7 will be released soon and then all will be updated.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thanks. I am just about to release an update tot he compile utility and wanted to make sure I wasn't doing something dumb...
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Update released.
VBCCR17.OCX
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
In your new OCX there are 34 controls but 64 GUID's. I am trying to get the updater fixed for this new version but I have a question about those GUID's that don't have control names associated with them. In previous versions, the order of the GUID's and controls were all in the same order but this time you changed them a lot. My basic question is can these GUID's not associated with a control name who up as such in someone's project? If not I can just upgrade controls from earlier versions to 1.7 and basically not pay attention to these GUID's but if they can show up in someone's code then I have to relate each one to the previous unnamed GUID's and I might need some help learning which ones go with which controls.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
MountainMan
In your new OCX there are 34 controls but 64 GUID's. I am trying to get the updater fixed for this new version but I have a question about those GUID's that don't have control names associated with them. In previous versions, the order of the GUID's and controls were all in the same order but this time you changed them a lot. My basic question is can these GUID's not associated with a control name who up as such in someone's project? If not I can just upgrade controls from earlier versions to 1.7 and basically not pay attention to these GUID's but if they can show up in someone's code then I have to relate each one to the previous unnamed GUID's and I might need some help learning which ones go with which controls.
The GUID's are now sorted alphabetically. (beside CommonDialog class kept on top)
All unnamed GUID's belong to their "upper" control.
Example: the GUID C3853FC8-E7D9-43D4-88AA-4DF0651E66B1 is unnamed, but the prior GUID is stated VBCCR17.Animation. So their belong to each other.
And so on.
Code:
clsid="{068A3E97-D041-4248-AEEE-56B09D8D037C}" progid="VBCCR17.CommonDialog" />
clsid="{9602627B-40A9-4638-B4CD-39A365F85432}" progid="VBCCR17.Animation" />
clsid="{C3853FC8-E7D9-43D4-88AA-4DF0651E66B1}" />
clsid="{5F2AB905-9655-4A13-9F7E-433EDFF185F2}" progid="VBCCR17.CheckBoxW" />
clsid="{14959488-6EF6-4323-A7CB-7165F32D8CC2}" progid="VBCCR17.ComboBoxW" />
clsid="{A6C631D4-7449-44DC-9AD2-D86357554975}" progid="VBCCR17.CommandButtonW" />
clsid="{5B07381D-39B9-40BF-9EE3-AF0636276897}" progid="VBCCR17.CommandLink" />
clsid="{8AC46A3E-727E-48EC-A063-4FC42CB744F4}" />
clsid="{03F663A5-EF57-4F73-BDAF-31C5E673B739}" progid="VBCCR17.CoolBar" />
clsid="{1908EE8D-074B-4C73-A650-02BE9202D3A2}" />
clsid="{4BFD0894-5927-4DF9-B65C-19632904D2BC}" />
clsid="{ED9B663D-A5CA-4D5F-A35E-F337009BA0B9}" progid="VBCCR17.DTPicker" />
clsid="{B73EA339-27D1-46CF-9FE9-D166C46248DD}" />
clsid="{67E6130D-31EA-4462-8B7B-35C8D00B8878}" progid="VBCCR17.FontCombo" />
clsid="{2FDC9106-3494-4747-8FB2-61D379DD0A82}" progid="VBCCR17.FrameW" />
clsid="{3760E97F-F505-4A7E-A7B9-A5D4D475832E}" progid="VBCCR17.HotKey" />
clsid="{277DDA80-4A98-4736-A23D-A1C200E791A6}" progid="VBCCR17.ImageCombo" />
clsid="{04A8661E-B343-4EBC-AB7C-3910DFBE1B18}" />
clsid="{6993750D-0041-47C0-BF0F-7F82F68949C1}" progid="VBCCR17.ImageList" />
clsid="{6C56E631-FF75-42B2-B4B7-8B4031550584}" />
clsid="{CB5DEA21-63B5-480B-BEFE-5EE5314722C5}" />
clsid="{D717FCAC-DDEF-4CF3-BA30-FDEFC64C097B}" progid="VBCCR17.IPAddress" />
clsid="{3F8EFA5D-6EE2-4243-B181-997284B86913}" />
clsid="{E3C54ADB-EED1-4D03-9F7B-4D42EA7BFC7D}" progid="VBCCR17.LabelW" />
clsid="{9F562C7A-EC4B-4E02-85D2-CE42203EC994}" progid="VBCCR17.LinkLabel" />
clsid="{63904521-756C-4F8B-BFB8-4944B436C4BA}" />
clsid="{3E22EA9C-D403-4C3B-B5DA-96DD4AC8EC93}" progid="VBCCR17.ListBoxW" />
clsid="{172DFD6D-064E-4E31-9558-89096C3B2C07}" progid="VBCCR17.ListView" />
clsid="{34FC2451-FF36-4A5C-953F-6C5C79A1700E}" />
clsid="{0A1CF8E6-385A-4627-ABF7-87ADA3C542B0}" />
clsid="{0EBECF21-3927-421A-B70E-138694D86EB2}" />
clsid="{9AE1DA41-2B6E-495E-9403-69DB3C6B4D7A}" progid="VBCCR17.MCIWnd" />
clsid="{45A07E72-1CBF-43BB-804D-816A071DF623}" progid="VBCCR17.MonthView" />
clsid="{03DDF33B-3D29-4888-8EDC-70C02072CEEA}" />
clsid="{E7C8AA1C-5D9D-4E69-AA90-B271F3CD418B}" progid="VBCCR17.OptionButtonW" />
clsid="{8D5766F1-B256-46AF-8A55-4DEA235F71F1}" progid="VBCCR17.Pager" />
clsid="{8F839938-51C3-4558-916F-E4ED967E88EC}" />
clsid="{7331C00D-E101-4E1F-AE65-D56EB37263FD}" progid="VBCCR17.ProgressBar" />
clsid="{479EC666-5FF8-43C8-A2E6-D53853D0138C}" />
clsid="{71C2F1C5-7282-468B-9159-1BC4B7D3C90F}" progid="VBCCR17.RichTextBox" />
clsid="{D8707683-3AB9-41E2-B923-B32F3449A288}" />
clsid="{FE7B5DA6-4D26-41C1-B5E1-3FD2C26638CB}" progid="VBCCR17.Slider" />
clsid="{515D25BE-D6CF-4C3E-96EE-79DBDA944B34}" />
clsid="{A4822523-E1D8-4802-912F-6825CBCF7EA2}" />
clsid="{BE90171C-60AC-404E-91CD-48C36B7EB5D0}" progid="VBCCR17.SpinBox" />
clsid="{C5366161-D0E7-49F6-95F3-788BA9600617}" />
clsid="{73DEDEDA-B899-4B59-883C-C8F66C2C7A9B}" progid="VBCCR17.StatusBar" />
clsid="{560F8AC8-028D-4F88-BEEC-67FFEE357466}" />
clsid="{7C2A3132-2779-4D2B-B687-052B994E0602}" />
clsid="{FD6C1D42-591A-4D59-873B-3825E0F9A48F}" progid="VBCCR17.SysInfo" />
clsid="{5A449BC4-90AA-47FA-B2B5-D8B555EF91EF}" progid="VBCCR17.TabStrip" />
clsid="{00EC79F7-8382-4217-9943-3CC8A0B251A6}" />
clsid="{269A7AD4-CFE9-4655-A070-C1D3CC1AE00F}" />
clsid="{C08B5E24-A816-480C-A0D9-52173F420F3F}" progid="VBCCR17.TextBoxW" />
clsid="{B700EB90-2F14-4776-969D-40726357016A}" />
clsid="{BD34E876-94B4-4A0E-A9CC-CC64D0580F08}" progid="VBCCR17.ToolBar" />
clsid="{E441BD93-5F11-492E-A22C-C3F36DC07716}" />
clsid="{7476271E-C33F-4A1A-84ED-A4373AA7B9C6}" />
clsid="{4A1E23DB-0330-4BF9-8CB1-8DED96FF0A72}" progid="VBCCR17.TreeView" />
clsid="{B2B4454B-913E-40E4-8FE2-77B9BB082924}" />
clsid="{9C41E0AA-3074-497D-A552-FD9E2720AA36}" progid="VBCCR17.UpDown" />
clsid="{5AFF51F6-4021-4B90-82D3-F59A5F34CCB6}" />
clsid="{2FA19598-CAE7-4257-8892-6EE4DA1158E8}" progid="VBCCR17.VirtualCombo" />
clsid="{F1457E04-22FC-4D37-B4C1-E5126DF9DBDC}" progid="VBCCR17.VListBox" />
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thanks. Tha's what I thought you did. How about the earlier ones? For example, in VBCCR16.OCX the 4th one is {F37CEF7D-65C4-4F00-9874-B698A08EB948} and it is after UpDown but before TreeView. Was it part of UpDown?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
MountainMan
Thanks. Tha's what I thought you did. How about the earlier ones? For example, in VBCCR16.OCX the 4th one is {F37CEF7D-65C4-4F00-9874-B698A08EB948} and it is after UpDown but before TreeView. Was it part of UpDown?
Don't know for VBCCR16. It wasn't sorted..
For VBCCR16 I would check with RegEdit.. For instance {F37CEF7D-65C4-4F00-9874-B698A08EB948} returns in RegEdit (CTRL+F find method) VBCCR16.PPTreeViewGeneral. So it relates to TreeView.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
It looks to me that in prior versions you had the associated GUID's before the named ones. For example, in prior versions, CommonDialog was listed first and there was always an unnamed one then UpDown so it never was clear to me whether the unnamed one went with DommonDialog or UpDown. It didn't matter because your order was consistent across versions so I could match between versions. Now that you have re-ordered the list it is important. CommonDialog is still listed first but now the 2nd entry is not an unnamed one but is Animation so it looks like CommonDialog doesn't have an unnamed one with it. So it seems that prior versions had the unnamed ones were associated with the following named one, not the prior named one. I am sorry for cluttering up the thread with this. I think it only means something to you and me (part of the upgrade utility) so if you want we can take the discussion to PM's.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Never mind. I am going through the registry as you suggested and it appears there is no rhyme or reason for the older ones, before or after so Ill just comb through the registry and manually match them in my program. Thanks.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Hey Krool
If a project already uses VBCCR16 ActiveX, what is the update process for switching to VBCCR17?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
OldClock
Hey Krool
If a project already uses VBCCR16 ActiveX, what is the update process for switching to VBCCR17?
I have same issue .. seems all object need to recreated if wanted to use latest. @Krool can you elaborate on this ?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
stanner_austin
I have same issue .. seems all object need to recreated if wanted to use latest. @Krool can you elaborate on this ?
You may use the Documentation and Update/Compile Utility from MountainMan to upgrade all references in all Forms from VBCCR16 to VBCCR17.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
I thought to start 2021 in a good way by upgrading my application to full Unicode support, using Krools Common Controls Replacement. Had noticed them before, but never had time to investigate / implement. Now I’ve read all the threads, and it all sounds great! To keep things simple, I started with the OCX (version 1.7), thinking that the StdExe option might be something for a later phase, if needed at all.
As my app has 65 forms, some simple, some with many controls on them, I wondered if there isn’t a quick way to replace the "old controls" with the new versions by simply editing the frm-files in a text-editor? Or is it really a matter of rolling up the sleeves, and going through each form replacing each individual control manually?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Hi Erwin69, yes that is exactly how I did it, editing the frm files by hand. You have to edit all the control types / classes in the "header" section of the frm, but also you will have to change classes and enums elsewhere in code, typically event handlers.
Also there are some cases where data will be stored for the original in the FRX files and that will have to be manually reset. I recall taking screenshots of things like imagelists so that I could rebuild them later.
IIRC I studied the codebase first to try & ID all the cases I had, and then used regex search & replace for a lot of it.
I would recommend working in stages, keeping backups along the way, etc. Good luck!
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thanks Dave. It's an interesting exercise, and your suggestion to work in stages most definitely is an important one. I had hoped for a quick search and replace across all frm-files using Notepad++, but that was thinking too simple...
On top of it there is the additional challenge of converting the external text-files that contain translations in among others Korean and Russian into Unicode text-files, and then properly read and process them. (They now only work if the code page is set to those languages.)
Quite a few challenges ahead... :bigyello:
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
OK, making some progress, but ran into something today:
In a frame I have 3 shapes, that visually show the status of something, traffic light style. Since shapes don't have events, I'm using the mousedown event of the frame to capture the X-, and Y-coordindates, and check those versus the position of the shapes.
This worked fine with the original Frame object, but with the FrameW object, the X and Y that the event returns, don't correspond with the coordinates of the shapes. My guess is that a different scaling is used?
Any advice is appreciated!
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
hi there
I downloaded the VBCCR17.OCX.rar.zip file and removed the zip extension, but got an error when I tried to extract it
can anyone help me?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
hmnader
hi there
I downloaded the VBCCR17.OCX.rar.zip file and removed the zip extension, but got an error when I tried to extract it
can anyone help me?
You can download it from Github also. (Without it being archived)
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Krool, thanks for the great work!
I tried to place the "[VB6] ActiveX CommonControls" in the MS VFP's IDE:
LabelW's OK!
CommandButtonW's OK!
CheckBoxW's OK!
RichTextBox's OK!
TreeView's OK!
But unfortunately "TextBoxW" CRASHED while I just placed it into the Form in DesignMode! I've download the "UniText"(https://www.vbforums.com/showthread....ase-2008-06-19) before, it's OK. I think maybe there's something wrong with TextBoxW during UserControl_Initialize() while TextBoxDesignMode's True.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
myfav
Krool, thanks for the great work!
I tried to place the "[VB6] ActiveX CommonControls" in the MS VFP's IDE:
LabelW's OK!
CommandButtonW's OK!
CheckBoxW's OK!
RichTextBox's OK!
TreeView's OK!
But unfortunately "TextBoxW" CRASHED while I just placed it into the Form in DesignMode! I've download the "UniText"(
https://www.vbforums.com/showthread....ase-2008-06-19) before, it's OK. I think maybe there's something wrong with TextBoxW during UserControl_Initialize() while TextBoxDesignMode's True.
Hmm. I don't know. Why does the more complex RichTextBox work but not the TextBox?
IMO UserControl_Initialize is not the cause as TextBoxDesignMode's not True there yet.
Can you compile the OCX again for testing and put off Call CreateTextBox in sub _InitProperties and _ ReadProperties?
So we pinpoint if it has something todo with the UserControl or the API window.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Version 3 of the Documentation and Compile Utility for Krool's controls has been released here.
MountainMan
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
First of all, thank you very much for your efforts, Krool. Your controls work very reliably and I use them quite often these days.
I do have an issue with ImageLists and property pages, though. Here's how to reproduce:
- Create a new project and add a reference to VBCCR17
- Add two image list controls to a form
- Open the property page and add an image
- Now, without closing the property page select the second image list and add an image
- Upon selecting an image the IDE produces a run-time error 0
Afterwards, if you try to open the property page there are some follow-up errors like "Runtime-error -2147221164 (80040154) [Class not registered]" and "Automation error" without any additional information. A restart of the IDE is required to get things working again.
If you were to save the project after having properly added an image or two to the ImageList controls and try to re-use the property page, all the saved images are lost.
This procedure just works with the original ImageList.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Caine
First of all, thank you very much for your efforts, Krool. Your controls work very reliably and I use them quite often these days.
I do have an issue with ImageLists and property pages, though. Here's how to reproduce:
- Create a new project and add a reference to VBCCR17
- Add two image list controls to a form
- Open the property page and add an image
- Now, without closing the property page select the second image list and add an image
- Upon selecting an image the IDE produces a run-time error 0
Afterwards, if you try to open the property page there are some follow-up errors like "Runtime-error -2147221164 (80040154) [Class not registered]" and "Automation error" without any additional information. A restart of the IDE is required to get things working again.
If you were to save the project after having properly added an image or two to the ImageList controls and try to re-use the property page, all the saved images are lost.
This procedure just works with the original ImageList.
Solved/Fixed. Thanks
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thank you Krool for this fantastic tool and excellent piece of work!
I am missing the "UpTo" method of the RichTextBox component.
If there are no plans to add it, then I will create in my code a function to do just that (InStr and SetStart).
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
clintc
Thank you Krool for this fantastic tool and excellent piece of work!
I am missing the "UpTo" method of the RichTextBox component.
If there are no plans to add it, then I will create in my code a function to do just that (InStr and SetStart).
You can post the code here when you are sure it mimics 1:1 to what the MS RTB is doing. I could add this method to VBCCR17 without breaking compatibility...
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
wardjk
I've been using VBCCR16.OCX and added VBCCR17.OCX in preparation of upgrading VBCCR16 controls to VBCCR17. The buttons in the VB6 IDE Toolbox for VBCCR17.OCX only show as black squares. The buttons for VBCCR16.OCX still show fine. I'm using VB6 (SP6) on Windows 10. The image shows the symptom. The VBCCR17 buttons are between the standard default buttons and those of VBCCR16. The inclusion of VBCCR16 in the project components does not affect the symptom and is included in the project of this image just for comparison. What can I do to make the buttons of VBCCR17 show the proper icons?
Attachment 182259
I'd delete this post if I could. I think I had a corrupted OCX. The buttons show fine with the replaced OCX.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Is there any documentation available appart from what you can get from the object browser?
I have a problem with TextBoxW. If I assign a unicode string to the .Text property the non-Ansi characters are displayed as question marks. If I assign the same string to an unicode api MessageBoxW all the characters are displayed correctly. What am I doing wrong?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
jpfa
I have a problem with TextBoxW. If I assign a unicode string to the .Text property the non-Ansi characters are displayed as question marks. If I assign the same string to an unicode api MessageBoxW all the characters are displayed correctly.
Can you provide us a vb project with the TextBoxW and your unicode string so we can test this at our computer?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
It took a while to reduce my project to a small piece just to demonstrate the problem. Maybe it can be reduced even more, but I think this isn't too much code. I kept all the variables and functions involved names untouched. I deleted the unnecessary lines to make it more readable. (My complete project is huge).
You must create a new project and add 2 references:
Debug Object for AddressOf Subclassing (DbgWProc.dll)
VB Common Controls Replacement 1.7 Library (VBCCR17.OCX)
I assume you have these already registered.
Add one form and set it to be the initial object.
In the form place a TextBoxW control and name it TextBoxW1,
and a CommandButton control and name it Command1.
Add a module.
Code for the form:
Code:
Option Explicit
Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxW" (ByVal hWnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal wType As Long) As Long
Private Sub MsgBoxW(ByVal Txt As String)
MessageBox Me.hWnd, StrPtr(Txt), StrPtr("Title"), vbInformation
End Sub
Private Sub Command1_Click()
Dim Japanese As String
Japanese = ChrW(49) & ChrW(46) & ChrW(32) & ChrW(37329) & ChrW(30000) & ChrW(19968) & ChrW(32789) & ChrW(21161) & ChrW(12398) & ChrW(12486) & ChrW(12540) & ChrW(12510) & ChrW(32) & ChrW(40) & ChrW(84) & ChrW(104) & ChrW(101) & ChrW(109) & ChrW(101) & ChrW(32) & ChrW(79) & ChrW(102) & ChrW(32) & ChrW(75) & ChrW(111) & ChrW(104) & ChrW(115) & ChrW(117) & ChrW(107) & ChrW(101) & ChrW(32) & ChrW(75) & ChrW(105) & ChrW(110) & ChrW(100) & ChrW(97) & ChrW(105) & ChrW(99) & ChrW(104) & ChrW(105) & ChrW(41) & ChrW(46) & ChrW(109) & ChrW(112) & ChrW(51)
TextBoxW1.Text = Japanese
MsgBoxW Japanese
End Sub
Private Sub Form_Load()
SubclassAll Me, False
End Sub
Private Sub Form_Unload(Cancel As Integer)
SubclassAll Me, True
End Sub
Code for the module:
Code:
Option Explicit
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 'en la API "wParam As Long" está mal; debe ser ByVal "wParam As Integer"
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Const GWL_WNDPROC = -4
Public DWPHookColl As New Collection
Public lpPrevWndProcColl As New Collection
Public Sub SubclassAll(FrmX As Form, ByVal UnSubclass As Boolean)
Dim CtrlX As Control
Dim hWnd As Long
Subclass1 FrmX.hWnd, UnSubclass
For Each CtrlX In FrmX.Controls
hWnd = 0
On Error Resume Next 'CtrlX may not have hWnd
hWnd = CtrlX.hWnd
On Error GoTo 0
If hWnd <> 0 Then
Subclass1 hWnd, UnSubclass
End If
Next
End Sub
Public Sub Subclass1(ByVal hWnd As Long, ByVal UnSubclass As Boolean)
Dim lpPrevWndProc As Long
Dim DWPHook As WindowProcHook
If UnSubclass Then
On Error Resume Next 'lpPrevWndProcColl(CStr(hWnd)) may not exist
lpPrevWndProc = lpPrevWndProcColl(CStr(hWnd))
On Error GoTo 0
If lpPrevWndProc <> 0 Then
SetWindowLong hWnd, GWL_WNDPROC, lpPrevWndProc
End If
On Error Resume Next
DWPHookColl.Remove (CStr(hWnd)) 'indirectly free WindowProcHook
On Error GoTo 0
Else
Set DWPHook = CreateWindowProcHook
DWPHook.SetMainProc AddressOf WindowProc
lpPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, DWPHook.ProcAddress)
DWPHook.SetDebugProc lpPrevWndProc
DWPHookColl.Add DWPHook, CStr(hWnd)
lpPrevWndProcColl.Add lpPrevWndProc, CStr(hWnd)
End If
End Sub
Public Function WindowProc(ByVal hW As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim PrevWinProc As Long
On Error Resume Next 'lpPrevWndProcColl(CStr(hWnd)) may not exist
PrevWinProc = lpPrevWndProcColl(CStr(hW))
On Error GoTo 0
If PrevWinProc <> 0 Then
WindowProc = CallWindowProc(PrevWinProc, hW, uMsg, wParam, lParam)
End If
End Function
Run the program in the VB6 IDE.
Click on the Command1 button.
A unicode string will be assigned to the Text property of the TextBoxW1 control.
In my environment (Windows XP sp3) the non-Ansi characters are displayed as question marks.
Then the same string will be correctly displayed by the unicode API MessageBoxW function.
Hope you'll be able to reproduce the problem. I suspect my system is the culprit; if that's the case you won't be able to reproduce it, I guess.
Thanks for your help!
Edit:
If I don't subclass the TextBoxW control then the problem doesn't show, but that would mostly defeat the purpose of using a Text Box. I need to hook some of the messages (mostly the keystrokes and mouse messages). I didn't include this in the reduced code because the problem happens even if I don't preprocess the messages.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
jpfa
If I don't subclass the TextBoxW control then the problem doesn't show, but that would mostly defeat the purpose of using a Text Box.
You didnt wrote anything about "subclassing the textbox" at your first question. I guess Krool uses subclassing for the TextboxW too and this leads to problems...
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Mith
You didnt wrote anything about "subclassing the textbox" at your first question.
I didn't mention it in my first question because I didn't know this could have anything to do with the problem. It even didn't come to my mind immediatelly after stripping down my code and posting it. It came to my mind a little later; then I tried disabling the subclassing for just the TextBoxW and found that it indeed could be related to the problem. Then I edited my post to let you know about my new findings.
Quote:
Originally Posted by
Mith
I guess Krool uses subclassing for the TextboxW too and this leads to problems...
Can you confirm that guess? Is the code showing the same behavior in your computer as it shows on mine?
If so I'll assume that the control doesn't support subclassing and I'll have to take a different route (maybe using a different unicode text box).
If not, then I'd like to know what's wrong with my code, if you can tell.
But if it all works fine in your computer then I must assume that my system is to blame.
Thanks for your help.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
That thread is huge! I wasn't able to spot the source code for TextBoxW at first sight, nor the search applet found it at specific posts(s) in the thread. Can you be more specific about which post # in the thread contains that source code?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
jpfa
That thread is huge! I wasn't able to spot the source code for TextBoxW at first sight, nor the search applet found it at specific posts(s) in the thread. Can you be more specific about which post # in the thread contains that source code?
I think you'll find links to the source code in post #1.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Erwin69
I think you'll find links to the source code in post #1.
If you mean OCX2StdExe v3.2.1.zip, that code just seems to build a standard exe that will have the controls in the ocx embedded so you don't have to distribute the VBCCR17.OCX file along with your executable. I couldn't make that run because of loading errors. Some files seem to be missing. Anyway I don't need to have the ocx embedded into my exe; I just use the ocx. (I'm not distributing this program at all, it's just for my personal use).
ReadMe.docx contains instructions but not code.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Any idea how to make the MonthView control bigger? I tried changing the size the usual way by stretching the edges but it's locked at 2440 x 3030. I manually changed height and width but they changed right back. I changed the font - nothing. It seems to be stuck at one specific size. Any help would be appreciated.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Just thought I'd look at this project again since I'm having Mscomctl issues... and sadly when I download VBCCR17.OCX.RAR.ZIP and rename it to VBCCR17.OCX.RAR, WinRar reports it as damaged or incompatible and won't open it.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
I don't know what WinRAR's problem is, but use 7-zip. You don't even need to change the extension.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Darkbob
... and sadly when I download VBCCR17.OCX.RAR.ZIP and rename it to VBCCR17.OCX.RAR, WinRar reports it as damaged or incompatible and won't open it.
I downloaded VBCCR17.OCX.RAR.ZIP, renamed it to VBCCR17.OCX.RAR and open it with WinRAR 5.21 (64bit) without any problems. I guess your file is corrupted and you have to redownload it.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Darkbob
Any idea how to make the MonthView control bigger? I tried changing the size the usual way by stretching the edges but it's locked at 2440 x 3030.
When the MonthView control is rendered using visual styles, its size just follows system settings and you cannot change its size.
But you can disable visual styles and set a larger font to change the control size.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Is the vbccr17 LARGEADDRESSAWARE?
32bit exes are limited to 2GB address space.
With the flag LARGEADDRESSAWARE this can be extended to 3GB (4GB?). (with editbin.exe /LARGEADDRESSAWARE myexe)
But for this it must be able to handle pointers larger than &h7FFFFFFF.
As long values are signed longs e.g.
ptr = &h7FFFFFF0 + 32
fails with overflow.
When ptr is a pointer it then should have the value &h80000000 with is in dec -1
Though to add an offset to a pointer for 3GB address space you need a e.g. subroutine to add an Offset:
Function PointerAdd(ByVal base As Long, ByVal addthis As Long) As Long
On Error Resume Next
If Err.number Then Err.Clear
base = base + addthis
If Err.number Then
base = base - &H40000000
base = base - &H40000000
base = base - &H40000000
base = base + addthis
base = base - &H40000000
End If
PointerAdd = base
End Function
With this
ptr = PointerAdd(&h7FFFFFF0, 32)
ptr will have the correct value &h80000000
When no calculating with pointers is done and only VarPtr, StrPtr, ObjPtr are used to retrieve the addresses to pass it as argument to a function all is ok.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Yes vbccr17 is LARGEADDRESSAWARE.
UnsignedAdd/UnsignedSub is used everywhere..
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thanks for the cool controls!! I know it takes a lot of work to do this stuff...
I had a few of questions:
1. is it possible to add a "centered" option to LinkLabel?
2. when the user clicks on the link, do I need to do something in code, or does the control handle this automatically? (perhaps I don't have something set correctly)
3. I see there is a tool to "switch out" the OCX for the UC, but is there a tool to help automate the replacing of controls in an existing project/forms? I have lots of Labels, CommandButtons, Textboxes, etc. in my program and would like to try replacing these controls in each form, one by one, so I can test, test, test before I roll these out to my users.
Again, Thanks for all the cool stuff and advice!
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
BooksRUs
1. is it possible to add a "centered" option to LinkLabel?
2. when the user clicks on the link, do I need to do something in code, or does the control handle this automatically? (perhaps I don't have something set correctly)
1. No. There is only left possible (by default) or right alignment via LWS_RIGHT. No centering possible.
2. Yes, you shall take action with your code on the LinkActivate event.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
1. No. There is only left possible (by default) or right alignment via LWS_RIGHT. No centering possible.
2. Yes, you shall take action with your code on the LinkActivate event.
Thanks for the info... got it working. To fake centering it, I just added a bunch of spaces at the beginning to make it look centered on the form. Very weird that no vbCenter option, but I read the other posts concerning the same issue.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
A question about LabelW... it appears that ComCtl6 Textbox (but not Label) are multiple monitor "aware", in that ToolTips will appear on the *same* monitor just below the Textbox, but not the Label.
It appears that LabelW suffers from the same behavior. Is there a way to make the LabelW tooltip to appear just below the LabelW on the SAME monitor?
Thanks!!
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Is there idea why this ocx does not honor subfolder in reg-free manifest? e.g.:
Code:
<file name="data\VBCCR17.OCX">
...
When I doing the same with tabctl32.ocx (Microsoft control):
Code:
<!-- For tabctl32.ocx Product version 6.01.9782 -->
<file name="data\tabctl32.ocx">
<comClass description="Microsoft Tabbed Dialog Control 6.0 (SP6)" clsid="{BDC217C5-ED16-11CD-956C-0000C04E4C0A}" threadingModel="Apartment" progid="TabDlg.SSTab" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
<comClass description="SSTabCtl General Property Page Object" clsid="{7DA06D40-54A0-11CF-A521-0080C77A7786}" />
<typelib tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" version="1.1" helpdir="" />
</file>
<!-- For tabctl32.ocx Product version 6.01.9782 -->
<comInterfaceExternalProxyStub name="DSSTabCtlEvents" iid="{BDC217C7-ED16-11CD-956C-0000C04E4C0A}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
<comInterfaceExternalProxyStub name="ISSTabCtl" iid="{2A4FCCB0-DFF1-11CF-8E74-00A0C90F26F8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
<!-- Used in most (if not all) of the above files. -->
<comInterfaceExternalProxyStub name="IVBDataObject" iid="{2334D2B1-713E-11CF-8AE5-00AA00C00905}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
<comInterfaceExternalProxyStub name="IVBDataObjectFiles" iid="{2334D2B3-713E-11CF-8AE5-00AA00C00905}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
my app starts well. Checked with ProcMon, it's definitely uses the tabctl32.ocx I put in "data" subfolder next to exe file.
However, doing the same with VBCCR17.OCX, causes system try to search ocx next to exe, not in "data" subfolder and failed to run.
Thanks for answers!
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Dragokas
Is there idea why this ocx does not honor subfolder in reg-free manifest?
I use the VBCCR OCX in a subfolder too and it works without any problems on the computers of the users who have my application installed.
My code:
Code:
<file name="depend\VBCCR17.OCX">
<typelib tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" version="1.2" flags="control" helpdir="" />
<comClass clsid="{068A3E97-D041-4248-AEEE-56B09D8D037C}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.CommonDialog" description="" />
<comClass clsid="{C2FF3E52-BD76-43D2-BF0A-C5EFF1459A32}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.ISubclass" description="" />
<comClass clsid="{9602627B-40A9-4638-B4CD-39A365F85432}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.Animation" description="" />
<comClass clsid="{C3853FC8-E7D9-43D4-88AA-4DF0651E66B1}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{5F2AB905-9655-4A13-9F7E-433EDFF185F2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.CheckBoxW" description="" />
<comClass clsid="{14959488-6EF6-4323-A7CB-7165F32D8CC2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ComboBoxW" description="" />
<comClass clsid="{A6C631D4-7449-44DC-9AD2-D86357554975}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.CommandButtonW" description="" />
<comClass clsid="{5B07381D-39B9-40BF-9EE3-AF0636276897}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.CommandLink" description="" />
<comClass clsid="{8AC46A3E-727E-48EC-A063-4FC42CB744F4}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{03F663A5-EF57-4F73-BDAF-31C5E673B739}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.CoolBar" description="" />
<comClass clsid="{A2DA7C1B-A381-4AD9-BCD8-AEBB2C905E2D}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.CbrBand" description="" />
<comClass clsid="{7A2F0BC9-A0A9-4811-B034-1B78EA7163CA}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.CbrBandProperties" description="" />
<comClass clsid="{CF4942F6-3285-4CE0-9C1C-620785570771}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.CbrBands" description="" />
<comClass clsid="{1908EE8D-074B-4C73-A650-02BE9202D3A2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{4BFD0894-5927-4DF9-B65C-19632904D2BC}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{ED9B663D-A5CA-4D5F-A35E-F337009BA0B9}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.DTPicker" description="" />
<comClass clsid="{B73EA339-27D1-46CF-9FE9-D166C46248DD}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{67E6130D-31EA-4462-8B7B-35C8D00B8878}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.FontCombo" description="" />
<comClass clsid="{2FDC9106-3494-4747-8FB2-61D379DD0A82}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.FrameW" description="" />
<comClass clsid="{3760E97F-F505-4A7E-A7B9-A5D4D475832E}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.HotKey" description="" />
<comClass clsid="{277DDA80-4A98-4736-A23D-A1C200E791A6}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ImageCombo" description="" />
<comClass clsid="{1A07F45F-BC25-42E9-9710-98BB2C58B09A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.ImcComboItem" description="" />
<comClass clsid="{73782805-0B1A-4870-8754-555E0A149199}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.ImcComboItems" description="" />
<comClass clsid="{04A8661E-B343-4EBC-AB7C-3910DFBE1B18}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{6993750D-0041-47C0-BF0F-7F82F68949C1}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ImageList" description="" />
<comClass clsid="{D8D3B6D1-6513-4650-A05C-C25F8B9FB06A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.ImlListImage" description="" />
<comClass clsid="{59AFC860-2566-4F67-A41C-EF378C5E5BC8}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.ImlListImages" description="" />
<comClass clsid="{6C56E631-FF75-42B2-B4B7-8B4031550584}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{CB5DEA21-63B5-480B-BEFE-5EE5314722C5}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{D717FCAC-DDEF-4CF3-BA30-FDEFC64C097B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.IPAddress" description="" />
<comClass clsid="{3F8EFA5D-6EE2-4243-B181-997284B86913}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{E3C54ADB-EED1-4D03-9F7B-4D42EA7BFC7D}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.LabelW" description="" />
<comClass clsid="{9F562C7A-EC4B-4E02-85D2-CE42203EC994}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.LinkLabel" description="" />
<comClass clsid="{E1D65AF1-4DD1-456D-9A4B-E420392E5A05}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LlbLink" description="" />
<comClass clsid="{4D62064D-6033-41B6-90B6-4C2109392E9D}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LlbLinks" description="" />
<comClass clsid="{63904521-756C-4F8B-BFB8-4944B436C4BA}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{3E22EA9C-D403-4C3B-B5DA-96DD4AC8EC93}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ListBoxW" description="" />
<comClass clsid="{172DFD6D-064E-4E31-9558-89096C3B2C07}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ListView" description="" />
<comClass clsid="{A2CF0878-80DF-4B67-B4CB-163AAFB26417}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwColumnHeader" description="" />
<comClass clsid="{2CA1100A-4E9B-4ECC-ABD7-0EF7F89C0FC2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwColumnHeaders" description="" />
<comClass clsid="{5277AD3F-29DB-4EC0-A9C9-E673273BC910}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwGroup" description="" />
<comClass clsid="{73BC8D3C-A594-4BA1-8414-F5D1C232157D}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwGroups" description="" />
<comClass clsid="{66803C40-CB27-4BC0-A7BE-08414A163D9A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwListItem" description="" />
<comClass clsid="{5F45FA1D-D5FC-4748-97B0-A805525EA4C7}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwListItems" description="" />
<comClass clsid="{AFD663B5-34FB-404A-83C2-66C7DB153B8F}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwListSubItem" description="" />
<comClass clsid="{1FE4DAB9-1C2A-40DE-BBC4-692E95D3DBED}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwListSubItems" description="" />
<comClass clsid="{232E595C-B10C-4FFC-840A-B6225E914B6B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwVirtualListItem" description="" />
<comClass clsid="{10CBD665-AE07-41D9-BA61-BAE2A65F6909}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwVirtualListItems" description="" />
<comClass clsid="{086BFFAB-AAFE-4404-9652-63C429B600B0}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwWorkArea" description="" />
<comClass clsid="{552DFF7F-3D22-4666-8BE6-4E834E52E3E0}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.LvwWorkAreas" description="" />
<comClass clsid="{34FC2451-FF36-4A5C-953F-6C5C79A1700E}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{0A1CF8E6-385A-4627-ABF7-87ADA3C542B0}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{0EBECF21-3927-421A-B70E-138694D86EB2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{9AE1DA41-2B6E-495E-9403-69DB3C6B4D7A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.MCIWnd" description="" />
<comClass clsid="{45A07E72-1CBF-43BB-804D-816A071DF623}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.MonthView" description="" />
<comClass clsid="{03DDF33B-3D29-4888-8EDC-70C02072CEEA}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{E7C8AA1C-5D9D-4E69-AA90-B271F3CD418B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.OptionButtonW" description="" />
<comClass clsid="{8D5766F1-B256-46AF-8A55-4DEA235F71F1}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.Pager" description="" />
<comClass clsid="{8F839938-51C3-4558-916F-E4ED967E88EC}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{7331C00D-E101-4E1F-AE65-D56EB37263FD}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ProgressBar" description="" />
<comClass clsid="{479EC666-5FF8-43C8-A2E6-D53853D0138C}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{71C2F1C5-7282-468B-9159-1BC4B7D3C90F}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.RichTextBox" description="" />
<comClass clsid="{D8707683-3AB9-41E2-B923-B32F3449A288}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{FE7B5DA6-4D26-41C1-B5E1-3FD2C26638CB}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.Slider" description="" />
<comClass clsid="{515D25BE-D6CF-4C3E-96EE-79DBDA944B34}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{A4822523-E1D8-4802-912F-6825CBCF7EA2}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{BE90171C-60AC-404E-91CD-48C36B7EB5D0}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.SpinBox" description="" />
<comClass clsid="{C5366161-D0E7-49F6-95F3-788BA9600617}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{73DEDEDA-B899-4B59-883C-C8F66C2C7A9B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.StatusBar" description="" />
<comClass clsid="{F94936AB-A27E-4A38-AC96-7746DC272582}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.SbrPanel" description="" />
<comClass clsid="{731E84AE-646B-41F2-9A9E-EC38806A4BE6}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.SbrPanelProperties" description="" />
<comClass clsid="{F607ABA7-9363-41B4-AF90-330A1487F664}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.SbrPanels" description="" />
<comClass clsid="{560F8AC8-028D-4F88-BEEC-67FFEE357466}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{7C2A3132-2779-4D2B-B687-052B994E0602}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{FD6C1D42-591A-4D59-873B-3825E0F9A48F}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.SysInfo" description="" />
<comClass clsid="{5A449BC4-90AA-47FA-B2B5-D8B555EF91EF}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.TabStrip" description="" />
<comClass clsid="{52E0F482-55E8-488C-913C-323C626AF1C1}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbsTab" description="" />
<comClass clsid="{4ED27C71-8B17-4E98-A2B2-31D3BDD4C14A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbsTabs" description="" />
<comClass clsid="{00EC79F7-8382-4217-9943-3CC8A0B251A6}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{269A7AD4-CFE9-4655-A070-C1D3CC1AE00F}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{C08B5E24-A816-480C-A0D9-52173F420F3F}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.TextBoxW" description="" />
<comClass clsid="{B700EB90-2F14-4776-969D-40726357016A}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{BD34E876-94B4-4A0E-A9CC-CC64D0580F08}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.ToolBar" description="" />
<comClass clsid="{370F5556-0A77-4F8E-9B1B-82DF4A3DC14D}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbrButton" description="" />
<comClass clsid="{E132BDD4-D9E0-4FDB-9617-B256945EA16B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbrButtonMenu" description="" />
<comClass clsid="{A9DC24EE-FF52-4020-826E-DE3542E1E16B}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbrButtonMenus" description="" />
<comClass clsid="{23C21A69-9EBC-4759-9E48-47CC55806342}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbrButtonProperties" description="" />
<comClass clsid="{9987CE4F-C650-4E1D-BC0E-82A9B07A058E}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TbrButtons" description="" />
<comClass clsid="{E441BD93-5F11-492E-A22C-C3F36DC07716}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{7476271E-C33F-4A1A-84ED-A4373AA7B9C6}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{4A1E23DB-0330-4BF9-8CB1-8DED96FF0A72}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.TreeView" description="" />
<comClass clsid="{0846FC72-C96F-490E-9562-9515F037E01C}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TvwNode" description="" />
<comClass clsid="{6973DC19-EC23-470B-864F-FA4CA27061C9}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TvwNodes" description="" />
<comClass clsid="{31AAA182-CA63-4526-B638-B6A85561D8E8}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" progid="VBCCR17.TvwSelectedNodes" description="" />
<comClass clsid="{B2B4454B-913E-40E4-8FE2-77B9BB082924}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{9C41E0AA-3074-497D-A552-FD9E2720AA36}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.UpDown" description="" />
<comClass clsid="{5AFF51F6-4021-4B90-82D3-F59A5F34CCB6}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" description="" />
<comClass clsid="{2FA19598-CAE7-4257-8892-6EE4DA1158E8}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.VirtualCombo" description="" />
<comClass clsid="{F1457E04-22FC-4D37-B4C1-E5126DF9DBDC}" tlbid="{7020C36F-09FC-41FE-B822-CDE6FBB321EB}" threadingModel="Apartment" progid="VBCCR17.VListBox" description="" />
</file>
-
1 Attachment(s)
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Nice, email notifications are work again.
Mith, are you sure VBCCR is not pre-registered on that system?
Here is a minimal project, just put VBCCR17.OCX in "depend" subfolder (I used your manifest) and compile.
When you launch it on freshly installed system (with VBCCR17 unregistered) the message "Component not correctly registered" will pop up.
What am I doing wrong?
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Dragokas
Mith, are you sure VBCCR is not pre-registered on that system?
Yes, im sure VBCCR17 is not pre-registered on a fresh windows installation.
Quote:
Originally Posted by
Dragokas
What am I doing wrong?
I guess your problem is the wrong file size of your manifest file. Your embedded manifest file size must be a multiple of 4 bytes.
Current: 18429 Bytes
Correct: 18428 Bytes
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Mith
I guess your problem is the wrong file size of your manifest file. Your embedded manifest file size must be a multiple of 4 bytes.
Current: 18429 Bytes
Correct: 18428 Bytes
It is only matter for unpatched VB6 (pre-SP6). For SP6 it doesn't matter.
All right, I re-created manifest with 18428 Bytes just for this test, and result are the same.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
I use manifest too and VBCCR17.OCX is in a "Lib" subfolder and it works. So I can't repro.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Thanks. Is my above project works well for you? In which OS?
I tried everything, and for me VBCCR17.OCX only works in root folder.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
Fixed with manual OCX recompilation + UMMM. Works well in root, and in subfolder too.
Also, tried again with pre-compiled OCX from GitHub + manifest in 1st post (+also tried with UMMM). In both cases it doesn't recognize the registration for me. Tried without subfolder.
-
Re: [VB6] ActiveX CommonControls (Replacement of the MS common controls)
I have noticed that in the latest version of the ocx, the ClientTop of the tabstrip is not working properly.
now the interesting thing is that on a computer which the scale is set to 150% it works perfect, ClientTop is relative to the top of the form.
But on computers with the scale set to %100 ClientTop will be relative to the top of the tabstrip.
This issue did not exist in version 1.7.0.61, although i don't at which version it started.