IApplicationDesignModeSettings-Schnittstelle (shobjidl_core.h)

Ermöglicht Es Entwicklungstoolanwendungen, System- und Benutzerzustände dynamisch zu spoofen, z. B. systemeigene Anzeigeauflösung, Geräteskalierungsfaktor und Anwendungsansichtszustand, um Windows Store-Apps, die im Entwurfsmodus ausgeführt werden, auf eine Vielzahl von Formfaktoren zu testen, ohne dass die tatsächliche Hardware erforderlich ist. Ermöglicht außerdem das Testen von Änderungen im normal benutzergesteuerten Zustand, um Windows Store-Apps in einer Vielzahl von Szenarien zu testen.

Vererbung

Die IApplicationDesignModeSettings-Schnittstelle erbt von der IUnknown-Schnittstelle . IApplicationDesignModeSettings verfügt auch über folgende Membertypen:

Methoden

Die IApplicationDesignModeSettings-Schnittstelle verfügt über diese Methoden.

 
IApplicationDesignModeSettings::ComputeApplicationSize

Ruft die Größe der Windows Store-App basierend auf dem aktuellen Satz gefälschter Einstellungen ab.
IApplicationDesignModeSettings::IsApplicationViewStateSupported

Bestimmt, ob ein bestimmter Anwendungsansichtszustand für bestimmte Einstellungen für spoofte Anzeigegröße und Skalierungsfaktor unterstützt wird.
IApplicationDesignModeSettings::SetApplicationViewState

Legt einen gefälschten Anwendungsansichtszustand (Vollbildformat, Vollbildformat, gefüllt oder angedockt) fest, der für eine Windows Store-App verwendet werden soll, die im Entwurfsmodus ausgeführt wird.
IApplicationDesignModeSettings::SetNativeDisplaySize

Legt eine gefälschte native Anzeigegröße fest, die für eine Windows Store-App verwendet werden soll, die im Entwurfsmodus ausgeführt wird.
IApplicationDesignModeSettings::SetScaleFactor

Legt einen gefälschten Geräteskalierungsfaktor fest, der für eine Windows Store-App verwendet werden soll, die im Entwurfsmodus ausgeführt wird.
IApplicationDesignModeSettings::TriggerEdgeGesture

Sendet ein spooftes Edgegestenereignis an das Proxykernfenster im Thread des Aufrufers. Diese Geste schaltet die App-Leiste der App um, sofern die App eine unterstützt. Der Aufrufer kann den Typ der Eingabe angeben, der die Randgeste ausgelöst hat.

Hinweise

Diese Schnittstelle wird abgerufen, indem CLSID_ApplicationDesignModeSettings kocreiert wird.

Benutzer folgen normalerweise einem Verwendungsmuster, das dem folgenden ähnelt:

  1. Rufen Sie CoCreateInstance mit CLSID_ApplicationDesignModeSettings auf, um das Einstellungsobjekt für den Anwendungsentwurfsmodus in einem Thread im Windows Store-App-Prozess zu erstellen.
  2. Rufen Sie QueryInterface für das Einstellungsobjekt des Anwendungsentwurfsmodus auf, um ein IInitializeWithWindow-Objekt abzurufen.
  3. Rufen Sie die Initialize-Methode des IInitializeWithWindow-Objekts auf, und übergeben Sie den HWND für das Proxykernfenster. Dies muss vor dem Aufrufen von "set"-Methoden erfolgen und ist nur einmal pro Prozess erfolgreich. Ein Codebeispiel finden Sie unter [Anzeigen von WinRT-UI-Objekten, die von CoreWindow abhängen](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Rufen Sie QueryInterface für IApplicationDesignModeSettings auf, und spoofen Sie den erforderlichen Testzustand, indem Sie die entsprechenden Methoden aufrufen (SetNativeDisplaySize, SetScaleFactor usw.). Diese Methoden lösen die entsprechenden Windows-Runtime Ereignisse aus, die für die Windows Store-App ausgelöst werden.
  5. Rufen Sie die ComputeApplicationSize-Methode auf, um die richtige Größe für die App basierend auf dem derzeit gefälschten Zustand zu ermitteln. Alle Set-Layoutmethoden müssen bereits aufgerufen worden sein, andernfalls schlägt dieser Aufruf fehl. Die Entwicklertoolanwendung ist für die Positionierung und Größenanpassung der App-Fenster zuständig, sofern dies angebracht ist.

Wann sollte implementiert werden?

Implementieren Sie diese Schnittstelle nicht. die -Implementierung wird mit Windows bereitgestellt.

Verwendungs-Gründe

Verwenden Sie die Methoden dieser Schnittstelle, um Ihre Windows Store-App unter verschiedenen gefälschten Konfigurationen und Szenarien zu testen.

Beispiele

Dieses Beispiel zeigt die Methoden dieser Schnittstelle, die verwendet werden.


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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (shobjidl.h einschließen)