[PATCH 1/3] dmloader: COM cleanup of IDirectMusicLoader object.
Michael Stefaniuc
mstefani at redhat.com
Thu Nov 8 08:49:35 CST 2012
On 11/08/2012 02:50 PM, Nikolay Sivov wrote:
> On 11/8/2012 15:41, Michael Stefaniuc wrote:
>> On 11/08/2012 01:13 PM, Christian Costa wrote:
>>>
>>> 2012/11/8 Henri Verbeet <hverbeet at gmail.com <mailto:hverbeet at gmail.com>>
>>>
>>> On 8 November 2012 00:22, Michael Stefaniuc <mstefani at redhat.com
>>> <mailto:mstefani at redhat.com>> wrote:
>>> > But using just the capitalized letters from the name of the COM
>>> class as
>>> > a prefix and skipping the "Impl" would be in hindsight the better
>>> > standard. There are still 170+ COM interfaces to clean up
>>> which is a
>>> > sizable number regardless of it being just 13% of the total
>>> interface
>>> > implementations, so we could still change the standard,
>>> especially as
>>> > the existing function/method naming standard is not strictly
>>> enforced; I
>>> > didn't bother changing "offenders" if the name was reasonable.
>>> > But I'm deferring this decision to Jacek / Alexandre as they
>>> are the
>>> > drivers of the COM standardization in Wine. I don't mind too
>>> much as I
>>> > can work with both patterns.
>>> >
>>> I think the only reasonable naming convention is to name things
>>> after
>>> the implementation structure. In this case that would still end up
>>> being "IDirectMusicLoaderImpl_...", but for a slightly different
>>> reason. Where I agree with Nikolay is that "dmloader" would be a
>>> much
>>> nicer name than "IDirectMusicLoaderImpl" for the implementation
>>> structure as well, in which case you would also end up with
>>> "dmloader_..." for method implementations.
>>>
>>>
>>> dmloader_IDirectMusicLoader_Method or dmloader_Method?
>> dmloader_IDirectMusicLoader_Method
> I don't think it's better than it is now.
It is better as it doesn't contain the same ICamelCaseName twice. Of
course the object should be renamed then to dmloader.
This is a workable solution for the people that insist on having the
object name in function implementing the method.
>>> I was just saying removing the interface name was not a good thing imo
>>> or am I missing something?
>> Right, the interface name needs to be there as it matches the COBJMACROS
>> name. Basically the C macro with a prefix.
> Why? If you really want to keep interface name the better way imho is as
> it's usually done in mshtml, like HTMLDOMTextNode_*,
> so here you don't need to add anything like prefix.
The first rule of COM in Wine is:
"Do what Jacek says, not what he does!"
;)
HTMLDOMTextNode_* aka dropping the "I" is fine too as long as you do
*not* use the same prefix for other functions. E.g. I've seen that style
used for helpers.
bye
michael
More information about the wine-devel
mailing list