int GetPrinterInterfaceID(string szPrinterName) { int iRet = 0; BLACKICEDEVMODELib.BlackIceDEVMODE BlackIceDEVMODE; BlackIceDEVMODE = new BLACKICEDEVMODELib.BlackIceDEVMODE(); // Load the devmode int iDevmode = BlackIceDEVMODE.LoadBlackIceDEVMODE(szPrinterName); if (iDevmode > 0) { // Get interface ID of the printer driver iRet = BlackIceDEVMODE.GetSessionID(iDevmode); // Release the DEVMODE BlackIceDEVMODE.ReleaseBlackIceDEVMODE(iDevmode); } return iRet; } bool SetPrinterInterfaceID(string szPrinterName, int iInterfaceID) { BLACKICEDEVMODELib.BlackIceDEVMODE BlackIceDEVMODE; BlackIceDEVMODE = new BLACKICEDEVMODELib.BlackIceDEVMODE(); bool bRet = true; // Load the devmode int iDevmode = BlackIceDEVMODE.LoadBlackIceDEVMODE(szPrinterName); if (iDevmode > 0) { // Set interface ID of the printer driver BlackIceDEVMODE.SetSessionID(iDevmode, iInterfaceID); // Save the DEVMODE if (!BlackIceDEVMODE.SaveBlackIceDEVMODE(szPrinterName, iDevmode)) bRet = false; // Release the DEVMODE BlackIceDEVMODE.ReleaseBlackIceDEVMODE(iDevmode); } else return false; return bRet; }