PowerPlan(PowerPlanHandle currentPlanHandle)
 {
     if (currentPlanHandle == null)
     {
         throw new ArgumentNullException(nameof(currentPlanHandle));
     }
     this.m_planHandle = currentPlanHandle;
 }
        private bool disposedValue = false;         // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    m_planHandle.Dispose();
                }

                m_planHandle  = null;
                disposedValue = true;
            }
        }