Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

202 lines
3.4 KiB

/******************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name:
impl.cpp
Abstract:
This file contains the implementation of the CPCHLaunch class.
Revision History:
Davide Massarenti (Dmassare) 04/15/2000
created
******************************************************************************/
#include "StdAfx.h"
////////////////////////////////////////////////////////////////////////////////
CPCHLaunch::CPCHLaunch()
{
// HCAPI::CmdData m_data;
// HCAPI::Locator m_loc;
}
////////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CPCHLaunch::SetMode( /*[in]*/ DWORD dwFlags )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::SetMode" );
m_data.m_fMode = true;
m_data.m_dwFlags = dwFlags;
__HCP_FUNC_EXIT(S_OK);
}
STDMETHODIMP CPCHLaunch::SetParentWindow( /*[in]*/ HWND hwndParent )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::SetParentWindow" );
m_data.m_fWindow = true;
m_data.m_hwndParent = hwndParent;
__HCP_FUNC_EXIT(S_OK);
}
STDMETHODIMP CPCHLaunch::SetSizeInfo( /*[in]*/ LONG lX, /*[in]*/ LONG lY, /*[in]*/ LONG lWidth, /*[in]*/ LONG lHeight )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::SetSizeInfo" );
m_data.m_fSize = true;
m_data.m_lX = lX;
m_data.m_lY = lY;
m_data.m_lWidth = lWidth;
m_data.m_lHeight = lHeight;
__HCP_FUNC_EXIT(S_OK);
}
STDMETHODIMP CPCHLaunch::SetContext( /*[in]*/ BSTR bstrCtxName, /*[in]*/ BSTR bstrCtxInfo )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::SetContext" );
m_data.m_fCtx = true;
m_data.m_bstrCtxName = bstrCtxName;
m_data.m_bstrCtxInfo = bstrCtxInfo;
__HCP_FUNC_EXIT(S_OK);
}
STDMETHODIMP CPCHLaunch::DisplayTopic( /*[in]*/ BSTR bstrURL )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::DisplayTopic" );
HRESULT hr;
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_STRING_NOT_EMPTY(bstrURL);
__MPC_PARAMCHECK_END();
m_data.m_fURL = true;
m_data.m_bstrURL = bstrURL;
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.ExecCommand( m_data ));
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP CPCHLaunch::DisplayError( /*[in]*/ REFCLSID rclsid )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::DisplayError" );
HRESULT hr;
m_data.m_fError = true;
m_data.m_clsidError = rclsid;
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.ExecCommand( m_data ));
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP CPCHLaunch::IsOpen( /*[out]*/ BOOL *pVal )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::IsOpen" );
HRESULT hr;
bool fOpen;
__MPC_PARAMCHECK_BEGIN(hr)
__MPC_PARAMCHECK_POINTER_AND_SET(pVal,FALSE);
__MPC_PARAMCHECK_END();
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.IsOpen( fOpen, &m_data.m_clsidCaller ));
*pVal = fOpen ? TRUE : FALSE;
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP CPCHLaunch::PopUp()
{
__HCP_FUNC_ENTRY( "CPCHLaunch::PopUp" );
HRESULT hr;
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.PopUp());
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP CPCHLaunch::Close()
{
__HCP_FUNC_ENTRY( "CPCHLaunch::Close" );
HRESULT hr;
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.Close());
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}
STDMETHODIMP CPCHLaunch::WaitForTermination( /*[in]*/ DWORD dwTimeout )
{
__HCP_FUNC_ENTRY( "CPCHLaunch::WaitForTermination" );
HRESULT hr;
__MPC_EXIT_IF_METHOD_FAILS(hr, m_loc.WaitForTermination( dwTimeout ));
hr = S_OK;
__HCP_FUNC_CLEANUP;
__HCP_FUNC_EXIT(hr);
}