In the IDL file for a C++ component I have something like the following, allowing the property to be COM visisble:
interface IInterface
{
[propget, id(1), helpstring("the ID")]
HRESULT ID([out, retval] long *pVal);
}
When I build the dll and open in OLEView I see something like this!?
interface IInterface
{
[propget, id(0x00000001), helpstring("the ID")]
HRESULT id([out, retval] long *pVal);
}
Notice that ID is showing as id. However, if I modify this code, to say "ID2" then the ID2 is shown as expected. I then change back to "ID" and again id is shown. This is pretty baffling to me. There must be something on the machine which means the DLLs exposed name for this property is in lower case, but I can't find anything in the registry for this.
Any ideas? Very confused...