Esempio n. 1
0
//OLECMDID_PRINT	= 6,
HRESULT CWtlHtmlView::ExecCommand( OLECMDID nCmdID, OLECMDEXECOPT nCmdExecOpt, VARIANTARG* pvarargIn, VARIANTARG* pvarargOut) 
{
	HRESULT hr=S_OK;
	LPDISPATCH lpDispatch = NULL;
	LPOLECOMMANDTARGET lpOleCommandTarget = NULL;
	try {

		m_spWebBrowser2->get_Document(&lpDispatch);
		if(lpDispatch==NULL)
			throw;
		OLECMDF eQuery ; //      'return value type for QueryStatusWB

		if(FAILED( m_spWebBrowser2->QueryStatusWB(OLECMDID_PRINT, &eQuery))) //  'get print command status
			throw;

		if(!( eQuery & OLECMDF_ENABLED) )
			throw;

		lpDispatch->QueryInterface(IID_IOleCommandTarget, (void**)&lpOleCommandTarget);
		if(lpOleCommandTarget==NULL)
			throw;

		// Print contents of WebBrowser control.
		hr=lpOleCommandTarget->Exec(NULL, nCmdID, nCmdExecOpt, pvarargIn, pvarargOut);
	}
	catch(...)
	{
		hr=E_FAIL;
	}
	if(lpDispatch)
		lpDispatch->Release();
	if(lpOleCommandTarget)
		lpOleCommandTarget->Release();
	return hr;
}
Esempio n. 2
0
//-------------------------------------------------------------------------------
// Name: HrExecCommand
// Desc: Выполнить команду с параметром MSOCMDEXECOPT_PROMPTUSER или MSOCMDEXECOPT_DONTPROMPTUSER.
//-------------------------------------------------------------------------------
HRESULT COfsDhtmlEditCtrl::HrExecCommand( ULONG ucmdID, VARIANT* pVarIn, VARIANT* pVarOut, BOOL bPromptUser )
{
	HRESULT hr = S_OK;

	if ( m_pSite != NULL )
	{
		LPOLECOMMANDTARGET pCommandTarget = m_pSite->GetCommandTarget();

		if ( pCommandTarget != NULL )
		{
			DWORD dwCmdOpt = 0;

			if (bPromptUser)
				dwCmdOpt = MSOCMDEXECOPT_PROMPTUSER;
			else
				dwCmdOpt = MSOCMDEXECOPT_DONTPROMPTUSER;

			hr = pCommandTarget->Exec(&GUID_TriEditCommandGroup,
						ucmdID,
						dwCmdOpt,
						pVarIn,
						pVarOut);
		}
	}

	return hr;
}
Esempio n. 3
0
//-------------------------------------------------------------------------------
// Name: HrExecDefault
// Desc: Выполнить команду с параметром OLECMDEXECOPT_DODEFAULT.
//-------------------------------------------------------------------------------
HRESULT COfsDhtmlEditCtrl::HrExecDefault(ULONG ucmdID,VARIANT* pVarIn)
{
	HRESULT hr = S_OK;

	if ( m_pSite != NULL )
	{
		LPOLECOMMANDTARGET pCommandTarget = m_pSite->GetCommandTarget();

		if ( pCommandTarget != NULL )
		{
			hr = pCommandTarget->Exec(&GUID_TriEditCommandGroup,
						ucmdID,
						OLECMDEXECOPT_DODEFAULT,
						pVarIn,
						NULL);
		}
	}

	return hr;
}
Esempio n. 4
0
//-------------------------------------------------------------------------------
// Name: GetCommandStatus
// Desc: Запросить состояние команды по ее ID
// За дополнительной информацией смотрие MSDN DhtmlEdit.
//-------------------------------------------------------------------------------
DWORD COfsDhtmlEditCtrl::GetCommandStatus( ULONG ucmdID )
{
	DWORD dwReturn = 0;
	if ( m_pSite != NULL )
	{
		LPOLECOMMANDTARGET pCommandTarget = m_pSite->GetCommandTarget();
		if ( pCommandTarget != NULL )
		{
			HRESULT hr = S_OK;
			MSOCMD msocmd;
			msocmd.cmdID = ucmdID;
			msocmd.cmdf  = 0;

			hr = pCommandTarget->QueryStatus(&GUID_TriEditCommandGroup, 1, &msocmd, NULL);
			
			dwReturn = msocmd.cmdf;
		}
	}
	return dwReturn;
}
Esempio n. 5
0
void CHtmlView::OnFilePrint()
{
	// get the HTMLDocument

	if (m_pBrowserApp != NULL)
	{
		LPOLECOMMANDTARGET lpTarget = NULL;
		LPDISPATCH lpDisp = 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();
		}
	}
}