summaryrefslogtreecommitdiff
path: root/print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs
diff options
context:
space:
mode:
authorDave Wilson <[email protected]>2015-03-17 19:50:07 -0700
committerDave Wilson <[email protected]>2015-03-17 19:50:07 -0700
commit97cf5197cf5b882b2c689d8dc2b555f2edf8f418 (patch)
tree46f3701832d70b420eb0fc0eb93261f9da45db3f /print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs
parentef1905bf1e8825bb31120dfb27e0daf3154d859a (diff)
Initial publish
Diffstat (limited to 'print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs')
-rw-r--r--print/v4PrintDriverSamples/PrinterExtensionSample/PrinterExtensionLibrary/PrinterExtensionManager.cs121
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