
///////////////////////////////////////////////////////////////////////////////
// Copyright 1995 by Potomac Software, Inc. Use of this material is subject to
// the terms and conditions of the software license agreement.

#ifndef __WEBLIBVC_INL__
#define __WEBLIBVC_INL__

///////////////////////////////////////////////////////////////////////////////
// Inline methods of CWeblibBrowserAPI class.

inline CWeblibBrowserAPI::CWeblibBrowserAPI()
{ 
	m_hBrowser = NULL; 
}

inline CWeblibBrowserAPI::CWeblibBrowserAPI(WORD wOptions)
{ 
	m_hBrowser = WLConnectBrowser(wOptions); 
}
  	
inline BOOL CWeblibBrowserAPI::IsGood() const
{ 
	return m_hBrowser != NULL; 
}
  	
inline BOOL CWeblibBrowserAPI::ConnectBrowser(WORD wOptions)
{
	return (m_hBrowser = WLConnectBrowser(wOptions)) != NULL;
}

inline BOOL CWeblibBrowserAPI::GetWindowInfo(DWORD dwWindow,LPSTR lpszURL,int cbURL,
	LPSTR lpszTitle,int cbTitle) const
{   
	return m_hBrowser == NULL ? FALSE : WLGetWindowInfo(m_hBrowser,dwWindow,lpszURL,cbURL,
		lpszTitle,cbTitle);
}

inline DWORD CWeblibBrowserAPI::ListWindows(BOOL bFirst) const
{       
	return m_hBrowser == NULL ? 0L : WLListWindows(m_hBrowser,bFirst);
}

inline DWORD CWeblibBrowserAPI::ActivateWindow(DWORD dwWindow) const
{   
	return m_hBrowser == NULL ? 0L : WLActivateWindow(m_hBrowser,dwWindow);
}

inline BOOL CWeblibBrowserAPI::CloseWindow(DWORD dwWindow) const
{   
	return m_hBrowser == NULL ? FALSE : WLCloseWindow(m_hBrowser,dwWindow);
}

inline BOOL CWeblibBrowserAPI::SetWindowPos(DWORD dwWindow,DWORD dwX,DWORD dwY,DWORD dwWidth,
	DWORD dwHeight) const
{   
	return m_hBrowser == NULL ? FALSE : WLSetWindowPos(m_hBrowser,dwWindow,dwX,dwY,dwWidth,
		dwHeight);
}

inline BOOL CWeblibBrowserAPI::ShowWindow(DWORD dwWindow,UINT nShow) const
{   
	return m_hBrowser == NULL ? FALSE : WLShowWindow(m_hBrowser,dwWindow,nShow);
}
	
inline BOOL CWeblibBrowserAPI::Cancel(DWORD dwTransaction) const
{   
	return m_hBrowser == NULL ? FALSE : WLCancel(m_hBrowser,dwTransaction);
}
		
inline LPCSTR CWeblibBrowserAPI::ParseAnchor(LPCSTR lpszAbsoluteURL,LPCSTR lpszRelativeURL) const
{   
	return m_hBrowser == NULL ? NULL : WLParseAnchor(m_hBrowser,lpszAbsoluteURL,lpszRelativeURL);
}

inline DWORD CWeblibBrowserAPI::GetVersion(WORD wMajor,WORD wMinor) const
{   
	return m_hBrowser == NULL ? 0L : WLGetVersion(m_hBrowser,wMajor,wMinor);
}
	
inline LPCSTR CWeblibBrowserAPI::QueryURLFile(LPCSTR lpszFile) const
{   
	return m_hBrowser == NULL ? NULL : WLQueryURLFile(m_hBrowser,lpszFile);
}
	
inline BOOL CWeblibBrowserAPI::SetNotifyMethod(WORD wMethod) const
{   
	return m_hBrowser == NULL ? FALSE : WLSetNotifyMethod(m_hBrowser,wMethod);
}

inline DWORD CWeblibBrowserAPI::GetTransactionWindow(DWORD dwTransaction) const
{   
	return m_hBrowser == NULL ? 0L : WLGetTransactionWindow(m_hBrowser,dwTransaction);
}

///////////////////////////////////////////////////////////////////////////////
// Inline methods of CWeblibBrowser class.

#ifndef WEBLIB_NO_MFC

inline BOOL CWeblibBrowser::IsGood() const
{ 
	return CWeblibBrowserAPI::IsGood() && m_pWnd != NULL && m_pWnd->m_hWnd != NULL; 
}

