在VC中调用一个JSP页面,通过一个菜单命令来执行这个操作,而调用的这个界面会触发服务端的一个操作。在第一次执行菜单命令的时候可以触发这个操作,但是关掉页面,第二次执行菜单命令时就不能触发这个操作,我需要每次执行菜单命令时都要触发这个操作,如何解决这个问题。下面是调用页面的程序:
HINSTANCE hinstMSHTML = LoadLibrary("MSHTML.DLL");
//此地址名称可直接用html文件名代替
WCHAR url[]=L"http://192.168.3.69/jspCourse/jsp2.jsp"; 
  if(hinstMSHTML)//装载动态连接库成功
{
SHOWHTMLDIALOGFN *pfnShowHTMLDialog; pfnShowHTMLDialog = (SHOWHTMLDIALOGFN*) GetProcAddress   (hinstMSHTML, "ShowHTMLDialog"); if(pfnShowHTMLDialog)
{
IMoniker *moniker=NULL; //
if( FAILED(CreateURLMoniker( NULL, (LPWSTR)url, &moniker ) ))
{
FreeLibrary(hinstMSHTML);
// return FALSE;
return;
} //调用ShowHTMLDialog函数显示URL上的HTML文件
(*pfnShowHTMLDialog)(NULL, moniker, NULL,NULL,NULL); if(moniker != NULL)
moniker->Release(); SysFreeString(url);
} FreeLibrary(hinstMSHTML);
}
else //装载动态连接库失败
return;

解决方案 »

  1.   

    You should call this way:
    HINSTANCE hinstMSHTML = LoadLibrary(TEXT("MSHTML.DLL"));if (hinstMSHTML)
    {
        SHOWMODELESSHTMLDIALOGFN* pfnShowModelessHTMLDialog;
        pfnShowModelessHTMLDialog = (SHOWMODELESSHTMLDIALOGFN*)GetProcAddress(hinstMSHTML,
                                                                              TEXT("ShowModelessHTMLDialog"));
        if (pfnShowModelessHTMLDialog)
        {
            IMoniker *pURLMoniker;
            BSTR bstrURL = SysAllocString(L"http://www.example.com/dialogsource.htm");
            CreateURLMoniker(NULL, bstrURL, &pURLMoniker);        if (pURLMoniker)
            {
                DWORD dwFlags = HTMLDLG_MODELESS | HTMLDLG_VERIFY;
                (*pfnShowModelessHTMLDialog)(NULL, pURLMoniker, NULL, NULL, NULL);            pURLMoniker->Release();
            }        SysFreeString(bstrURL);
        }    FreeLibrary(hinstMSHTML);
    }