diff options
| author | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
|---|---|---|
| committer | Dave Wilson <[email protected]> | 2015-03-17 19:50:07 -0700 |
| commit | 97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch) | |
| tree | 46f3701832d70b420eb0fc0eb93261f9da45db3f /print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs | |
| parent | ef1905bf1e8825bb31120dfb27e0daf3154d859a (diff) | |
Initial publish
Diffstat (limited to 'print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs')
| -rw-r--r-- | print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs b/print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs new file mode 100644 index 00000000..91815d6a --- /dev/null +++ b/print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs @@ -0,0 +1,121 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright (c) Microsoft Corporation. All rights reserved +// +// +// Abstract: +// +// This file contains an Adapter that wrap the PrinterExtensionManager COM Interop type. +// +using System; +using System.IO; +using System.Collections; +using System.Collections.Generic; +using System.Runtime; +using System.Runtime.InteropServices; +using Microsoft.Samples.Printing.PrinterExtension.Types; + +namespace Microsoft.Samples.Printing.PrinterExtension +{ + public class PrinterExtensionManager + { + public PrinterExtensionManager() + { + _manager = new PrinterExtensionLib.PrinterExtensionManager(); + } + + #region IPrinterExtensionManager methods + + /// <summary> + /// Maps to COM IPrinterExtensionManager::DisableEvents + /// </summary> + public void DisableEvents() + { + _manager.DisableEvents(); + } + + /// <summary> + /// Maps to COM IPrinterExtensionManager::EnableEvents + /// </summary> + public void EnableEvents(Guid printerDriverId) + { + _manager.EnableEvents(printerDriverId); + } + + /// <summary> + /// Maps to COM IPrinterExtensionEvent::OnDriverEvent + /// </summary> + public event EventHandler<PrinterExtensionEventArgs> OnDriverEvent + { + add + { + if (_onDriverEvent == null) + { + _manager.OnDriverEvent += OnDriverEventReceiver; + } + _onDriverEvent += value; + } + remove + { + _onDriverEvent -= value; + if (_onDriverEvent == null) + { + _manager.OnDriverEvent -= OnDriverEventReceiver; + } + } + } + + /// <summary> + /// Maps to COM IPrinterExtensionEvent::OnPrinterQueuesEnumerated + /// </summary> + public event EventHandler<PrinterQueuesEnumeratedEventArgs> OnPrinterQueuesEnumerated + { + add + { + if (_onPrinterQueuesEnumerated == null) + { + _manager.OnPrinterQueuesEnumerated += OnPrinterQueuesEnumeratedReceiver; + } + _onPrinterQueuesEnumerated += value; + } + remove + { + _onPrinterQueuesEnumerated -= value; + if (_onPrinterQueuesEnumerated == null) + { + _manager.OnPrinterQueuesEnumerated -= OnPrinterQueuesEnumeratedReceiver; + } + } + } + + #endregion + + #region Implementation details + + private void OnDriverEventReceiver(PrinterExtensionLib.IPrinterExtensionEventArgs pEventArgs) + { + if (_onDriverEvent != null) + { + _onDriverEvent(this, new PrinterExtensionEventArgs(pEventArgs)); + } + } + + private void OnPrinterQueuesEnumeratedReceiver(PrinterExtensionLib.IPrinterExtensionContextCollection contextCollection) + { + if (_onPrinterQueuesEnumerated != null) + { + _onPrinterQueuesEnumerated(this, new PrinterQueuesEnumeratedEventArgs(contextCollection)); + } + } + + private event EventHandler<PrinterExtensionEventArgs> _onDriverEvent; + private event EventHandler<PrinterQueuesEnumeratedEventArgs> _onPrinterQueuesEnumerated; + + private PrinterExtensionLib.PrinterExtensionManager _manager; + + #endregion + } +}
\ No newline at end of file |
