Partager via


Interface IApplicationDesignModeSettings (shobjidl_core.h)

Permet aux applications d’outil de développement d’usurper dynamiquement les états système et utilisateur, tels que la résolution d’affichage native, le facteur d’échelle des appareils et l’état d’affichage des applications, afin de tester les applications du Windows Store s’exécutant en mode création pour un large éventail de facteurs de forme sans avoir besoin du matériel réel. Permet également de tester les modifications dans un état normalement contrôlé par l’utilisateur pour tester les applications du Windows Store dans divers scénarios.

Héritage

L’interface IApplicationDesignModeSettings hérite de l’interface IUnknown. IApplicationDesignModeSettings a également les types de membres suivants :

Méthodes

L’interface IApplicationDesignModeSettings utilise ces méthodes.

 
IApplicationDesignModeSettings ::ComputeApplicationSize

Obtient la taille de l’application du Windows Store, en fonction de l’ensemble actuel de paramètres usurpés.
IApplicationDesignModeSettings ::IsApplicationViewStateSupported

Détermine si un état d’affichage d’application particulier est pris en charge pour des paramètres de facteur d’échelle et de taille d’affichage usurpés spécifiques.
IApplicationDesignModeSettings ::SetApplicationViewState

Définit un état d’affichage d’application usurpée (paysage plein écran, portrait plein écran, plein écran, rempli ou aligné) à utiliser pour une application du Windows Store s’exécutant en mode création.
IApplicationDesignModeSettings ::SetNativeDisplaySize

Définit une taille d’affichage native usurpée à utiliser pour une application du Windows Store s’exécutant en mode création.
IApplicationDesignModeSettings ::SetScaleFactor

Définit un facteur d’échelle d’appareil usurpé à utiliser pour une application du Windows Store s’exécutant en mode création.
IApplicationDesignModeSettings ::TriggerEdgeGesture

Envoie un événement de mouvement de bord usurpé à la fenêtre principale du proxy sur le thread de l’appelant. Ce mouvement fait basculer la barre d’application de l’application, si l’application en prend en charge une. L’appelant peut spécifier le type d’entrée qui a déclenché le mouvement de bord.

Remarques

Cette interface est acquise en cocréant CLSID_ApplicationDesignModeSettings.

Les utilisateurs suivent normalement un modèle d’utilisation similaire au suivant :

  1. Appelez CoCreateInstance avec CLSID_ApplicationDesignModeSettings pour créer l’objet de paramètres du mode création d’application sur un thread dans le processus d’application du Windows Store.
  2. Appelez QueryInterface sur l’objet de paramètres du mode de création d’application pour obtenir un objet IInitializeWithWindow .
  3. Appelez la méthode Initialize de l’objet IInitializeWithWindow , en passant le HWND pour la fenêtre principale du proxy. Cette opération doit être effectuée avant l’appel de toutes les méthodes « set » et n’aboutira qu’une seule fois par processus. Pour obtenir un exemple de code, consultez [Afficher les objets d’interface utilisateur WinRT qui dépendent de CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Appelez QueryInterface pour IApplicationDesignModeSettings et usurpez l’état de test nécessaire en appelant ses méthodes appropriées (SetNativeDisplaySize, SetScaleFactor, etc.). Ces méthodes déclenchent le déclenchement des événements de Windows Runtime appropriés pour l’application du Windows Store.
  5. Appelez la méthode ComputeApplicationSize pour déterminer la taille appropriée de l’application, en fonction de l’état actuellement usurpé. Toutes les méthodes « set » de disposition doivent avoir déjà été appelées, sinon cet appel échoue. L’application d’outil de développement est responsable du positionnement et du dimensionnement des fenêtres d’application, le cas échéant.

Quand implémenter

N’implémentez pas cette interface ; l’implémentation est fournie avec Windows.

Quand utiliser

Utilisez les méthodes de cette interface pour tester votre application du Windows Store dans différents scénarios et configurations usurpées.

Exemples

Cet exemple montre les méthodes de cette interface en cours d’utilisation.


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();
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (incluez Shobjidl.h)