Interface IApplicationDesignModeSettings (shobjidl_core.h)

Permite que aplicativos de ferramentas de desenvolvimento falsifiquem dinamicamente os estados do sistema e do usuário, como resolução de exibição nativa, fator de escala do dispositivo e estado de exibição do aplicativo, com a finalidade de testar aplicativos da Windows Store em execução no modo de design para uma ampla variedade de fatores forma sem a necessidade do hardware real. Também permite o teste de alterações no estado normalmente controlado pelo usuário para testar aplicativos da Windows Store em uma variedade de cenários.

Herança

A interface IApplicationDesignModeSettings herda da interface IUnknown . IApplicationDesignModeSettings também tem estes tipos de membros:

Métodos

A interface IApplicationDesignModeSettings tem esses métodos.

 
IApplicationDesignModeSettings::ComputeApplicationSize

Obtém o tamanho do aplicativo da Windows Store, com base no conjunto atual de configurações falsificadas.
IApplicationDesignModeSettings::IsApplicationViewStateSupported

Determina se um estado de exibição de aplicativo específico tem suporte para configurações específicas de tamanho de exibição falsificado e fator de escala.
IApplicationDesignModeSettings::SetApplicationViewState

Define um estado de exibição de aplicativo falsificado (paisagem de tela inteira, retrato em tela inteira, preenchido ou ajustado) a ser usado para um aplicativo da Windows Store em execução no modo de design.
IApplicationDesignModeSettings::SetNativeDisplaySize

Define um tamanho de exibição nativo falsificado a ser usado para um aplicativo da Windows Store em execução no modo de design.
IApplicationDesignModeSettings::SetScaleFactor

Define um fator de escala de dispositivo falsificado a ser usado para um aplicativo da Windows Store em execução no modo de design.
IApplicationDesignModeSettings::TriggerEdgeGesture

Envia um evento de gesto de borda falsificado para a janela do núcleo de proxy no thread do chamador. Esse gesto alterna a barra de aplicativos do aplicativo, se o aplicativo der suporte a um. O chamador pode especificar o tipo de entrada que disparou o gesto de borda.

Comentários

Essa interface é adquirida pela cocriação de CLSID_ApplicationDesignModeSettings.

Normalmente, os usuários seguirão um padrão de uso semelhante ao seguinte:

  1. Chame CoCreateInstance com CLSID_ApplicationDesignModeSettings para criar o objeto de configurações do modo de design do aplicativo em um thread no processo de aplicativo da Windows Store.
  2. Chame QueryInterface no objeto de configurações do modo de design do aplicativo para obter um objeto IInitializeWithWindow .
  3. Chame o método Initialize do objeto IInitializeWithWindow , passando o HWND para a janela do núcleo do proxy. Isso deve ser feito antes que qualquer método "set" seja chamado e terá êxito apenas uma vez por processo. Para obter um exemplo de código, consulte [Exibir objetos de interface do usuário do WinRT que dependem do CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Chame QueryInterface para IApplicationDesignModeSettings e falsifique o estado de teste necessário chamando seus métodos apropriados (SetNativeDisplaySize, SetScaleFactor etc.). Esses métodos dispararão os eventos de Windows Runtime apropriados a serem acionados para o aplicativo da Windows Store.
  5. Chame o método ComputeApplicationSize para determinar o tamanho adequado para o aplicativo, com base no estado falsificado no momento. Todos os métodos de layout "set" já devem ter sido chamados ou essa chamada falhará. O aplicativo de ferramenta de desenvolvedor é responsável por posicionar e dimensionar as janelas do aplicativo, quando apropriado.

Quando implementar

Não implemente essa interface; a implementação é fornecida com o Windows.

Quando usar

Use os métodos dessa interface para testar seu aplicativo da Windows Store em várias configurações e cenários falsificados.

Exemplos

Este exemplo mostra os métodos dessa interface em 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 Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)