Bagikan melalui


IUIFramework::Inisialisasi metode (uiribbon.h)

Menyambungkan aplikasi host ke kerangka kerja Windows Ribbon.

Sintaks

HRESULT Initialize(
  [in] HWND           frameWnd,
  [in] IUIApplication *application
);

Parameter

[in] frameWnd

Jenis: HWND

Tangani ke jendela tingkat atas yang akan berisi Pita.

[in] application

Jenis: IUIApplication*

Arahkan ke implementasi IUIApplication dari aplikasi host.

Nilai kembali

Jenis: HRESULT

Mengembalikan S_OK jika berhasil; jika tidak, nilai kesalahan dari daftar berikut.

Nilai Deskripsi
HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE) frameWnd adalah NULL, tidak menunjuk ke jendela yang ada, atau bukan jendela tingkat atas desktop.
Catatan Kesalahan ini juga dikembalikan jika frameWnd adalah jendela anak (WS_CHILD), dinyatakan sebagai jendela alat (WS_EX_TOOLWINDOW), atau tidak memiliki properti caption (WS_CAPTION wajib).
 
HRESULT_FROM_WIN32(ERROR_WINDOW_OF_OTHER_THREAD) frameWnd tidak dimiliki oleh utas eksekusi.
E_POINTER aplikasi adalah NULL atau penunjuk yang tidak valid.

Keterangan

Metode ini harus dipanggil oleh aplikasi host untuk setiap jendela tingkat atas yang memerlukan pita.

Metode ini digunakan untuk menyiapkan hook yang memungkinkan kerangka kerja Pita untuk memanggil panggilan balik di aplikasi host.

Untuk berhasil menginisialisasi Pita, file markup Pita yang dikompilasi harus tersedia sebagai sumber daya dan ditentukan dalam panggilan berikutnya ke IUIFramework::LoadUI. File markup ini adalah komponen integral dari kerangka kerja; ini menentukan kontrol yang akan digunakan dan tata letaknya.

Jika IUIFramework::Initialize berhasil ditampilkan:

  • Untuk menghilangkan ketidakkonsistensian, redundansi, dan ketidakcocokan antara Pita dan model perintah tradisional, kerangka kerja Pita menghapus bilah menu standar jendela tingkat atas di aplikasi host.
  • Kerangka kerja menghapus referensi ke gaya WS_EX_CLIENTEDGE.
    Catatan Gaya WS_EX_CLIENTEDGE menentukan bahwa jendela memiliki batas dengan tepi tenggelam. Gaya ini secara visual mengganggu integrasi Pita dan aplikasi host.
     
  • Kerangka kerja mengharuskan gaya WS_SYSMENU diaktifkan. Jika WS_SYSMENU tidak diaktifkan, kerangka kerja tidak menyediakan fungsionalitas alternatif dan penyajian Pita yang tidak dapat diprediksi dapat dihasilkan.
    Catatan Gaya WS_SYSMENU menentukan bahwa jendela aplikasi memiliki menu sistem pada bilah judulnya. Berdasarkan asosiasi, gaya WS_CAPTION juga harus ditentukan (lihat ERROR_INVALID_WINDOW_HANDLE dalam Nilai Pengembalian di atas).
     

Contoh

Contoh berikut menunjukkan fungsi inisialisasi kerangka kerja dasar.

//
//  FUNCTION:    InitializeFramework(HWND)
//
//  PURPOSE:    Initialize the Ribbon framework and bind a Ribbon to the application.
//
//  PARAMETERS:    
//                hWnd - Handle to the Ribbon host application window. 
//
//  COMMENTS:
//
//    In order to get a Ribbon to display, the Ribbon framework must be initialized. 
//    This involves three important steps:
//      1) Instantiate the Ribbon framework object (CLSID_UIRibbonFramework).
//      2) Pass the host HWND and IUIApplication object to the framework.
//      3) Load the binary markup compiled by the UI Command Compiler (UICC.exe).
//
//
bool InitializeFramework(HWND hWnd)
{
    // Instantiate the Ribbon framework object.
    HRESULT hr = CoCreateInstance(
        CLSID_UIRibbonFramework, 
        NULL, 
        CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&g_pFramework));
    if (!SUCCEEDED(hr))
    {
        return false;
    }    

    // Create the application object (IUIApplication) and call the 
    // framework Initialize method, passing the application object and the 
    // host HWND that the Ribbon will attach itself to.
    CComObject<CApplication> *pApplication = NULL;
    CComObject<CApplication>::CreateInstance(&pApplication);
    hr = pApplication->QueryInterface(&g_pApplication);
    if (!SUCCEEDED(hr))
    {
        return false;
    } 

    hr = g_pFramework->Initialize(hWnd, g_pApplication);
    if (!SUCCEEDED(hr))
    {
        return false;
    }

    // Load the binary markup.  
    // Initiate callbacks to the IUIApplication object that was 
    // provided to the framework earlier and bind command handler(s) 
    // to individual commands.
    hr = g_pFramework->LoadUI(GetModuleHandle(NULL), L"APPLICATION_RIBBON");
    if (!SUCCEEDED(hr))
    {
        return false;
    }
    return true;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header uiribbon.h
DLL Mshtml.dll

Lihat juga

IUIFramework

IUIFramework::LoadUI

Elemen Markup

Sampel Windows Ribbon Framework