// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Runtime.InteropServices; using Common; using Microsoft.PowerToys.Telemetry; namespace Microsoft.PowerToys.PreviewHandler.Markdown { /// /// Implementation of preview handler for markdown files. /// [Guid("45769bcc-e8fd-42d0-947e-02beef77a1f5")] [ClassInterface(ClassInterfaceType.None)] [ComVisible(true)] public class MarkdownPreviewHandler : FileBasedPreviewHandler, IDisposable { private MarkdownPreviewHandlerControl _markdownPreviewHandlerControl; private bool disposedValue; /// /// Initializes a new instance of the class. /// public MarkdownPreviewHandler() { Initialize(); } /// public override void DoPreview() { _markdownPreviewHandlerControl.DoPreview(FilePath); } /// protected override IPreviewHandlerControl CreatePreviewHandlerControl() { PowerToysTelemetry.Log.WriteEvent(new Telemetry.Events.MarkdownFileHandlerLoaded()); _markdownPreviewHandlerControl = new MarkdownPreviewHandlerControl(); return _markdownPreviewHandlerControl; } /// /// Disposes objects /// /// Is Disposing protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { _markdownPreviewHandlerControl.Dispose(); } // TODO: free unmanaged resources (unmanaged objects) and override finalizer // TODO: set large fields to null disposedValue = true; } } /// public void Dispose() { // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method Dispose(disposing: true); GC.SuppressFinalize(this); } } }