Question

I have a COM object interface in midl like

interface InterfaceName : IDispatch
{
  [id(1)] HRESULT FunA(...);
  [id(2)] HRESULT FunB(...);
  [id(3)] HRESULT FunC(...);
}

Are the ids required to be consecutive? Or can I define it like

interface InterfaceName : IDispatch
{
  [id(1)] HRESULT FunA(...);
  [id(3)] HRESULT FunB(...);
  [id(5)] HRESULT FunC(...);
}

Compiling the second version seems to be fine but will there occur any problems at runtime?

Était-ce utile?

La solution

Actual id values are arbitrary numbers. They do not have to be consecutive; they just have to be unique. Zero and negative values are, by convention, reserved for certain special methods. Apart from that, there are no rules.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top