社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

複合コントロールでアクティブになった場合のサイトへの通知方法 - COM/ATL

複合コントロールを作成した場合、上モノのコントロール(ウィンドウ)が
アクティブになった場合、以下の方法でサイト側に通知する必要がある

---
STDMETHOD(OnViewWindowActive)(IShellView *ppshv)
{
 //  ATLTRACE("CShellView::OnViewWindowActive()\n");
 // CComControlBase::SetFocus()のコードからコピー
 if (m_bInPlaceActive)
 {
  CComPtr pOleObject;
  ControlQueryInterface(__uuidof(IOleObject), (void**)&pOleObject);
  if (pOleObject != NULL)
   pOleObject->DoVerb(OLEIVERB_UIACTIVATE, NULL, m_spClientSite, 0, m_hWndCD, &m_rcPos);
   CComQIPtr spSite(m_spClientSite);
   if (m_bInPlaceActive && spSite != NULL)
    spSite->OnFocus(TRUE);
  }
 return S_OK;
}
---


■IShellBrowser::OnViewWindowActive Method - MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/ishellbrowser/OnViewWindowActive.asp

投稿日時 : 2005年7月8日 3:43


コメントを追加

タイトル
名前
URL
コメント