HTMLダイアログを表示(ITraidentAPIを使用)

アンドキュメントなインターフェースであるため、使用にはご注意を。。。
アンドキュメントではない方法は、こちら
(2001.05.13)
// 最新のPlatform SDK(2001.01)にしか定義されていません。
//
// スクリプトでwindow.showModalDialog()を実行した場合と異なり、
// "-- Web ページ ダイアログ"という余分なタイトルは表示されません。
 
 
#include <comdef.h>
#include <Mshtmhst.h> // ShowHtmlDialog
 
_COM_SMARTPTR_TYPEDEF(ITridentAPI, __uuidof(ITridentAPI));
 
 
HRESULT _ShowHTMLDialog(
    HWND hwndParent,
    IMoniker* pMk,
    VARIANT* pvarArgIn = NULL,
// TCHAR* pchOptions = NULL,         // Del sha '01.05.13
    WCHAR* pchOptions = NULL,         // Add sha '01.05.13
    VARIANT* pvarArgOut = NULL,
    IUnknown *punkHost = NULL)
{
    HRESULT hr = S_OK;
   
    try
    {
        ITridentAPIPtr spTridentAPI;    // Undocumented Interface
        hr = spTridentAPI.CreateInstance(CLSID_TridentAPI);
        if (FAILED(hr))
        {
            return hr;
        }
       
        hr = spTridentAPI->ShowHTMLDialog(
            hwndParent, pMk, pvarArgIn, pchOptions, pvarArgOut, punkHost);
        if (FAILED(hr))
        {
            return hr;
        }
    }
    catch (...)
    {
        return E_FAIL;
    }
   
    return hr;
}
 
HRESULT ShowHTMLDialogFromURL(
    HWND hwndParent,
    LPCTSTR szURL,
    VARIANT* pvarArgIn = NULL,
//    TCHAR* pchOptions = NULL,        // Del sha '01.05.13
    WCHAR* pchOptions = NULL,            // Add sha '01.05.13
    VARIANT* pvarArgOut = NULL)
{
    HRESULT hr = S_OK;
   
    try
    {
        IMonikerPtr spMoniker;
        hr = ::CreateURLMoniker(NULL, _bstr_t(szURL), &spMoniker);
        if (FAILED(hr))
        {
            return hr;
        }
       
        hr = ::_ShowHTMLDialog(hwndParent, spMoniker, pvarArgIn, pchOptions, pvarArgOut);
        if (FAILED(hr))
        {
            return hr;
        }
    }
    catch (...)
    {
        return E_FAIL;
    }
   
    return hr;
}
 
 
---------- サンプル ----------
 
HRESULT hr = S_OK;
 
// pvarArgIn に、COMオブジェクトを入れてやり取りするのが、スマートでしょう。。。
WCHAR wszOptions[] = L"help:no; status:no; dialogWidth:460px; dialogHeight=320px";
hr = ::ShowHTMLDialogFromURL(m_hWnd, _T("http://www.kanabo.net/"), NULL, wszOptions, NULL);
if (FAILED(hr))
{
    // エラーが発生
}
一覧に戻る
© 2003 WAC.com All Right Reserved.