IApplicationDesignModeSettings 인터페이스(shobjidl_core.h)
개발 도구 애플리케이션은 실제 하드웨어 없이 다양한 폼 팩터에 대한 디자인 모드에서 실행되는 Windows 스토어 앱을 테스트하기 위해 네이티브 디스플레이 해상도, 디바이스 배율, 애플리케이션 보기 상태와 같은 시스템 및 사용자 상태를 동적으로 스푸핑할 수 있습니다. 또한 일반적으로 사용자가 제어하는 상태의 변경 내용을 테스트하여 다양한 시나리오에서 Windows 스토어 앱을 테스트할 수 있습니다.
상속
IApplicationDesignModeSettings 인터페이스는IUnknown 인터페이스에서 상속됩니다. IApplicationDesignModeSettings 에는 다음과 같은 유형의 멤버도 있습니다.
메서드
IApplicationDesignModeSettings 인터페이스에는 이러한 메서드가 있습니다.
IApplicationDesignModeSettings::ComputeApplicationSize 스푸핑된 설정의 현재 집합에 따라 Windows 스토어 앱의 크기를 가져옵니다. |
IApplicationDesignModeSettings::IsApplicationViewStateSupported 특정 스푸핑된 디스플레이 크기 및 배율 인수 설정에 대해 특정 애플리케이션 보기 상태가 지원되는지 여부를 결정합니다. |
IApplicationDesignModeSettings::SetApplicationViewState 디자인 모드에서 실행되는 Windows 스토어 앱에 사용할 스푸핑된 애플리케이션 보기 상태(전체 화면 가로, 전체 화면 세로, 채워진 또는 스냅됨)를 설정합니다. |
IApplicationDesignModeSettings::SetNativeDisplaySize 디자인 모드에서 실행되는 Windows 스토어 앱에 사용할 스푸핑된 네이티브 디스플레이 크기를 설정합니다. |
IApplicationDesignModeSettings::SetScaleFactor 디자인 모드에서 실행되는 Windows 스토어 앱에 사용할 스푸핑된 디바이스 배율 인수를 설정합니다. |
IApplicationDesignModeSettings::TriggerEdgeGesture 스푸핑된 에지 제스처 이벤트를 호출자 스레드의 프록시 코어 창으로 보냅니다. 이 제스처는 앱이 지원하는 경우 앱의 앱 표시줄을 전환합니다. 호출자는 에지 제스처를 트리거한 입력 유형을 지정할 수 있습니다. |
설명
이 인터페이스는 CLSID_ApplicationDesignModeSettings 공동 생성하여 가져옵니다.
사용자는 일반적으로 다음과 유사한 사용 패턴을 따릅니다.
- CLSID_ApplicationDesignModeSettings 사용하여 CoCreateInstance 를 호출하여 Windows 스토어 앱 프로세스의 스레드에서 애플리케이션 디자인 모드 설정 개체를 만듭니다.
- 애플리케이션 디자인 모드 설정 개체에서 QueryInterface 를 호출하여 IInitializeWithWindow 개체를 가져옵니다.
- 프록시 코어 창에 대한 HWND를 전달하여 IInitializeWithWindow 개체의 Initialize 메서드를 호출합니다. "set" 메서드가 호출되기 전에 이 작업을 수행해야 하며 프로세스당 한 번만 성공합니다. 코드 예제는 [CoreWindow에 의존하는 WinRT UI 개체 표시](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c)를 참조하세요.
- IApplicationDesignModeSettings에 대해 QueryInterface를 호출하고 적절한 메서드(SetNativeDisplaySize, SetScaleFactor 등)를 호출하여 필요한 테스트 상태를 스푸핑합니다. 이러한 메서드는 Windows 스토어 앱에 대해 적절한 Windows 런타임 이벤트를 트리거합니다.
- ComputeApplicationSize 메서드를 호출하여 현재 스푸핑된 상태에 따라 앱의 적절한 크기를 결정합니다. 모든 레이아웃 "set" 메서드가 이미 호출되었거나 이 호출이 실패해야 합니다. 개발자 도구 애플리케이션은 적절한 경우 앱 창의 위치를 지정하고 크기를 조정합니다.
구현 시기
이 인터페이스를 구현하지 마세요. 구현은 Windows와 함께 제공됩니다.사용 시기
이 인터페이스의 메서드를 사용하여 다양한 스푸핑된 구성 및 시나리오에서 Windows 스토어 앱을 테스트합니다.예제
이 예제에서는 사용 중인 이 인터페이스의 메서드를 보여 줍니다.
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();
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shobjidl_core.h(Shobjidl.h 포함) |