IUIFramework::GetView 方法 (uiribbon.h)
擷取介面指標的位址,此介面代表 Windows 功能區架構檢視,例如 IUIRibbon 或 IUIContextualUI。
語法
HRESULT GetView(
[in] UINT32 viewId,
[in] REFIID riid,
[out] void **ppv
);
參數
[in] viewId
類型: UINT32
檢視的標識碼。 功能區或 ContextPopup的 Command.Id 值為 0。
[in] riid
類型: REFIID
IUIRibbon 或 IUIContextualUI 的介面識別符。
[out] ppv
類型: void**
當這個方法傳回時,會包含 IUIRibbon 或 IUIContextualUI 物件的指標位址。
傳回值
類型: HRESULT
如果成功,則傳回S_OK;否則,下列清單中的錯誤值。
值 | 描述 |
---|---|
E_INVALIDARG | riid 不是有效的介面標識碼。 |
E_FAIL | 作業失敗。 |
備註
功能區架構 UI 功能是由檢視區分,這些檢視基本上是內建的核心架構,例如 功能區和ContextPopup。
IUIFramework::GetView 可讓主應用程式視需要建立暫時介面指標並呼叫方法,而不是維護介面的指標。
注意 主應用程式必須在暫存介面指標上呼叫 IUnknown::Release ,以避免記憶體流失。
範例
下列範例示範如何使用 IUIFramework::GetView 方法來擷取功能區檢視物件、呼叫 GetHeight 方法來擷取功能區的高度,以及根據功能區的高度計算 內容快顯 控件的顯示位置。
void GetDisplayLocation(POINT &pt, HWND hWnd)
{
if (pt.x == -1 && pt.y == -1)
{
HRESULT hr = E_FAIL;
// Display the menu in the upper-left corner of the client area, below the ribbon.
IUIRibbon* pRibbon;
hr = g_pFramework->GetView(0, IID_PPV_ARGS(&pRibbon));
if (SUCCEEDED(hr))
{
UINT32 uRibbonHeight = 0;
hr = pRibbon->GetHeight(&uRibbonHeight);
if (SUCCEEDED(hr))
{
pt.x = 0;
pt.y = uRibbonHeight;
// Convert client coordinates of a specified point to screen coordinates.
ClientToScreen(hWnd, &pt);
}
pRibbon->Release();
}
if (FAILED(hr))
{
// Default to just the upper-right corner of the entire screen.
pt.x = 0;
pt.y = 0;
}
}
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | uiribbon.h |
Dll | Mshtml.dll |