inline DWORD CWeblibBrowser::ShowFile(LPCSTR lpszFile,LPCSTR lpszMIMEType,DWORD dwWindow,
	LPCSTR lpszURL,BOOL bNotify) const
{
	return m_pWnd == NULL ? 0L : CWeblibBrowserAPI::ShowFile(lpszFile,lpszMIMEType,dwWindow,
		lpszURL,bNotify ? m_pWnd->m_hWnd : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}
		
inline DWORD CWeblibBrowser::OpenURL(LPCSTR lpszURL,DWORD dwWindow,WORD wOptions,
	BOOL bNotify) const
{       
	return m_pWnd == NULL ? 0L : CWeblibBrowserAPI::OpenURL(lpszURL,dwWindow,wOptions,
		bNotify ? m_pWnd->m_hWnd : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD CWeblibBrowser::SaveURL(LPCSTR lpszURL,LPCSTR lpszFile,DWORD dwWindow,
	WORD wOptions,BOOL bNotify) const
{       
	return m_pWnd == NULL ? 0L : CWeblibBrowserAPI::SaveURL(lpszURL,lpszFile,dwWindow,wOptions,
		bNotify ? m_pWnd->m_hWnd : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD CWeblibBrowser::PostFormData(LPCSTR lpszURL,DWORD dwWindow,LPCSTR lpszFormData,
	LPCSTR lpszMIMEType,BOOL bNotify) const
{   
	return m_pWnd == NULL ? 0L : CWeblibBrowserAPI::PostFormData(lpszURL,dwWindow,lpszFormData,
		lpszMIMEType,bNotify ? m_pWnd->m_hWnd : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD CWeblibBrowser::SaveFormData(LPCSTR lpszURL,LPCSTR lpszFile,DWORD dwWindow,
	LPCSTR lpszFormData,LPCSTR lpszMIMEType,BOOL bNotify) const
{
	return m_pWnd == NULL ? 0L : CWeblibBrowserAPI::SaveFormData(lpszURL,lpszFile,dwWindow,
		lpszFormData,lpszMIMEType,bNotify ? m_pWnd->m_hWnd : WL_NONOTIFY,
			bNotify ? WM_WEBLIB_NOTIFY : 0);   
}
			
inline BOOL CWeblibBrowser::RegisterProtocol(LPCSTR lpszProtocol) const
{       
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::RegisterProtocol(lpszProtocol,
		m_pWnd->m_hWnd,WM_WEBLIB_NOTIFY); 
}

inline BOOL CWeblibBrowser::UnregisterProtocol(LPCSTR lpszProtocol) const
{   
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::UnregisterProtocol(lpszProtocol,
		m_pWnd->m_hWnd);
}
	
inline BOOL CWeblibBrowser::RegisterURLEcho() const
{   
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::RegisterURLEcho(m_pWnd->m_hWnd,
		WM_WEBLIB_NOTIFY);
}

inline BOOL CWeblibBrowser::UnregisterURLEcho() const
{
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::UnregisterURLEcho(m_pWnd->m_hWnd);   
}
	
inline BOOL CWeblibBrowser::RegisterViewer(LPCSTR lpszMIMEType,WORD wOptions) const
{   
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::RegisterViewer(lpszMIMEType,wOptions,
		m_pWnd->m_hWnd,WM_WEBLIB_NOTIFY);
}

inline BOOL CWeblibBrowser::UnregisterViewer(LPCSTR lpszMIMEType) const
{       
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::UnregisterViewer(lpszMIMEType,
		m_pWnd->m_hWnd);
}
	
inline BOOL CWeblibBrowser::RegisterWindowChange(DWORD dwWindow) const
{       
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::RegisterWindowChange(dwWindow,
		m_pWnd->m_hWnd,WM_WEBLIB_NOTIFY);
}

inline BOOL CWeblibBrowser::UnregisterWindowChange(DWORD dwWindow) const
{
	return m_pWnd == NULL ? FALSE : CWeblibBrowserAPI::UnregisterWindowChange(dwWindow,
		m_pWnd->m_hWnd);   
}   

#endif	// WEBLIB_NO_MFC

///////////////////////////////////////////////////////////////////////////////
// Inline methods of CWeblibToolbarAPI class.

inline CWeblibToolbarAPI::CWeblibToolbarAPI()
{
	m_hToolbar = NULL;
}

inline CWeblibToolbarAPI::CWeblibToolbarAPI(LPCSTR lpszMenu,HWND hwndNotify,UINT nMsg)
{   
	m_hToolbar = WLCreateToolbar(lpszMenu,hwndNotify,nMsg);
}

inline BOOL CWeblibToolbarAPI::IsGood() const
{ 
	return m_hToolbar != NULL; 
}

inline BOOL CWeblibToolbarAPI::IsToolbarActive() const
{
	return m_hToolbar == NULL ? FALSE : WLIsToolbarActive(m_hToolbar);
}

inline BOOL CWeblibToolbarAPI::SetActiveToolbar() const
{
	return m_hToolbar == NULL ? FALSE : WLSetActiveToolbar(m_hToolbar);   
}
	
inline BOOL CWeblibToolbarAPI::AddToolbarButton(UINT nID,int nIdx,LPCSTR lpszText,
	HINSTANCE hInstance,LPCSTR lpszBitmap,LPCSTR lpszBitmapSel,LPCSTR lpszBitmapFocus,
		LPCSTR lpszBitmapDisabled) const
{   
	return m_hToolbar == NULL ? FALSE : WLAddToolbarButton(m_hToolbar,nID,nIdx,lpszText,
		hInstance,lpszBitmap,lpszBitmapSel,lpszBitmapFocus,lpszBitmapDisabled);
}

inline BOOL CWeblibToolbarAPI::RemoveToolbarButton(UINT nID) const
{
	return m_hToolbar == NULL ? FALSE : WLRemoveToolbarButton(m_hToolbar,nID);
}
	
inline BOOL CWeblibToolbarAPI::IsToolbarButtonVisible(UINT nID) const
{   
	return m_hToolbar == NULL ? FALSE : WLIsToolbarButtonVisible(m_hToolbar,nID);
}

inline BOOL CWeblibToolbarAPI::ShowToolbarButton(UINT nID,BOOL bShow) const
{   
	return m_hToolbar == NULL ? FALSE : WLShowToolbarButton(m_hToolbar,nID,bShow);
}
	
inline BOOL CWeblibToolbarAPI::EnableToolbarButton(UINT nID,BOOL bEnable) const
{   
	return m_hToolbar == NULL ? FALSE : WLEnableToolbarButton(m_hToolbar,nID,bEnable);
}

inline BOOL CWeblibToolbarAPI::IsToolbarButtonEnabled(UINT nID) const
{   
	return m_hToolbar == NULL ? FALSE : WLIsToolbarButtonEnabled(m_hToolbar,nID);
}
	
inline LPCSTR CWeblibToolbarAPI::GetToolbarText(UINT nID) const
{
	return m_hToolbar == NULL ? FALSE : WLGetToolbarText(m_hToolbar,nID);
}

inline BOOL CWeblibToolbarAPI::SetToolbarText(UINT nID,LPCSTR lpszText) const
{
	return m_hToolbar == NULL ? FALSE : WLSetToolbarText(m_hToolbar,nID,lpszText);   
}
	
inline HFONT CWeblibToolbarAPI::GetToolbarFont(WORD wType) const
{
	return m_hToolbar == NULL ? FALSE : WLGetToolbarFont(m_hToolbar,wType);   
}

inline BOOL CWeblibToolbarAPI::SetToolbarFont(WORD wType,HFONT hFont) const
{
	return m_hToolbar == NULL ? FALSE : WLSetToolbarFont(m_hToolbar,wType,hFont);
}
	
inline COLORREF CWeblibToolbarAPI::GetToolbarBkgnd() const
{   
	return m_hToolbar == NULL ? 0L : WLGetToolbarBkgnd(m_hToolbar);
}

inline BOOL CWeblibToolbarAPI::SetToolbarBkgnd(COLORREF crBackground) const
{
	return m_hToolbar == NULL ? FALSE : WLSetToolbarBkgnd(m_hToolbar,crBackground);   
}
	
inline COLORREF CWeblibToolbarAPI::GetToolbarTextColor(WORD wType) const
{   
	return m_hToolbar == NULL ? 0L : WLGetToolbarTextColor(m_hToolbar,wType);         
}

inline BOOL CWeblibToolbarAPI::SetToolbarTextColor(WORD wType,COLORREF crText) const
{   
	return m_hToolbar == NULL ? FALSE : WLSetToolbarTextColor(m_hToolbar,wType,crText);         
}

///////////////////////////////////////////////////////////////////////////////
// Inline methods of CWeblibToolbar class.

#ifndef WEBLIB_NO_MFC

inline BOOL CWeblibToolbar::IsGood() const
{ 
	return CWeblibToolbarAPI::IsGood() && m_pWnd != NULL && m_pWnd->m_hWnd != NULL; 
}

inline BOOL CWeblibToolbar::CreateToolbar(LPCSTR lpszMenu)
{ 
	return m_pWnd == NULL ? FALSE : CWeblibToolbarAPI::CreateToolbar(lpszMenu,m_pWnd->m_hWnd,
		WM_WEBLIB_NOTIFY);  
}

#endif	// WEBLIB_NO_MFC

#endif
