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

將詐騙邊緣手勢事件傳送至呼叫端線程上的 Proxy 核心視窗。 如果應用程式支援應用程式,此手勢會切換應用程式的應用程式行。 呼叫端可以指定觸發邊緣手勢的輸入類型。

備註

藉由共同建立CLSID_ApplicationDesignModeSettings來取得此介面。

使用者通常會遵循類似下列的使用模式:

  1. 使用 CLSID_ApplicationDesignModeSettings呼叫 CoCreateInstance ,以在 Windows 市集應用程式進程中的線程上建立應用程式設計模式設定物件。
  2. 在應用程式設計模式設定物件上呼叫 QueryInterface ,以取得 IInitializeWithWindow 物件。
  3. 呼叫 IInitializeWithWindow 物件的 Initialize 方法,傳入 Proxy 核心視窗的 HWND。 在呼叫任何“set” 方法之前,這必須先完成,而且每個進程只會成功一次。 如需程式代碼範例,請參閱 [顯示相依於 CoreWindow 的 WinRT UI 物件] (/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c) 。
  4. 呼叫適用於 IApplicationDesignModeSettingsQueryInterface,並呼叫其適當的方法, (SetNativeDisplaySizeSetScaleFactor 等 ) 呼叫必要的測試狀態。 這些方法會觸發針對 Windows 市集應用程式引發的適當 Windows 執行階段 事件。
  5. 呼叫 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)