Domanda

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?

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top