Interfaz IApplicationDesignModeSettings (shobjidl_core.h)
Permite a las aplicaciones de herramientas de desarrollo suplantar dinámicamente el sistema y los estados de usuario, como la resolución de pantalla nativa, el factor de escala del dispositivo y el estado de vista de la aplicación, con el fin de probar las aplicaciones de la Tienda Windows que se ejecutan en modo de diseño para una amplia gama de factores de forma sin necesidad del hardware real. También permite probar los cambios en estado controlado por el usuario normalmente para probar las aplicaciones de la Tienda Windows en una variedad de escenarios.
Herencia
La interfaz IApplicationDesignModeSettings hereda de la interfaz IUnknown . IApplicationDesignModeSettings también tiene estos tipos de miembros:
Métodos
La interfaz IApplicationDesignModeSettings tiene estos métodos.
IApplicationDesignModeSettings::ComputeApplicationSize Obtiene el tamaño de la aplicación de la Tienda Windows, en función del conjunto actual de configuraciones suplantadas. |
IApplicationDesignModeSettings::IsApplicationViewStateSupported Determina si se admite un estado de vista de aplicación determinado para una configuración específica de tamaño de visualización y factor de escalado. |
IApplicationDesignModeSettings::SetApplicationViewState Establece un estado de vista de aplicación suplantado (horizontal de pantalla completa, vertical de pantalla completa, rellenado o acoplado) que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño. |
IApplicationDesignModeSettings::SetNativeDisplaySize Establece un tamaño de pantalla nativo suplantado que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño. |
IApplicationDesignModeSettings::SetScaleFactor Establece un factor de escala de dispositivos suplantados que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño. |
IApplicationDesignModeSettings::TriggerEdgeGesture Envía un evento de gesto perimetral suplantado a la ventana principal del proxy en el subproceso del autor de la llamada. Este gesto alterna la barra de aplicaciones de la aplicación, si la aplicación admite una. El autor de la llamada puede especificar el tipo de entrada que desencadenó el gesto de borde. |
Comentarios
Esta interfaz se adquiere mediante la creación conjunta de CLSID_ApplicationDesignModeSettings.
Normalmente, los usuarios seguirán un patrón de uso similar al siguiente:
- Llama a CoCreateInstance con CLSID_ApplicationDesignModeSettings para crear el objeto de configuración del modo de diseño de la aplicación en un subproceso del proceso de aplicación de la Tienda Windows.
- Llame a QueryInterface en el objeto de configuración del modo de diseño de la aplicación para obtener un objeto IInitializeWithWindow .
- Llame al método Initialize del objeto IInitializeWithWindow y pase el HWND para la ventana del núcleo proxy. Esto se debe hacer antes de llamar a cualquier método "set" y solo se realizará correctamente una vez por proceso. Para obtener un ejemplo de código, vea [Mostrar objetos de interfaz de usuario de WinRT que dependen de CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
- Llama a QueryInterface para IApplicationDesignModeSettings y suplanta el estado de prueba necesario llamando a sus métodos adecuados (SetNativeDisplaySize, SetScaleFactor, etc.). Estos métodos desencadenarán los eventos de Windows Runtime adecuados que se activarán para la aplicación de la Tienda Windows.
- Llame al método ComputeApplicationSize para determinar el tamaño adecuado de la aplicación, en función del estado suplantado actualmente. Se debe haber llamado a todos los métodos de diseño "set" o se producirá un error en esta llamada. La aplicación de la herramienta de desarrollo es responsable de colocar y cambiar el tamaño de las ventanas de la aplicación, cuando corresponda.
Cuándo implementar
No implemente esta interfaz; la implementación se proporciona con Windows.Cuándo usar
Usa los métodos de esta interfaz para probar la aplicación de la Tienda Windows en varios escenarios y configuraciones suplantadas.Ejemplos
En este ejemplo se muestran los métodos de esta interfaz en uso.
IApplicationDesignModeSettings *pDesignModeSettings;
// CoCreate the design mode settings object
HRESULT hr = CoCreateInstance(CLSID_ApplicationDesignModeSettings, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&pDesignModeSettings));
if (SUCCEEDED(hr))
{
IInitializeWithWindow *pInitializeWithWindow;
hr = pDesignModeSettings->QueryInterface(IID_PPV_ARGS(&pInitializeWithWindow);
if (SUCCEEDED(hr))
{
// Before we spoof any state, we must first initialize the design
// mode settings object with a proxy core window. Since apps
// running in design mode don't have an actual core window, we must
// supply an HWND that can be used as a proxy.
hr = pInitializeWithWindow->Initialize(hwndProxyCoreWindow);
pInitializeWithWindow->Release();
}
if (SUCCEEDED(hr))
{
// Verify that our desired spoofed settings are supported.
SIZE sizeNativeDisplay = {1366, 768};
SCALE_FACTOR scaleFactor = SCALE_100_PERCENT;
APPLICATION_VIEW_STATE viewState = AVS_FULLSCREEN_LANDSCAPE;
BOOL fSupported;
hr = pDesignModeSettings->IsApplicationViewStateSupported(viewState,
sizeNativeDisplay,
scaleFactor,
&fSupported);
}
if (SUCCEEDED(hr) && fSupported))
{
// Set the spoofed native display size.
hr = pDesignModeSettings->SetNativeDisplaySize(sizeNativeDisplay);
if (SUCCEEDED(hr))
{
// Set the spoofed scale factor to 100%.
hr = pDesignModeSettings->SetScaleFactor(SCALE_100_PERCENT);
}
if (SUCCEEDED(hr))
{
// Set the spoofed application view state to full-screen landscape.
hr = pDesignModeSettings->SetApplicationViewState(AVS_FULLSCREEN_LANDSCAPE);
}
if (SUCCEEDED(hr))
{
// Now that all the necessary state has been spoofed, calculate
// the size that the app should occupy.
SIZE sizeApplication;
hr = pDesignModeSettings->ComputeApplicationSize(&sizeApplication);
}
}
pDesignModeSettings->Release();
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (incluya Shobjidl.h) |