// // Sample .idl definition // typedef [switch_type(unsigned long)] union _NW_PRINTER_INFO { [case(1)] LPPRINTER_INFO_1 PrinterInfo1; [case(2)] LPPRINTER_INFO_2 PrinterInfo2; [default] ; } NW_PRINTER_INFO, *PNW_PRINTER_INFO, *LPNW_PRINTER_INFO; DWORD NwrGetPrinter( [in] NWWKSTA_PRINTER_CONTEXT PrinterHandle, [in] DWORD Level, [out,switch_is(Level)] LPPRINTER_INFO PrinterInfo, [in] DWORD BufferSize, [out] LPDWORD BytesNeeded ); ---------------------------------------------------------------------- // // Sample .acf definition (put this between the curly braces) // NwrGetPrinter([byte_count(BufferSize)] PrinterInfo);