<?xml version="1.0"?>
<doc>
<assembly>
<name>
H_ComprobarCopiaDirectorios2025
</name>
</assembly>
<members>
<member name="T:H_ComprobarCopiaDirectorios2025.My.Resources.Resources">
<summary>
  Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc.
</summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.My.Resources.Resources.ResourceManager">
<summary>
  Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase.
</summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.My.Resources.Resources.Culture">
<summary>
  Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las
  búsquedas de recursos mediante esta clase de recurso fuertemente tipado.
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.InformeLogCopiaDirectorios">
 <summary>
 Informe del proceso de comprobación de copia de directorios
 Se relacionan todos los eventos sean OK o de error
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogCopiaDirectorios.SoloNombreDeFicheroSinRutaSinExtension">
 <summary>
  Devuelve unicamente un nombre de fichero
  SIN la ruta, y SIN la extension
 </summary>
 <returns></returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogCopiaDirectorios.CreateNew">
 <summary>
   Constructor [Shared CreateNew] 
 </summary>
 <returns>Devuelve un objeto [InformeLogCopiaDirectorios] con los valores iniciales en sus campos</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogCopiaDirectorios.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="paramQuienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogErroresEnCopiaDirectorios.SoloNombreDeFicheroSinRutaSinExtension">
 <summary>
  Devuelve unicamente un nombre de fichero
  SIN la ruta, y SIN la extension
 </summary>
 <returns></returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogErroresEnCopiaDirectorios.CreateNew">
 <summary>
   Constructor [Shared CreateNew] 
 </summary>
 <returns>Devuelve un objeto [InformeLogErroresEnCopiaDirectorios] con los valores iniciales en sus campos</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.InformeLogErroresEnCopiaDirectorios.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="paramQuienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS">
 <summary>
    El objeto de esta clase es la de comprobar que  
    los directorios origen y copia son iguales 
    realiza una comparaci&#243;n de dos directorios para ver si sin iguales o no. 
 </summary>
 <remarks>
    <dcterms.abstract>
       <para> Para realizar la comparaci&#243;n, la clase recibe los dos objetos [DirectoryInfo] que contiene los directorios, el de [Origen] y el [Copia]. </para> 
       <para> Primero lee los directorios [Origen] y el [Copia] recursivamente para obtener una lista con los directorios y otra con los ficheros. </para> 
       <para> Segundo, comprueba que los directorios sean iguales y que no exista ninguno de mas (ni de menos) . </para> 
       <para> Tercero, compara los ficheros, de cada directorio, para buscar los ficheros diferentes o los hu&#233;rfanos, que est&#225;n en un directorio pero no en el otro. </para> 
       <para> De cada comparaci&#243;n,  escribe un informe que se guarda en el directorio donde esta instalada (donde rueda) la aplicaci&#243;n. </para> 
       <para> Estas tareas se realizan de forma as&#237;ncrona (mediante Task) para evitar que se [congele] la aplicaci&#243;n. </para> 
    </dcterms.abstract>
    <example>
       Un Ejemplo con la forma de uso de la clase 
       <code>
          <![CDATA[
             #Region "Proceso TASK - Botones Funciones con las acciones "
              '------------
              ' El informe del progreso
              Private ReadOnly progress As New Progress(Of Dll_Infraestructura2024.Util.Numeros.PorcentajeRealizadoEventArgs) _
                                             (Sub(SubPorcentajeRealizado)
                                                  ControlInformacionProceso.ZProgressBarValueString = SubPorcentajeRealizado.ProcentajeRealizado.ToString
                                                  ControlInformacionProceso.ZText = SubPorcentajeRealizado.Identificador
                                                  ControlInformacionProceso.ZTextBoxElementosRestantes = SubPorcentajeRealizado.ValorParcialNoRealizado.ToString
                                                  ControlInformacionProceso.ZTextBoxTiempoRestante = SubPorcentajeRealizado.TiempoRestanteParaAcabarToString
                                              End Sub)
              '------------
              ' Define el Token de cancelaci&#243;n.
              Private sourceCancellationToken As New System.Threading.CancellationTokenSource()
              Private tokenCancellation As System.Threading.CancellationToken = sourceCancellationToken.Token
              '------------
              ' La funci&#243;n que hace el trabajo esta en la clase [objClasePruebaDos]
              ' y en esta clase tambi&#233;n se almacena el resultado del proceso
              ' es el objeto [CustomData]
              Protected Friend WithEvents objComprobadorCopiaDirectorios As TrabajoComprobacionCopiasDirectoriosTaskCQS
              ''' <summary>
              ''' Acci&#243;n a realizar al pulsar el bot&#243;n [Ejecutar]
              ''' </summary>
              Private Async Sub AccionButtonEjecutarTaskAsync()
                  '--
                  ' Apunte T&#225;ctico / problema
                  ' quiero que cada vez que llamo a la funci&#243;n se ejecute
                  ' si he llamado al cancelaci&#243;n, la funci&#243;n se detiene, y cuando vuelco a llamarla el [tokenCancellation]
                  ' tiene el valor [esta cancelada], y , evidentemente, la funci&#243;n no vuelve a ejecutarse.
                  ' para resolver este problema he estado haciendo muchas pruebas, y al final,
                  ' he dado con esta soluci&#243;n, que no se si es la mejor, pero que funciona
                  '
                  ' fuera de la funci&#243;n se definen las variables [Source] y [Token]
                  ' antes de empezar a trabajar, se usa el dispose para el [source]
                  ' a continuaci&#243;n se vuelve a instanciar las dos variables  [Source] y [Token]
                  ' y el proceso vuelve a funcionar cada vez que se llama.
                  '--
                  'sourceCancellationToken.Dispose()
                  sourceCancellationToken = New System.Threading.CancellationTokenSource()
                  tokenCancellation = sourceCancellationToken.Token
                  ' el objeto que tiene las funciones para hacer el trabajo
                  objComprobadorCopiaDirectorios = New TrabajoComprobacionCopiasDirectoriosTaskCQS(
                      ControlDirectorioOriginal.ZToDirectoryInfo,
                      ControlDirectorioCopiado.ZToDirectoryInfo,
                      progress,
                      tokenCancellation)
                  Await System.Threading.Tasks.Task.Run(Sub()
                                                            objComprobadorCopiaDirectorios.HacerLaTareaTask()
                                                        End Sub)
                  ControlInformacionProceso.ZClear()
                  '
                  ' b) obtener  - Ejecutar tareas en funci&#243;n del valor de TaskStatus
                  '               Valor que hay que actualizar en []
                  Select Case objComprobadorCopiaDirectorios.TaskStatus
                      Case Is = TaskStatus.RanToCompletion
                          ' la tarea termino de ejecutarse correctamente
                          ControlInformacionProceso.ZActualizaDatosProcesoTerminado(objComprobadorCopiaDirectorios.ResultadoValidacion.ErrorContent.ToString)
                          'Dim myBrush As New SolidColorBrush(Color.FromRgb(163, 240, 5))
                          Dim myBrush As New SolidColorBrush(Colors.LightGreen)
                          ControlInformacionProceso.ZTextoInformesBackground = myBrush
                          Using reproductor As ReproducirUnSonidoCQS = ReproducirUnSonidoCQS.CreateNew
                              reproductor.EntradaRutaLocalLayerEnSolucion = "06_Sonidos\"
                              reproductor.EntradaSoloNombreMasExtensionficheroMusicaString = "TerminadoTodoBien.mp3"
                              reproductor.ExecuteTrabajo()
                          End Using
                      Case Is = TaskStatus.Faulted
                          ' la tarea termino debido a una excepci&#243;n no controlada
                          ' ESTE VALOR ES UN ERROR
                          ' el proceso no debe continuar
                          ' registra el error
                          ControlInformacionProceso.ZActualizaDatosProcesoTerminado(objComprobadorCopiaDirectorios.ResultadoValidacion.ErrorContent.ToString)
                          Dim myBrush As New SolidColorBrush(Colors.Tomato)
                          ControlInformacionProceso.ZTextoInformesBackground = myBrush
                          Using reproductor As ReproducirUnSonidoCQS = ReproducirUnSonidoCQS.CreateNew
                              reproductor.EntradaRutaLocalLayerEnSolucion = "06_Sonidos\"
                              reproductor.EntradaSoloNombreMasExtensionficheroMusicaString = "TerminadoError.mp3"
                              reproductor.ExecuteTrabajo()
                          End Using
                      Case Is = TaskStatus.Canceled
                          ' El usuario cancelo la operaci&#243;n
                          ' Proceso cancelado por el usuario.
                          ControlInformacionProceso.ZActualizaDatosProcesoTerminado(objComprobadorCopiaDirectorios.ResultadoValidacion.ErrorContent.ToString)
                          Dim myBrush As New SolidColorBrush(Colors.Yellow)
                          ControlInformacionProceso.ZTextoInformesBackground = myBrush
                          Using reproductor As ReproducirUnSonidoCQS = ReproducirUnSonidoCQS.CreateNew
                              reproductor.EntradaRutaLocalLayerEnSolucion = "06_Sonidos\"
                              reproductor.EntradaSoloNombreMasExtensionficheroMusicaString = "Cancelar.mp3"
                              reproductor.ExecuteTrabajo()
                          End Using
                      Case Else
                          ' problema pendiente de solucionar
                          ControlInformacionProceso.ZActualizaDatosProcesoTerminado(objComprobadorCopiaDirectorios.ResultadoValidacion.ErrorContent.ToString)
                          Dim myBrush As New SolidColorBrush(Colors.Red)
                          ControlInformacionProceso.ZTextoInformesBackground = myBrush
                          Using reproductor As ReproducirUnSonidoCQS = ReproducirUnSonidoCQS.CreateNew
                              reproductor.EntradaRutaLocalLayerEnSolucion = "06_Sonidos\"
                              reproductor.EntradaSoloNombreMasExtensionficheroMusicaString = "TerminadoDangerSirenAlarm.mp3"
                              reproductor.ExecuteTrabajo()
                          End Using
                  End Select
                  ' [Botones]
                  ' OJO - Al terminar el proceso de [Ejecutar], los botones se colocan en su situaci&#243;n inicial. 
                  Call AuxActivarElButonCancelar(False)
              End Sub
              '------------
              ''' <summary>
              ''' Acci&#243;n a realizar al pulsar el bot&#243;n [Cancelar]
              ''' </summary>
              Private Sub AccionButtonCancelarTask()
                  Call sourceCancellationToken.Cancel()
              End Sub
              ''' <summary>
              ''' Acci&#243;n a realizar al pulsar el bot&#243;n [Terminar]
              ''' </summary>
              Private Sub AccionButtonTerminarTask()
                  '--
                  ' Este es el proceso que se realiza al pulsar el bot&#243;n [Terminar]
                  ' Me.Close()
                  '--
              End Sub
             #End Region
          ]]>
       </code>
    </example>
    <dcterms.created>
       <scheme>dcterms.ISO8601 </scheme>
       <content>2024-12-19T11:46:32</content>
    </dcterms.created>
    <dc.creator>
       <scheme>dcterms.DCSV </scheme>
       <content>Joaquin Medina Serrano</content>
    </dc.creator>
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.EntradaDirectorioOrigen">
 <summary>
 El directorio de origen
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.EntradaDirectorioDestino">
 <summary>
 El directorio copia, el que hay que comprobar que estén copiados todos los ficheros (y directorios)
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.SalidaInformeLogErroresEnCopiaFicheros">
 <summary>
 Un listado completo con todos los nombre de ficheros tratados y lo que ha ocurrido con los mismos
 Si hay fichero en [Origen] no copiados se relacionan aparte en el informe
 si hay ficheros en [Destino] que no tienen  [Origen] se relacionan aparte en el informe
 se añade un resumen numérico
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.SalidaInformeResumen">
 <summary>
 Un informe de UNA linea que dice: <br />
 o bien,[Todo correcto], <br />
 o bien [Problema, En el directorio [Origen] hay [xxx] ficheros que no se han copiado],  <br />
 o bien [Problema, En el directorio de [Destino] existen [xxx] ficheros que no están en el directorio [Origen]]
 </summary>
 <returns></returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.#ctor">
 <summary>
  Constructor general 
  Necesario para los constructores [Create]
 </summary>
 <remarks>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.CreateNew">
 <summary>
   Constructor [Shared CreateNew] 
 </summary>
 <returns>Devuelve un objeto [TrabajoComprobacion] con los valores iniciales en sus campos</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.Create(System.IO.DirectoryInfo,System.IO.DirectoryInfo)">
 <summary>
   Constructor general 
 </summary>
 <returns>Devuelve un objeto [TrabajoComprobacion] con los valores iniciales pasados por parámetro</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.#ctor(System.IO.DirectoryInfo,System.IO.DirectoryInfo)">
 <summary>
   Constructor general 
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.#ctor(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.IProgress{Dll_Infraestructura2024.Util.Numeros.PorcentajeRealizadoEventArgs},System.Threading.CancellationToken)">
 <summary>
   Constructor general 
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.ResultadoValidacion">
 <summary>
 La propiedad resultado Validación
 Tiene SIEMPRE el valor FALSE mientras no se ejecute [Validate]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.Validate">
 <summary>
    Valida los campos de esta clase
 </summary>
 <returns>un objeto [System.Windows.Controls.ValidationResult] con el resultado de la validación</returns>
 <remarks>
  <para>OBSERVACION </para>
  <para>Los datos de validación están en la clase  </para>
  <para>[ValidationRule] </para>
  <example>http://msdn.microsoft.com/es-es/library/System.Windows.Controls.ValidationRule(v=vs.110).aspx</example>
  <example>http://msdn.microsoft.com/es-es/library/system.windows.controls.validationrule.validate(v=vs.110).aspx</example>
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.IsValid">
 <summary>
   Informa si los campos de la clase son validos  o no
 </summary>
 <returns>[True] si todo es correcto, [False], si existe algún problema y/o error</returns>
</member>
<member name="E:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.CanExecuteChanged">
 <summary>
  Se dispara en cuando cambia el valor devuelto por [CanExecute]
 </summary>
 <remarks> 
  Interfaz [System.Windows.Input.ICommand]. Evento [CanExecuteChanged]
 </remarks>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.campoCanExecuteAnterior">
 <summary>
  Variable local que contiene el valor que devuelve la ejecución de  la función [CanExecute]   
  Se usa para saber si hay que disparar el evento [CanExecuteChanged] o no
  tiene el valor True, porque soy optimista y supongo que siempre se puede ejecutar
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.CanExecute">
 <summary>
  ¿ Se puede ejecutar el proceso execute? S/N
 </summary>
  <returns>
     <para>[True], el proceso se puede ejecutar. [False], pues no.</para>
 </returns>
 <remarks> Funciona como la interface ICOMMAND, pero en sencillo y sin necesidad de un entrono gráfico (una ventana)</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.ExecuteTrabajo">
 <summary>
  Ejecutar la tarea
 </summary>
 <remarks> Funciona como la interface ICOMMAND, pero en sencillo y sin necesidad de un entrono gráfico (una ventana)</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.AuxDisparararErrorExecute">
 <summary>
 Función auxiliar que dispara un error si no se puede ejecutar [execute]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.HacerLaTareaTask">
 <summary>
 Lee los directorios (recursivamente)
 comprueba la existencia de los ficheros en los dos directorios
 </summary>
 <remarks> Un valor [ValidationResult] con in mini informe del proceso </remarks>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.campoDisposedValue">
 <summary>
  Variable local para detectar llamadas redundantes que indica [True] el objeto se ha eliminado, [False], en caso contrario. 
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.IsDisposed">
 <summary>
     Obtiene un valor que indica si el objeto se ha eliminado. 
 </summary>
 <value>
   <para>Tipo: <see cref="T:System.Boolean">Boolean</see></para>
   <para>Es true si objeto se ha eliminado; en caso contrario, es false.</para>
 </value>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="paramQuienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
 <remarks>
  <para>
     Dispose (bool quienMeLLama) se ejecuta en dos escenarios distintos.
  </para>
  <para>
     Si [quienMeLLama] es igual a true, el método ha sido llamado 
     directamente, o indirectamente, por el código de un usuario. 
     Los recursos administrados y no administrados se pueden eliminar.
  </para>
  <para>
     Si [quienMeLLama] es igual a false, el método ha sido llamado por el
     [runtime] desde el interior del finalizador y usted no debe hacer 
     referencia a otros objetos, ni siquiera para eliminarlos.
     Solo los recursos no administrados pueden ser eliminados.
  </para>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosTaskCQS.Dispose">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <remarks>
  Visual Basic agregó este código para implementar correctamente el patrón descartable.
  No cambie este código. Coloque el código de limpieza en Dispose(disposing As Boolean).
 </remarks>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule">
 <summary>
  Regla de validación personalizada para la clase [TrabajoComprobacionCopiasDirectoriosTaskCQS]
  Version [2024/02/10]
 </summary>
 <remarks>
<para>  Las reglas de validación  <br />
 - ) El objeto [paramValue] No puede ser NULL<br />
 - ) El objeto [paramValue] debe contener un objeto [TrabajoComprobacionCopiasDirectoriosTaskCQS]<br />
 - ) El directorio original tiene que existir (no ser NULL) y existir en disco<br />
 - ) El directorio copia    tiene que existir (no ser NULL) y existir en disco<br />
 - ) El directorio original y el directorio copia tienen que ser diferentes
 </para>    

  <para>
  Mas información <br />
  <seealso cref="T:System.Windows.Controls.ValidationRule">ValidationRule (Clase)</seealso> <br />
  <seealso cref="T:System.Windows.Controls.ValidationResult"> ValidationResult(Clase) </seealso> <br />
  Espacio de nombres:<seealso cref="N:System.Windows.Controls"> System.Windows.Controls </seealso> <br />
  Ensamblado: PresentationFramework (en PresentationFramework.dll)   
 </para>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.#ctor">
 <summary>
 Constructor
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.ResultadoValidacion">
 <summary>
 La propiedad resultado Validación
 Tiene SIEMPRE el valor FALSE mientras no se ejecute [Validate]
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.IsValid">
 <summary>
   Informa si los campos de la clase son validos  o no
 </summary>
 <returns>[True] si todo es correcto, [False], si existe algún problema y/o error</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.Validate(System.Object,System.Globalization.CultureInfo)">
 <summary>
   Realiza las comprobaciones de validación para la clase [TrabajoComprobacionCopiasDirectoriosTaskCQS]
 </summary>
 <param name="paramValue">El objeto [System.Object] que engloba a un objeto [TrabajoComprobacionCopiasDirectoriosTaskCQS] y del que se comprueba su validez</param>
 <param name="paramCultureInfo">La referencia cultural a usar en esta regla. Se espera un valor [System.Globalization.CultureInfo.CurrentCulture], o bien [Nothing]</param>
 <returns>
 Devuelve un objeto [System.Windows.Controls.ValidationResult].
 Carga la variable miembro [ResultadoValidacion]
 </returns>
 <remarks>
  <para>Mas información </para>
  <example>http://msdn.microsoft.com/es-es/library/System.Windows.Controls.ValidationRule(v=vs.110).aspx</example>
  <example>http://msdn.microsoft.com/es-es/library/system.windows.controls.validationrule.validate(v=vs.110).aspx</example>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.AuxFuncionValidadora(System.Object,System.Globalization.CultureInfo)">
 <summary>
  Función auxiliar que realiza el proceso de validación
  Realiza las comprobaciones de validación para la clase [TrabajoComprobacionCopiasDirectoriosTaskCQS]
 </summary>
 <param name="paramValue">El objeto [System.Object] que engloba a un objeto [TrabajoComprobacionCopiasDirectoriosTaskCQS] y del que se comprueba su validez</param>
 <param name="paramCultureInfo">La referencia cultural a usar en esta regla. Se espera un valor [System.Globalization.CultureInfo.CurrentCulture], o bien [Nothing]</param>
 <returns>
 Devuelve un objeto [System.Windows.Controls.ValidationResult]. <br />
 En el propiedad [IsValid] un valor [True] indica que todo estaba correcto, un valor [False], indica que alguna regla no se ha cumplido <br />
 En la propiedad [ErrorContent] se describe escuetamente cual ha sido el problema 
 </returns>
 <remarks>
<para>  Las reglas de validación  <br />
 - ) El objeto [paramValue] No puede ser NULL<br />
 - ) El objeto [paramValue] debe contener un objeto [TrabajoComprobacionCopiasDirectoriosTaskCQS]<br />
 - ) El directorio original tiene que existir (no ser NULL) y existir en disco<br />
 - ) El directorio copia    tiene que existir (no ser NULL) y existir en disco<br />
 - ) El directorio original y el directorio copia tienen que ser diferentes
 </para>    
 </remarks>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.campoDisposedValue">
 <summary>
  Variable local para detectar llamadas redundantes que indica [True] el objeto se ha eliminado, [False], en caso contrario. 
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.IsDisposed">
 <summary>
     Obtiene un valor que indica si el objeto se ha eliminado. 
 </summary>
 <value>
   <para>Tipo: <see cref="T:System.Boolean">Boolean</see></para>
   <para>Es true si objeto se ha eliminado; en caso contrario, es false.</para>
 </value>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="paramQuienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
 <remarks>
  <para>
     Dispose (bool quienMeLLama) se ejecuta en dos escenarios distintos.
  </para>
  <para>
     Si [quienMeLLama] es igual a true, el método ha sido llamado 
     directamente, o indirectamente, por el código de un usuario. 
     Los recursos administrados y no administrados se pueden eliminar.
  </para>
  <para>
     Si [quienMeLLama] es igual a false, el método ha sido llamado por el
     [runtime] desde el interior del finalizador y usted no debe hacer 
     referencia a otros objetos, ni siquiera para eliminarlos.
     Solo los recursos no administrados pueden ser eliminados.
  </para>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.TrabajoComprobacionCopiasDirectoriosValidationRule.Dispose">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <remarks>
  Visual Basic agregó este código para implementar correctamente el patrón descartable.
  No cambie este código. Coloque el código de limpieza en Dispose(disposing As Boolean).
 </remarks>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.FechaCompilacionAttribute">
 <summary>
  Atributo personalizado para usarse en Assembly
  que permite definir la fecha de creación del ensamblado
 </summary>
 <remarks>
   En realidad recibe una cadena que se trasforma en un objeto DateTime
   Que es el que se devuelve a través de la propiedad
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.FechaCompilacionAttribute.FechaDeCompilacion">
 <summary>
 La fecha de compilación
 </summary>
 <returns>un objeto DateTime con la información recibida </returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.FechaCompilacionAttribute.#ctor(System.String)">
 <summary>
 Constructor
 </summary>
 <param name="paramFechaCompilacion">Una cadena que contiene una fecha en formato ISO 8601 [Ejemplo 2021-05-26 T 12:24]</param>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios">
<summary>
ControlCopiasDirectorios
</summary>
</member>
<member name="E:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZBotonEjecutarPulsado">
 <summary>El evento [ZBotonEjecutarPulsado].</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.OnBotonEjecutarPulsado">
 <summary>Disparar el evento [ZBotonEjecutarPulsado]</summary>
</member>
<member name="E:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZBotonCancelarPulsado">
 <summary>El evento [ZBotonCancelarPulsado].</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.OnBotonCancelarPulsado">
 <summary>Disparar el evento [ZBotonCancelarPulsado]</summary>
</member>
<member name="E:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZBotonTerminarPulsado">
 <summary>El evento [ZBotonTerminarPulsado].</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.OnBotonTerminarPulsado">
 <summary>Disparar el evento [ZBotonTerminarPulsado]</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZClear">
 <summary>
 Restablece el estado original del objeto
 Pone las variables miembro de la clase con sus valores por defecto
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZIsEmpty">
------------------------------------------------------------
 <summary>
   ¿¿ La clase tiene el valor Empty?? 
   ¿¿ Todos sus campos tienen el valor empty??
 </summary>
 <returns>
 <para> Un valor lógico que indica:</para>
 <para> True.: Si la clase tiene el valor empty 
              (todas sus campos miembros tienen su valor Empty</para>
 <para> False: La clase no esta vacía. Alguno (uno o varios)de los
               campos miembro de la clase tienen valores
              (algún valor distinto del valor por defecto el valor Empty)
 </para>
 </returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.NewCommandBinding_Executed(System.Object,System.Windows.Input.ExecutedRoutedEventArgs)">
 <summary>
 [Command] Menu [ArchivoNuevo] pulsado
 </summary> 
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionMenuArchivoNuevo">
 <summary>
 Acción a realizar al pulsar el menu [AchivoNuevo]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionMenuArchivoImprimirInforme">
 <summary>
 Acción a realizar al pulsar el menu [AchivoImprimir]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ZAccionButtonEjecutar">
 <summary>
 Acción a realizar al pulsar el botón [Ejecutar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionButtonCancelar">
 <summary>
 Acción a realizar al pulsar el botón [Cancelar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionButtonTerminar">
 <summary>
 Acción a realizar al pulsar el botón [Terminar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionButtonEjecutarTaskAsync">
 <summary>
 Acción a realizar al pulsar el botón [Ejecutar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionButtonCancelarTask">
 <summary>
 Acción a realizar al pulsar el botón [Cancelar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AccionButtonTerminarTask">
 <summary>
 Acción a realizar al pulsar el botón [Terminar]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.BotonEjecutarCommandBinding_Executed(System.Object,System.Windows.Input.ExecutedRoutedEventArgs)">
 <summary>
 [Command] Botón [Ejecutar] pulsado
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.BotonCancelarCommandBinding_Executed(System.Object,System.Windows.Input.ExecutedRoutedEventArgs)">
 <summary>
 [Command] Botón [Cancelar] pulsado
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.BotonCloseCommandBinding_Executed(System.Object,System.Windows.Input.ExecutedRoutedEventArgs)">
 <summary>
 [Command] Botón [Terminar] pulsado
 </summary>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.campoElBotonEjecutarEstaActivado">
 <summary>
   Estas variables se emplean en las funciones [Cmd_Executed] Command Executed, 
   para saber si el botón cancelar esta [Enable], o no.
   He intentado usar directamente al valor [Button.IsEnabled], pero el problema 
   es que desde un command, se puede leer su valor, pero NO PUEDO cambiarlo
   (y no sé porque,) pero lo que sí puedo es cambiar el valor de una 
   variable local de la ventana y consultar su valor en los demás command.
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AuxActivarElButonCancelar(System.Boolean)">
 <summary>
 Cambia los semáforos que muestran / ocultan los botones según el botón pulsado
 </summary>
 <param name="valor">un valor Boolean que indica si el botón [Cancelar] esta activado [True], o no [False]</param>"
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.ResultadoValidacion">
 <summary>
 La propiedad resultado Validación
 Tiene SIEMPRE el valor FALSE mientras no se ejecute [Validate]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.Validate">
 <summary>
    Valida los campos de esta clase
 </summary>
 <returns>un objeto [System.Windows.Controls.ValidationResult] con el resultado de la validación</returns>
 <remarks>
  <para>OBSERVACION </para>
  <para>Los datos de validación están en la clase  </para>
  <para>[ValidationRule] </para>
  <example>http://msdn.microsoft.com/es-es/library/System.Windows.Controls.ValidationRule(v=vs.110).aspx</example>
  <example>http://msdn.microsoft.com/es-es/library/system.windows.controls.validationrule.validate(v=vs.110).aspx</example>
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.IsValid">
 <summary>
   Informa si los campos de la clase son validos  o no
 </summary>
 <returns>[True] si todo es correcto, [False], si existe algún problema y/o error</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.AuxFuncionValidadora">
 <summary>
 ALTERNATIVA
 Función que realiza el trabajo de validación de la clase
 ¡¡¡ ATENCION !!!
 es preferible usar una clase validadora especifica
 si no interesa entonces usar esta función
 </summary>
 <returns>un objeto [System.Windows.Controls.ValidationResult] con el resultado de la validación</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.ControlCopiasDirectorios.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo">
 <summary>
    <para> Formatea una cadena para usarla (por ejemplo) como titulo de la ventana en la que se muestra la fecha de compilación.  </para> 
    <para> De esta forma sabremos, de una forma fácil, que versión del programa se está usando.  </para> 
 </summary>
 <remarks>
 <observaciones>
    <para> Ejemplo de la cadena generada:  {MainWindow - Version 1.0 (2016/02/19)} </para> 
 </observaciones>
 <bibliografia>
    <para> Añadir Información de la version al titulo de las ventanas </para> 
    <para> <code>http://www.codeproject.com/Tips/1079681/Adding-Version-Info-to-your-Winforms-app-in-Easy-S </code></para> 
 </bibliografia>
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.TituloVentana">
 <summary>
  Valor del titulo de la ventana - Ejemplo [MainWindows]
  (si no se proporciona se devuelve el nombre del ensamblado)
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.NombreEnsamblado">
 <summary>
 El nombre del ensamblado (Solo el nombre sin ruta y sin extension) - Ejemplo [ResizeIneitor]
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.VersionDosCifras">
 <summary>
 Version del ensamblado de dos cifras - Ejemplo del resultado [Versión = 1.0]
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.VersionCuatroCifras">
 <summary>
 Version del ensamblado de cuatro cifras - Ejemplo del resultado [Versión = 1.2.3.4]
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.FechaCompilacion">
 <summary>
  La fecha de la ultima compilación del ensamblado - Ejemplo [2016/05/22]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.#ctor">
 <summary>
 Constructor
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.#ctor(System.String)">
 <summary>
 Constructor
 </summary>
 <param name="tituloVentana"> 
 [Opcional total] se espera un valor [Wpf,   El valor [Title]], [Forms, El valor [Text]]
 si no se proporciona se toma el nombre del ensamblado
 </param>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.CalculosNew(System.String)">
 <summary>
 Esta función llamada por los constructores carga los valores de las variables miembro
 </summary>
 <param name="tituloVentana">
  Valor del titulo de la ventana - Ejemplo [MainWindows]
  (si no se proporciona se devuelve el nombre del ensamblado) Ejemplo [ResizeIneitor]
 </param>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.GetNombreVersionFechaCompilacion">
 <summary>
  Ejemplo de la cadena generada:  {MainWindow - Version 1.0 - Compilada:2016/02/19}
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.GetVersionFechaCompilacion">
 <summary>
  Ejemplo de la cadena generada:  {Version 1.0 - Compilada:2016/02/19}
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.GetVersionInfo.IsDisposed">
 <summary>
     Obtiene un valor que indica si el objeto se ha eliminado. 
 </summary>
 <value>
   <para>Tipo: <see cref="T:System.Boolean">Boolean</see></para>
   <para>Es true si objeto se ha eliminado; en caso contrario, es false.</para>
 </value>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS">
 <summary>
    Genera un texto de [Copyright] para el control [StatusBar] 
    Ejemplo: Copyright &#169; Desde [1997] - Joaquin ('jms32') Medina Serrano 2023 - 2024 
 </summary>
 <remarks>
    <dcterms.abstract>
       <para> Esta clase genera un texto de Copyright para incluirlo en un control Status Bar o donde haga falta </para> 
       <para> El formato del texto es el siguiente: </para> 
       <para> Copyright &#169; Desde [1997] - Joaquin ('jms32') Medina Serrano 2023 - 2024 </para> 
       <para> Existe una constante que indica el a&#241;o de inicio de la cadena [2023 - 2025] </para> 
       <para> Para que funcione sin problemas, hay que copiar esta clase en el ensamblado que la usa </para> 
    </dcterms.abstract>
    <example>
       Un Ejemplo con la forma de uso de la clase 
       <code>
          <![CDATA[
             El texto que se escribir&#225; en el StatusBar
                  Dim textoStatus As String = String.Empty
                  Using generadorStatus As New Util.Menus.StatusBarTextoCopyrightCQS
                      generadorStatus.ExecuteOperacion()
                      textoStatus = generadorStatus.GetTextoCopyright
                  End Using
                  Return textoStatus
          ]]>
       </code>
    </example>
    <dcterms.created>
       <scheme>dcterms.ISO8601</scheme>
       <content>2023-11-25T16:07:28</content>
    </dcterms.created>
    <dc.creator>
       <scheme>dcterms.DCSV</scheme>
       <content>Joaquin Medina Serrano</content>
    </dc.creator>
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.GetTextoCopyright">
 <summary>
 Texto de [Copyright] generado
 </summary>
 <returns>
   Ejemplo: Copyright © Desde [1997] - Joaquin ('jms32') Medina Serrano 2023 - 2024
 </returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.#ctor">
 <summary>
  Constructor general 
  Necesario para los constructores [Create]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.CreateNew">
 <summary>
   Constructor [Shared CreateNew] 
 </summary>
 <returns>Devuelve un objeto [StatusBarTextoCopyrightCQS] con los valores iniciales en sus campos</returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.GenerarTextoCopyright">
 <summary>
   Genera un texto de [Copyright] para el StatusBar
   Ejemplo: Copyright © Desde [1997] - Joaquin ('jms32') Medina Serrano 2023 - 2024
 </summary>
 <returns>
   Ejemplo del texto generado:
   Copyright © Desde [1997] - Joaquin ('jms32') Medina Serrano 2023 - 2024
 </returns>
</member>
<member name="E:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.CanExecuteChanged">
 <summary>
  Interfaz [ICommandSencilla]. Evento [CanExecuteChanged]
 </summary>
 <remarks> Se dispara en [CanExecute] cuando cambia el valor devuelto por [CanExecute]</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.CanExecute">
 <summary>
  Interfaz [ICommandSencilla]. 
  ¿ Se puede ejecutar el proceso execute? S/N
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.ExecuteOperacion">
 <summary>
  Interfaz [ICommandSencilla]. 
  Ejecutar la tarea.
 </summary>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.campoDisposedValue">
 <summary>
  Variable local para detectar llamadas redundantes que indica [True] el objeto se ha eliminado, [False], en caso contrario. 
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.IsDisposed">
 <summary>
     Obtiene un valor que indica si el objeto se ha eliminado. 
 </summary>
 <value>
   <para>Tipo: <see cref="T:System.Boolean">Boolean</see></para>
   <para>Es true si objeto se ha eliminado; en caso contrario, es false.</para>
 </value>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="paramQuienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
 <remarks>
  <para>
     Dispose (bool quienMeLLama) se ejecuta en dos escenarios distintos.
  </para>
  <para>
     Si [quienMeLLama] es igual a true, el método ha sido llamado 
     directamente, o indirectamente, por el código de un usuario. 
     Los recursos administrados y no administrados se pueden eliminar.
  </para>
  <para>
     Si [quienMeLLama] es igual a false, el método ha sido llamado por el
     [runtime] desde el interior del finalizador y usted no debe hacer 
     referencia a otros objetos, ni siquiera para eliminarlos.
     Solo los recursos no administrados pueden ser eliminados.
  </para>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.StatusBarTextoCopyrightCQS.Dispose">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <remarks>
  Visual Basic agregó este código para implementar correctamente el patrón descartable.
  No cambie este código. Coloque el código de limpieza en Dispose(disposing As Boolean).
 </remarks>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.Util.Menus.TextoDescripcionAplicacion">
 <summary>
 Esta clase devuelve un texto que explica que hace y para que se usa esta aplicación.
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.TextoDescripcionAplicacion.GetDescripcion">
 <summary>
  Obtiene un texto que se puede usar como descripción de lo que hace el programa
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Util.Menus.TextoDescripcionAplicacion.GetDescripcionSencilla">
 <summary>
 Texto corto que describe brevemente lo que hace el programa
 Se emplea en AcercaDe
 </summary>
 <returns></returns>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowMensajeNoHayPermisosDeEscritura">
<summary>
WindowMensajeNoHayPermisosDeEscritura
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowMensajeNoHayPermisosDeEscritura.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda">
 <summary>
  Contiene las funciones del menu de ayudas
 </summary>
 <remarks>
    ' Forma de uso de la clase
    ' En el parámetro del constructor, se espera una instancia de la 
    ' ventana padre (normalmente el valor ME) 
    ' o bien el valor Nothing.

    Using Help As New WpfMenuAyuda(Me)
        Help.AccionMenuAyudaWikypedia()
    End Using
 </remarks>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.Owner">
 <summary>
 Propiedad privada que contiene la ventana padre o el valor nothing
 </summary>
 <remarks> ¡¡ CUIDADO !! No se puede establecer [Owner] de una pantalla que no se ha mostrado</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.#ctor(System.Windows.Window)">
 <summary>
  Constructor
 </summary>
 <param name="paramVentanaPadre">
    Se espera una instancia de la ventana padre (normalmente el valor ME) 
    o bien el valor Nothing
  </param>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.AccionLanzaVentana(System.Windows.Window)">
 <summary>
  Función que hace el trabajo de mostrar el formulario ( la ventana) pasada por parámetro
 </summary>
 <param name="paramVentanaQueSeMuestra">un objeto [System.Windows.Window] instan ciado</param>
 <remarks>
 <example>
   ' Forma de usarse
    Dim objForm As New WindowAyudaContenidos
    Call AccionLanzaVentana(objForm)
    ' O bien
    Call AccionLanzaVentana(New WindowAyudaContenidos)
 </example>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaInformacionDelSistema">
 <summary>
  [msinfo32.exe] - Abre la ventana de información del sistema
  Permite Ver la información avanzada acerca de la configuración de hardware y de software
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaMonitorDeRecursos">
 <summary>
   [resmon.exe] - Abre la ventana del monitor de recursos.
    Permite supervisar el rendimiento y el uso de los recursos del equipo local
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaMonitorDeRendimiento">
 <summary>
 [perfmon.exe] - Abre (muestra) la ventana del Monitor de rendimiento
 Supervise el rendimiento de equipos locales o remotos
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaPanelDeControl">
 <summary>
  [control.exe] Abre la ventana del panel de control de Windows
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaSimboloDelSistema">
 <summary>
  [cmd.exe] - Símbolo del sistema - Abre una ventana con el símbolo del sistema
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaVersionWindows">
 <summary>
 [winver.exe] - Muestra una ventana con la información de la version de windows
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfLanzarAyudaHerramientaDiagnosticoDirectX">
 <summary>
    [DxDiag.exe] -  Abre una ventana con la herramienta de diagnostico de Direct X
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfAyudaAdministracionDeEquipos">
 <summary>
    [compmgmt.msc] - Abre una ventana con la herramienta de [Administración de equipos] [compmgmt.msc]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfAyudaAdministracionDeDiscos">
 <summary>
   [diskmgmt.msc] - Abre una ventana con la herramienta de  [Administrador de discos] [diskmgmt.msc]
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfAyudaVisorDeEventos">
 <summary>
    [eventvwr.exe] - Abre una ventana con la herramienta de [Visor de Eventos] [eventvwr.exe].
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.WpfAyudaWindowsPowerShell">
 <summary>
   [powershell.exe] - Abre una ventana con la herramienta de [Windows PowerShell] [powershell.exe].
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.AuxiliarMensajeBox(System.String)">
 <summary>
 Auxiliar, muestra la ventana MessageBox con un mensaje que se le pasa por parámetro
 </summary>
 <param name="paramMensaje">Mensaje que se muestra</param>
</member>
<member name="F:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda._disposedValue">
 <summary>
  Variable local para detectar llamadas redundantes que indica [True] el objeto se ha eliminado, [False], en caso contrario. 
 </summary>
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.IsDisposed">
 <summary>
     Obtiene un valor que indica si el objeto se ha eliminado. 
 </summary>
 <value>
   <para>Tipo: <see cref="T:System.Boolean">Boolean</see></para>
   <para>Es true si objeto se ha eliminado; en caso contrario, es false.</para>
 </value>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.Dispose(System.Boolean)">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <param name="quienMeLLama">[True], llama el usuario, [False], llama el sistema</param>
 <remarks>
  <para>
     Dispose (bool quienMeLLama) se ejecuta en dos escenarios distintos.
  </para>
  <para>
     Si [quienMeLLama] es igual a true, el método ha sido llamado 
     directamente, o indirectamente, por el código de un usuario. 
     Los recursos administrados y no administrados se pueden eliminar.
  </para>
  <para>
     Si [quienMeLLama] es igual a false, el método ha sido llamado por el
     [runtime] desde el interior del finalizador y usted no debe hacer 
     referencia a otros objetos, ni siquiera para eliminarlos.
     Solo los recursos no administrados pueden ser eliminados.
  </para>
 </remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WpfMenuAyuda.Dispose">
 <summary>
  [Dispose] Código de limpieza de la clase
 </summary>
 <remarks>
  Visual Basic agregó este código para implementar correctamente el patrón descartable.
  No cambie este código. Coloque el código de limpieza en Dispose(disposing As Boolean).
 </remarks>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaAcercaDe">
<summary>
WindowAyudaAcercaDe
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaAcercaDe.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaAcercaDe.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaAcercaDe.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaAcercaDe.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaContenidos">
<summary>
WindowAyudaContenidos
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaContenidos.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaContenidos.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaContenidos.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaContenidos.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento">
<summary>
WindowAyudaEsperaUnMomento
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="P:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento.ZIsClosed">
 <summary>
  Indica si la ventana esta cerrada o no
 </summary>
 <returns>
  [True],  la ventana esta cerrada (o es nothing)
  [False], la ventana esta visible
 </returns>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaEsperaUnMomento.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaLicencia">
<summary>
WindowAyudaLicencia
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaLicencia.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaLicencia.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaLicencia.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaLicencia.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaNoHaySoporteTecnico">
<summary>
WindowAyudaNoHaySoporteTecnico
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaNoHaySoporteTecnico.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaNoHaySoporteTecnico.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaNoHaySoporteTecnico.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaNoHaySoporteTecnico.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowAyudaSiHaySoporteTecnico">
<summary>
WindowAyudaSiHaySoporteTecnico
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaSiHaySoporteTecnico.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaSiHaySoporteTecnico.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaSiHaySoporteTecnico.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowAyudaSiHaySoporteTecnico.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowHerramientasOpcionesNoHayOpciones">
<summary>
WindowHerramientasOpcionesNoHayOpciones
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowHerramientasOpcionesNoHayOpciones.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowHerramientasOpcionesNoHayOpciones.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowHerramientasOpcionesNoHayOpciones.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowHerramientasOpcionesNoHayOpciones.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.WindowMuestraFotoJoaqui">
<summary>
WindowMuestraFotoJoaqui
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowMuestraFotoJoaqui.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowMuestraFotoJoaqui.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowMuestraFotoJoaqui.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.WindowMuestraFotoJoaqui.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.MainWindowMenus">
<summary>
MainWindowMenus
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.InicializacionCamposFormulario">
 <summary>
  Carga los cuadro de texto con la información que muestra este formulario
  Se tiene que llamar desde el evento [Initialized]
  No es obligatorio
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.LeerDatosVentanaDeIni">
 <summary>
    Lee  (de un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.GuardarDatosVentanaEnIni">
 <summary>
    Guarda (en un fichero tipo Ini)  los valores (left, top, width, Height) de la  ventana
 </summary>   
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.TextoParaStatusBar">
 <summary>
 Genera un texto de [Copyright] para el StatusBar
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.OpcionMenuSiempreSeEjecutaCmd_CanExecute(System.Object,System.Windows.Input.CanExecuteRoutedEventArgs)">
 <summary>
  Siempre se ejecuta
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.MainWindowMenus.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="T:H_ComprobarCopiaDirectorios2025.Application">
<summary>
Application
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.VentanaNoHayPermisosDeEscritura">
 <summary>
 Muestra una ventana que indica que no tienes permisos de acceso al disco
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.WriteEntryInfo(System.String,System.String)">
 <summary>
  Escribe un texto en el log con el evento {Information}
 </summary>
 <param name="paramTextoLog">Texto (libre) que describe lo que ha pasado</param>
 <param name="paramRutaCompletaClaseLlamadora">
     <para>Se espera una cadena de texto con uno de los siguientes valores:</para>
     <para> a) Una cadena vacía, en este caso la función averiguara el 
               nombre de la clase a través de su 
               atributo [CallerFilePathAttribute]</para>
     <para> b) Una cadena de texto con el nombre de la clase </para>
 </param>
 <remarks>
 <code>
     Bibliografia [CallerMemberName>]
          https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/caller-information
 </code>
</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.WriteEntryError(System.String,System.String)">
 <summary>
  Escribe un texto en el log con el evento {Error}
 </summary>
 <param name="paramTextoLog">Texto (libre) que describe lo que ha pasado</param>
 <param name="paramRutaCompletaClaseLlamadora">
     <para>Se espera una cadena de texto con uno de los siguientes valores:</para>
     <para> a) Una cadena vacía, en este caso la función averiguara el 
               nombre de la clase a través de su 
               atributo [CallerFilePathAttribute]</para>
     <para> b) Una cadena de texto con el nombre de la clase </para>
 </param>
 <remarks>
 <code>
     Bibliografia [CallerMemberName>]
          https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/caller-information
 </code>
</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.WriteEntryWarning(System.String,System.String)">
 <summary>
  Escribe un texto en el log con el evento {Warning}
 </summary>
 <param name="paramTextoLog">Texto (libre) que describe lo que ha pasado</param>
 <param name="paramRutaCompletaClaseLlamadora">
     <para>Se espera una cadena de texto con uno de los siguientes valores:</para>
     <para> a) Una cadena vacía, en este caso la función averiguara el 
               nombre de la clase a través de su 
               atributo [CallerFilePathAttribute]</para>
     <para> b) Una cadena de texto con el nombre de la clase </para>
 </param>
 <remarks>
 <code>
     Bibliografia [CallerMemberName>]
          https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/caller-information
 </code>
</remarks>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.Application_Startup(System.Object,System.Windows.StartupEventArgs)">
 <summary>
 Se produce cuando se llama al método Run() del objeto Application.
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.Application_Exit(System.Object,System.Windows.ExitEventArgs)">
 <summary>
 Se produce justo antes de que se cierre una aplicación y no se puede cancelar.
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.Application_DispatcherUnhandledException(System.Object,System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)">
 <summary>
 Se produce cuando una aplicación inicia una excepción que no se controla.
 </summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.InitializeComponent">
<summary>
InitializeComponent
</summary>
</member>
<member name="M:H_ComprobarCopiaDirectorios2025.Application.Main">
<summary>
Application Entry Point.
</summary>
</member>
</members>
</doc>
