OCXのプロパティシートを表示

きめ細い処理を行いたい場合は、こちら
(2003.09.18)
BOOL ShowPropertySheet(CWnd* pWnd, LPUNKNOWN lpUnkown )
{
    ASSERT(pWnd);
    ASSERT(lpUnkown);
   
    BOOL bResult = FALSE;
    LPOLEOBJECT lpOleObject = NULL;
    if( SUCCEEDED(lpUnkown->QueryInterface(IID_IOleObject, (LPVOID*)&lpOleObject)) )
    {
        IOleClientSite* lpOleClientSite;
        if( SUCCEEDED( lpOleObject->GetClientSite( &lpOleClientSite ) ) )
        {
            MSG Msg;
            memset(&Msg, 0, sizeof(MSG));
            CRect rct;
            pWnd->GetClientRect( &rct );
            lpOleObject->DoVerb(
                OLEIVERB_PROPERTIES, &Msg, lpOleClientSite, 0, pWnd->GetSafeHwnd(), rct );
            lpOleClientSite->Release();
            bResult = TRUE;
        }
        lpOleObject->Release();
    }
   
    return( bResult );
}
一覧に戻る
© 2003 WAC.com All Right Reserved.