﻿<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name Package="{BB89AFCA-43DA-45C1-907D-9D61DD11F28D}" ID="1024" />
    <Description Package="{BB89AFCA-43DA-45C1-907D-9D61DD11F28D}" ID="1025" />
    <Icon Package="{BB89AFCA-43DA-45C1-907D-9D61DD11F28D}" ID="4017" />
    <TemplateID>Microsoft.CPP.WinRT.SearchContract</TemplateID>
    <TemplateGroupID>WinRT-Native</TemplateGroupID>
    <ProjectType>VC</ProjectType>
    <NumberOfParentCategoriesToRollUp>0</NumberOfParentCategoriesToRollUp>
    <DefaultName>SearchResultsPage.xaml</DefaultName>
    <ShowByDefault>true</ShowByDefault>
    <SortOrder>91</SortOrder>
    <PreviewImage>SearchContract.png</PreviewImage>
    <TargetPlatformName>Windows</TargetPlatformName>
    <RequiredPlatformVersion>6.2.0</RequiredPlatformVersion>
  </TemplateData>
  <TemplateContent>
    <ProjectItem ReplaceParameters="true" OpenInEditor="true" ItemType="Page" SubType="Designer" CustomTool="MSBuild:Compile" TargetFileName="$fileinputname$.xaml">SearchResultsPage.xaml</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.xaml.h">SearchResultsPage.xaml.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" OpenInEditor="true" TargetFileName="$fileinputname$.xaml.cpp">SearchResultsPage.xaml.cpp</ProjectItem>

    <ProjectItem ReplaceParameters="false" TargetFileName="$wizardcommonprefix$ReadMe.txt">ReadMe.txt</ProjectItem>
    <ProjectItem ReplaceParameters="false" TargetFileName="$wizardcommonprefix$StandardStyles.xaml">StandardStyles.xaml</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BindableBase.h">BindableBase.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BindableBase.cpp">BindableBase.cpp</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BooleanToVisibilityConverter.h">BooleanToVisibilityConverter.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BooleanToVisibilityConverter.cpp">BooleanToVisibilityConverter.cpp</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BooleanNegationConverter.h">BooleanNegationConverter.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$BooleanNegationConverter.cpp">BooleanNegationConverter.cpp</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$LayoutAwarePage.h">LayoutAwarePage.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$LayoutAwarePage.cpp">LayoutAwarePage.cpp</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$RichTextColumns.h">RichTextColumns.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$RichTextColumns.cpp">RichTextColumns.cpp</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$SuspensionManager.h">SuspensionManager.h</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$wizardcommonprefix$SuspensionManager.cpp">SuspensionManager.cpp</ProjectItem>
  </TemplateContent>
  <WizardExtension>
    <Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.SmartItem.Wizard</FullClassName>
  </WizardExtension>
  <WizardData>
    <HasWizardSubPath>SearchResultsPage.xaml.h</HasWizardSubPath>
    <CommonOptional>ReadMe.txt</CommonOptional>
    <CommonRequired>StandardStyles.xaml</CommonRequired>
    <CommonRequired>BindableBase.h</CommonRequired>
    <CommonRequired>BindableBase.cpp</CommonRequired>
    <CommonRequired>BooleanToVisibilityConverter.h</CommonRequired>
    <CommonRequired>BooleanToVisibilityConverter.cpp</CommonRequired>
    <CommonRequired>BooleanNegationConverter.h</CommonRequired>
    <CommonRequired>BooleanNegationConverter.cpp</CommonRequired>
    <CommonRequired>LayoutAwarePage.h</CommonRequired>
    <CommonRequired>LayoutAwarePage.cpp</CommonRequired>
    <CommonRequired>RichTextColumns.h</CommonRequired>
    <CommonRequired>RichTextColumns.cpp</CommonRequired>
    <CommonRequired>SuspensionManager.h</CommonRequired>
    <CommonRequired>SuspensionManager.cpp</CommonRequired>
    <Activation>
      <AppMethod Name="OnSearchActivated" CommentPrefix="// " Include="&quot;$safeitemname$.xaml.h&quot;"
                 Declaration="virtual void OnSearchActivated(Windows::ApplicationModel::Activation::SearchActivatedEventArgs^ pArgs) override;">
        <![CDATA[
        /// <summary>
        /// Se invoca al activar la aplicación para mostrar resultados de la búsqueda.
        /// </summary>
        /// <param name="args">Detalles sobre la solicitud de activación.</param>
        void $wizardappclass$::OnSearchActivated(Windows::ApplicationModel::Activation::SearchActivatedEventArgs^ args)
        {

			// TODO: Registrar el evento Windows::ApplicationModel::Search::SearchPane::GetForCurrentView()->QuerySubmitted
			// en OnWindowCreated para agilizar las búsquedas una vez que la aplicación se está ejecutando

			// Si la aplicación no contiene un marco de nivel superior, es posible que este 
			// sea el primer inicio de la aplicación. Normalmente, este método y OnLaunched 
			// en App.xaml.cpp pueden llamar a un método común.
			auto previousContent = Window::Current->Content;
			auto rootFrame = dynamic_cast<Windows::UI::Xaml::Controls::Frame^>(previousContent);
			if (rootFrame == nullptr)
			{
				// Crear un marco para que actúe como contexto de navegación y asociarlo con
				// una clave SuspensionManager
				rootFrame = ref new Frame();
				Common::SuspensionManager::RegisterFrame(rootFrame, "AppFrame");

				auto prerequisite = Concurrency::task<void>([](){});
				if (args->PreviousExecutionState == ApplicationExecutionState::Terminated)
				{
					// Restaurar el estado de sesión guardado solo si es apropiado, programando
					// los pasos de inicio finales una vez completada la restauración
					prerequisite = Common::SuspensionManager::RestoreAsync();
				}
				prerequisite.then([=](Concurrency::task<void> prerequisite)
				{
					try
					{
						prerequisite.get();
					}
					catch (Platform::Exception^)
					{
						// Si la restauración da error, la aplicación debe continuar como si no hubiera estado restaurado.
					}

					// TODO: Navegar a la página de aterrizaje inicial de la aplicación si se inició. Esto
					// permite al usuario volver a la aplicación desde la página de resultados de la búsqueda con el botón Atrás.

					//Navegar a la página de búsqueda.
					rootFrame->Navigate(TypeName($safeitemname$::typeid), args->QueryText);
					// Poner el marco en la ventana actual.
					Window::Current->Content = rootFrame;
					// Asegurarse de que la ventana actual está activa.
					Window::Current->Activate();

				}, Concurrency::task_continuation_context::use_current());
			}
			else
			{
				//Navegar a la página de búsqueda.
				rootFrame->Navigate(TypeName($safeitemname$::typeid), args->QueryText);
				// Asegurarse de que la ventana actual está activa.
				Window::Current->Activate();
			}
        }
        ]]>
      </AppMethod>
      <AppMethodComment>
        <![CDATA[
        // TODO: Responder a la activación de resultados de la búsqueda
        //
        // El código siguiente no se pudo agregar automáticamente a la subclase de la aplicación
        // debido a que no se encontró la clase adecuada o ya existe un método
        // con el mismo nombre. Asegúrese de que el código adecuado se encarga de la activación
        // de forma que muestre los resultados de la búsqueda para el término de búsqueda especificado.
        //
        ]]>
      </AppMethodComment>
      <ManifestData>
        <Extension Category="windows.search" />
      </ManifestData>
      <ManifestComment>
        <![CDATA[
        // TODO: Editar el manifiesto para habilitar la búsqueda
        //
        // El manifiesto del paquete no se pudo actualizar automáticamente. Abra el archivo del manifiesto
        // del paquete y asegúrese de que esté habilitada la compatibilidad con la activación de la búsqueda.
        ]]>
      </ManifestComment>
    </Activation>
  </WizardData>
</VSTemplate>
