load the page.  What you have to do is call CHtmlView::GetReadyState() in a
loop and pump messages until it is done loading.
then only a partial page is printed.  Since there is on way to findout if
the application exits.
AliR.
Hi, all:
I tried to load an html file into a CHtmlView control on CDialog and
print it out.  I dynamic create the CHtmlView in the OnInitDialog
event and the CHtmlView load the htm file successfully. But I has
problems to print the html to a printer?
I tried :
pView->ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL); it
does nothing.
pView->OnFilePrint(); it print an empty page. (The html should print 9
pages)
I also tried:
   LPOLECOMMANDTARGET lpTarget = NULL;
   LPDISPATCH lpDisp = pView->GetHtmlDocument();
   if (lpDisp != NULL)
   {
             // the control will handle all printing UI
        if (SUCCEEDED(lpDisp->QueryInterface(IID_IOleCommandTarget,
                  (LPVOID*) &lpTarget)))
        {
             lpTarget->Exec(NULL, OLECMDID_PRINT, 0, NULL, NULL);
             lpTarget->Release();
        }
        lpDisp->Release();
   }
It print an empty page.
But if I added pView->OnFilePrint(); 2 printer dialog popup and it
will print an empty page plus the 9 pages of html.
Anyone can help me with this problem?
Following is the code
BOOL CHtmlViewDlg::OnInitDialog()
{
CString strAppPath = AfxGetApp()->m_pszHelpFilePath;
strAppPath = strAppPath.Left(strAppPath.ReverseFind('\\'));
RECT rc;
GetClientRect(&rc);
CFrameWnd * pfrm = (CFrameWnd*) RUNTIME_CLASS(CFrameWnd)-
CreateObject();
pfrm->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rc, this);
CCreateContext pContext;
pContext.m_pNewViewClass = RUNTIME_CLASS(CHtmlView);
CHtmlView *pView = (CHtmlView *) pfrm->CreateView(&pContext);
if(!pView)
{
//IE4 probably not installed, view couldn't be created
//Just open the HTML document with the standard HTML viewer
ShellExecute(m_hWnd, _T("open"), strAppPath + _T("\\print.htm"),
NULL, NULL, SW_MAXIMIZE);
EndDialog(IDCANCEL);//without HTML page the dialog is useless,
destroy it
return  FALSE;
}
pView->Navigate(strAppPath + _T("\\print.htm"));
//pView->ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
LPOLECOMMANDTARGET lpTarget = NULL;
   LPDISPATCH lpDisp = pView->GetHtmlDocument();
   if (lpDisp != NULL)
   {
        if (SUCCEEDED(lpDisp->QueryInterface(IID_IOleCommandTarget,
                  (LPVOID*) &lpTarget)))
        {
             lpTarget->Exec(NULL, OLECMDID_PRINT, 0, NULL, NULL);
             lpTarget->Release();
        }
        lpDisp->Release();
   }
// pView->OnFilePrint();
return TRUE;
}
--------------------
thanks in advance
-rockdale
-------------------