/// <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);
        }
Exemple #2
0
 public void LoadAdvancedPrintSettingsContext(PrintTaskSettingsActivatedEventArgs args)
 {
     Config  = args.Configuration;
     Context = Config.PrinterExtensionContext;
     LoadScenario(typeof(DeviceAppForPrinters.Preferences));
 }