/// <summary> /// This takes the IActivatedEventArgs and gets the IPrinterExtensionContext from it, via the PrintTaskConfiguration /// </summary> /// <param name="args">IActivatedEventArgs passed to OnActivated()</param> /// <returns></returns> private static IntPtr GetPrinterExtensionContextAsIntPtr(IActivatedEventArgs args) { PrintTaskSettingsActivatedEventArgs printTaskSettingsActivatedEventArgs = args as PrintTaskSettingsActivatedEventArgs; Windows.Devices.Printers.Extensions.PrintTaskConfiguration configuration = printTaskSettingsActivatedEventArgs.Configuration; Object printerExtensionContext = configuration.PrinterExtensionContext; IntPtr ptr = IntPtr.Zero; Guid iidIPrinterExtensionContext = new Guid("39843BF2-C4D2-41FD-B4B2-AEDBEE5E1900"); int hr = Marshal.QueryInterface(Marshal.GetIUnknownForObject(printerExtensionContext), ref iidIPrinterExtensionContext, out ptr); if (hr < 0) { throw new InvalidCastException(iidIPrinterExtensionContext.ToString()); } if (ptr != IntPtr.Zero) { // This is good } else { throw new InvalidCastException(iidIPrinterExtensionContext.ToString()); } return(ptr); }
public void LoadAdvancedPrintSettingsContext(PrintTaskSettingsActivatedEventArgs args) { Config = args.Configuration; Context = Config.PrinterExtensionContext; LoadScenario(typeof(DeviceAppForPrinters.Preferences)); }