// [MS-RPRN] interface [ uuid(12345678-1234-ABCD-EF00-0123456789AB), version(1.0), ms_union, endpoint("ncacn_np:[\\pipe\\spoolss]"), pointer_default(unique) ] interface winspool { import "ms-dtyp.idl"; const int a = 0xff & level; typedef struct _PORT_CONTAINER { DWORD Level; [switch_is(0x0000fff & Level)] union { [case(1)] PORT_INFO_1* pPortInfo1; [case(2)] PORT_INFO_2* pPortInfo2; [case(3)] PORT_INFO_3* pPortInfo3; [case(0x00FFFFFF)] PORT_INFO_FF* pPortInfoFF; } PortInfo; } PORT_CONTAINER; }