IUIFramework::GetView メソッド (uiribbon.h)
IUIRibbon や IUIContextualUI など、Windows リボン フレームワーク ビューを表すインターフェイスへのポインターのアドレスを取得します。
構文
HRESULT GetView(
[in] UINT32 viewId,
[in] REFIID riid,
[out] void **ppv
);
パラメーター
[in] viewId
種類: UINT32
ビューの ID。 リボンまたは ContextPopup の Command.Id の値は 0 です。
[in] riid
種類: REFIID
IUIRibbon または IUIContextualUI のインターフェイス ID。
[out] ppv
型: void**
このメソッドが戻るとき、 には、 IUIRibbon または IUIContextualUI オブジェクトへのポインターのアドレスが含まれます。
戻り値
種類: HRESULT
成功した場合はS_OKを返します。それ以外の場合は、次の一覧のエラー値。
値 | 説明 |
---|---|
E_INVALIDARG | riid は有効なインターフェイス ID ではありません。 |
E_FAIL | 操作が失敗しました。 |
注釈
リボン フレームワーク UI 機能は、 リボンやContextPopup などの基本的に組み込みのコア フレームワークである Views によって区別されます。
IUIFramework::GetView では、アプリケーションの有効期間を通じてインターフェイスへのポインターを維持するのではなく、ホスト アプリケーションで一時的なインターフェイス ポインターを作成し、必要に応じてメソッドを呼び出します。
例
次の例では、 IUIFramework::GetView メソッドを使用してリボン ビュー オブジェクトを取得し、 GetHeight メソッドを呼び出してリボンの高さを取得し、リボンの高さに基づいて Context Popup コントロールの表示場所を計算する方法を示します。
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 |