|
-
Dec 9th, 2015, 02:57 AM
#1
Re: CommonControls (Replacement of the MS common controls)
A couple questions on the unusual version of oleguids.tlb that's included...
-IEnumeration is just a renamed IEnumVARIANT... but what is IEnumerationVB? A custom interface? I can't find a match for the CLSID.
-Same question with the others like that; IPerPropertyBrowsing even has nearly identical methods except one in the middle (MapPropertyToPage)-- wouldn't that throw off the vtable?
-If you're going to include placeholder interfaces that aren't valid, would you consider renaming them to __VB as well? IDataObject and IStorage are very frequently used and any project that also uses your controls has to always remember to explicitly type them since VB sometimes thinks a variable refers to the oleguids placeholder.
I had originally just wanted to eliminate the reference in my project due to the conflicts; but need to understand the renamed and possibly custom interfaces first.
Last edited by fafalone; Dec 9th, 2015 at 03:10 AM.
-
Dec 9th, 2015, 06:18 AM
#2
Re: CommonControls (Replacement of the MS common controls)
 Originally Posted by fafalone
A couple questions on the unusual version of oleguids.tlb that's included...
-IEnumeration is just a renamed IEnumVARIANT... but what is IEnumerationVB? A custom interface? I can't find a match for the CLSID.
-Same question with the others like that; IPerPropertyBrowsing even has nearly identical methods except one in the middle (MapPropertyToPage)-- wouldn't that throw off the vtable?
-If you're going to include placeholder interfaces that aren't valid, would you consider renaming them to __VB as well? IDataObject and IStorage are very frequently used and any project that also uses your controls has to always remember to explicitly type them since VB sometimes thinks a variable refers to the oleguids placeholder.
I had originally just wanted to eliminate the reference in my project due to the conflicts; but need to understand the renamed and possibly custom interfaces first.
IEnumeration is equivalent to IEnumVARIANT, but "unrestricted". Thus it can be implemented into objects in VB.
IEnumerationVB is a custom interface, but actually not needed anymore cause its now working with raise events in the Enumeration.cls
But I kept the IEnumerationVB in the OLEGuids.tlb as it does not cause any harm. And it will also not be compiled into when it's not used in the VB project.
For the others: That's why I declared all my references to OLEGuids.tlb with 'OLEGuids.*', e.g. "As OLEGuids.IDataObject"
That is the preferred method to eliminate those conflicts.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|