Condividi tramite


Interfaccia IApplicationDesignModeSettings (shobjidl_core.h)

Consente alle applicazioni dello strumento di sviluppo di eseguire lo spoof system e gli stati utente in modo dinamico, ad esempio la risoluzione di visualizzazione nativa, il fattore di scalabilità del dispositivo e lo stato di visualizzazione dell'applicazione, allo scopo di testare le app di Windows Store in esecuzione in modalità di progettazione per un'ampia gamma di fattori di modulo senza la necessità dell'hardware effettivo. Consente anche di testare le modifiche nello stato normalmente controllato dall'utente per testare le app di Windows Store in diversi scenari.

Ereditarietà

L'interfaccia IApplicationDesignModeSettings eredita dall'interfaccia IUnknown . IApplicationDesignModeSettings include anche questi tipi di membri:

Metodi

L'interfaccia IApplicationDesignModeSettings include questi metodi.

 
IApplicationDesignModeSettings::ComputeApplicationSize

Ottiene le dimensioni dell'app di Windows Store, in base al set corrente di impostazioni spoofed.
IApplicationDesignModeSettings::IsApplicationViewStateSupported

Determina se uno stato di visualizzazione dell'applicazione specifico è supportato per specifiche dimensioni di visualizzazione e impostazioni del fattore di scala.
IApplicationDesignModeSettings::SetApplicationViewState

Imposta uno stato di visualizzazione applicazione spoofed (orizzontale a schermo intero, verticale a schermo intero, riempito o bloccato) da usare per un'app di Windows Store in esecuzione in modalità di progettazione.
IApplicationDesignModeSettings::SetNativeDisplaySize

Imposta una dimensione di visualizzazione nativa spoofed da usare per un'app di Windows Store in esecuzione in modalità di progettazione.
IApplicationDesignModeSettings::SetScaleFactor

Imposta un fattore di scala del dispositivo spoofed da usare per un'app di Windows Store in esecuzione in modalità di progettazione.
IApplicationDesignModeSettings::TriggerEdgeGesture

Invia un evento di movimento perimetrale spoofed alla finestra del core proxy nel thread del chiamante. Questo movimento attiva la barra dell'app dell'app, se l'app supporta uno. Il chiamante può specificare il tipo di input che ha attivato il movimento perimetrale.

Commenti

Questa interfaccia viene acquisita tramite la creazione di CLSID_ApplicationDesignModeSettings.

Gli utenti seguono normalmente un modello di utilizzo simile al seguente:

  1. Chiamare CoCreateInstance con CLSID_ApplicationDesignModeSettings per creare l'oggetto impostazioni della modalità di progettazione dell'applicazione in un thread nel processo dell'app di Windows Store.
  2. Chiamare QueryInterface nell'oggetto impostazioni della modalità di progettazione dell'applicazione per ottenere un oggetto IInitializeWithWindow .
  3. Chiamare il metodo Initialize dell'oggetto IInitializeWithWindow , passando nella finestra HWND per il core proxy. Questa operazione deve essere eseguita prima di chiamare i metodi "set" e avrà esito positivo una sola volta per ogni processo. Per un esempio di codice, vedere [Visualizzare oggetti interfaccia utente WinRT che dipendono da CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Chiamare QueryInterface per IApplicationDesignModeSettings e spoofare lo stato di test necessario chiamando i metodi appropriati (SetNativeDisplaySize, SetScaleFactor e così via). Questi metodi attivano gli eventi di Windows Runtime appropriati per l'app di Windows Store.
  5. Chiamare il metodo ComputeApplicationSize per determinare le dimensioni appropriate per l'app, in base allo stato attualmente spoofed. Tutti i metodi di layout "set" devono essere già stati chiamati o questa chiamata avrà esito negativo. L'applicazione dello strumento di sviluppo è responsabile della posizione e del ridimensionamento delle finestre dell'app, se appropriato.

Quando implementare

Non implementare questa interfaccia; l'implementazione viene fornita con Windows.

Quando usare

Usare i metodi di questa interfaccia per testare l'app di Windows Store in varie configurazioni e scenari spoofed.

Esempio

In questo esempio vengono illustrati i metodi di questa interfaccia in 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();
}

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)