Bagikan melalui


Antarmuka IApplicationDesignModeSettings (shobjidl_core.h)

Memungkinkan aplikasi alat pengembangan untuk secara dinamis spoof sistem dan status pengguna, seperti resolusi tampilan asli, faktor skala perangkat, dan status tampilan aplikasi, untuk tujuan pengujian aplikasi Windows Store yang berjalan dalam mode desain untuk berbagai faktor bentuk tanpa perlu perangkat keras yang sebenarnya. Juga memungkinkan pengujian perubahan dalam status yang biasanya dikontrol pengguna untuk menguji aplikasi Windows Store di bawah berbagai skenario.

Warisan

Antarmuka IApplicationDesignModeSettings mewarisi dari antarmuka IUnknown . IApplicationDesignModeSettings juga memiliki jenis anggota berikut:

Metode

Antarmuka IApplicationDesignModeSettings memiliki metode ini.

 
IApplicationDesignModeSettings::ComputeApplicationSize

Mendapatkan ukuran aplikasi Bursa Windows, berdasarkan kumpulan pengaturan spoofed saat ini.
IApplicationDesignModeSettings::IsApplicationViewStateSupported

Menentukan apakah status tampilan aplikasi tertentu didukung untuk ukuran tampilan spoofed tertentu dan pengaturan faktor skala.
IApplicationDesignModeSettings::SetApplicationViewState

Mengatur status tampilan aplikasi spoofed (lanskap layar penuh, potret layar penuh, diisi, atau diposisikan) yang akan digunakan untuk aplikasi Bursa Windows yang berjalan dalam mode desain.
IApplicationDesignModeSettings::SetNativeDisplaySize

Mengatur ukuran tampilan asli spoofed yang akan digunakan untuk aplikasi Windows Store yang berjalan dalam mode desain.
IApplicationDesignModeSettings::SetScaleFactor

Mengatur faktor skala perangkat spoofed yang akan digunakan untuk aplikasi Bursa Windows yang berjalan dalam mode desain.
IApplicationDesignModeSettings::TriggerEdgeGesture

Mengirim peristiwa gerakan tepi yang spoofed ke jendela inti proksi pada utas pemanggil. Gerakan ini mengubah bilah aplikasi aplikasi, jika aplikasi mendukungnya. Pemanggil dapat menentukan jenis input yang memicu gerakan tepi.

Keterangan

Antarmuka ini diperoleh dengan membuat CLSID_ApplicationDesignModeSettings.

Pengguna biasanya akan mengikuti pola penggunaan yang mirip dengan yang berikut ini:

  1. Panggil CoCreateInstance dengan CLSID_ApplicationDesignModeSettings untuk membuat objek pengaturan mode desain aplikasi pada utas dalam proses aplikasi Windows Store.
  2. Panggil QueryInterface pada objek pengaturan mode desain aplikasi untuk mendapatkan objek IInitializeWithWindow .
  3. Panggil metode Inisialisasi objek IInitializeWithWindow , melewati HWND untuk jendela inti proksi. Ini harus dilakukan sebelum metode "set" dipanggil, dan hanya akan berhasil sekali per proses. Untuk contoh kode, lihat [Tampilkan objek UI WinRT yang bergantung pada CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Panggil QueryInterface untuk IApplicationDesignModeSettings dan spoof status pengujian yang diperlukan dengan memanggil metode yang sesuai (SetNativeDisplaySize, SetScaleFactor, dll.). Metode ini akan memicu peristiwa Windows Runtime yang sesuai untuk diaktifkan untuk aplikasi Windows Store.
  5. Panggil metode ComputeApplicationSize untuk menentukan ukuran yang tepat untuk aplikasi, berdasarkan status spoofed saat ini. Semua metode "set" tata letak harus sudah dipanggil atau panggilan ini akan gagal. Aplikasi alat pengembang bertanggung jawab untuk memposisikan dan mengukur jendela aplikasi, jika sesuai.

Kapan harus menerapkan

Jangan terapkan antarmuka ini; implementasi disediakan dengan Windows.

Kapan harus digunakan

Gunakan metode antarmuka ini untuk menguji aplikasi Windows Store Anda di bawah berbagai konfigurasi dan skenario yang spoofed.

Contoh

Contoh ini menunjukkan metode antarmuka ini yang digunakan.


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();
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header shobjidl_core.h (termasuk Shobjidl.h)