IApplicationDesignModeSettings2 interface
Enables development tool applications to dynamically control system and user states, such as native display resolution, device scale factor, and application view layout, reported to Windows Store apps for the purpose of testing Windows Store apps running in design mode for a wide range of form factors without the need for the actual hardware. Also enables testing of changes in normally user-controlled state to test Windows Store apps under a variety of scenarios.
Members
The IApplicationDesignModeSettings2 interface inherits from IApplicationDesignModeSettings. IApplicationDesignModeSettings2 also has these types of members:
Methods
The IApplicationDesignModeSettings2 interface has these methods.
| Method | Description |
|---|---|
| GetApplicationSizeBounds |
This methods retrieves the size bounds supported by the application. |
| GetApplicationViewOrientation |
Gets the orientation of the application design mode window. |
| SetAdjacentDisplayEdges |
Sets whether the application window will be adjacent to the edge of the emulated display. |
| SetApplicationViewMinWidth |
Sets the desired minimum width of the application design mode window. |
| SetApplicationViewOrientation |
Sets the window orientation used for the design mode window. |
| SetIsOnLockScreen |
This method determines whether or not the application, in design mode, can display information on the Windows 8 lock screen. |
| SetNativeDisplayOrientation |
Sets the orientation of the emulated display for the design mode window. |
Remarks
This interface is acquired by cocreating CLSID_ApplicationDesignModeSettings. It is an extension of the original IApplicationDesignModeSettings interface.
Examples
In this example, Visual Studio is launching an application in design mode that has overridden the minimum width on a display of size 1366x768. It is then enabling a slider control that allows the user to dynamically change the applications width. To do this, it needs to use the new SetApplicationViewMinWidth and GetApplicationSizeBoundsAPIs to compute the minimum and maximum sizes allowed for this type of application.
ComPtr<IApplicationDesignModeSettings> spDesignModeSettings; // CoCreate the design mode settings object HRESULT hr = CoCreateInstance(CLSID_ApplicationDesignModeSettings, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&spDesignModeSettings)); if (SUCCEEDED(hr)) { ComPtr<IInitializeWithWindow> spInitializeWithWindow; hr = pDesignModeSettings->QueryInterface(IID_PPV_ARGS(&spInitializeWithWindow); if (SUCCEEDED(hr)) { // Before we set any design mode 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 = spInitializeWithWindow->Initialize(hwndProxyCoreWindow); } if (SUCCEEDED(hr)) { // Set the native display size to 1366x768 SIZE sizeDisplay = {1366, 768}; hr = spDesignModeSettings->SetNativeDisplaySize(sizeDisplay); if (SUCCEEDED(hr)) { // Set the native display orientation to landscape hr = spDesignModeSettings->SetNativeDisplayOrientation(NDO_LANDSCAPE); if (SUCCEEDED(hr)) { // Set the scale factor to 100% DEVICE_SCALE_FACTOR scaleFactor = SCALE_100_PERCENT; hr = spDesignModeSettings->SetScaleFactor(scaleFactor); } } } if (SUCCEEDED(hr)) { // Override the app’s minimum width hr = spDesignModeSettings->SetApplicationViewMinWidth(AVMW_320); if (SUCCEEDED(hr)) { SIZE sizeAppMin; SIZE sizeAppMax; hr = spDesignModeSettings->GetApplicationSizeBounds(&sizeAppMin, &sizeAppMax); if (SUCCEEDED(hr)) { // Push the min and max size to the slider control, // to update the values that it maps to … // Start by sizing the app to its min bound, so compute the // resulting view orientation APPLICATION_VIEW_ORIENTATION viewOrientation; hr = spDesignModeSettings->GetApplicationViewOrientation(sizeAppMin, &viewOrientation); if (SUCCEEDED(hr)) { // Set the app view orientation hr = spDesignModeSettings->SetApplicationViewOrientation(viewOrientation); } } } } if (SUCCEEDED(hr)) { // Set the adjacent display edges so that the app is touching just the left edge of the screen hr = spDesignModeSettings->SetAdjacentDisplayEdges(ADE_LEFT); } }
Requirements
|
Minimum supported client |
Windows 8.1 [desktop apps only] |
|---|---|
|
Minimum supported server |
Windows Server 2012 R2 [desktop apps only] |
|
Header |
|
|
IDL |
|
|
Library |
|
|
DLL |
|
See also