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

#ifndef __WEBLIBBC_INL__
#define __WEBLIBBC_INL__

///////////////////////////////////////////////////////////////////////////////
// Inline methods of TWeblibBrowserAPI class.

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

inline TWeblibBrowserAPI::TWeblibBrowserAPI(WORD wOptions)
{
	m_hBrowser = WLConnectBrowser(wOptions);
}

inline BOOL TWeblibBrowserAPI::IsGood() const
{
	return m_hBrowser != NULL;
}

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

inline BOOL TWeblibBrowserAPI::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 TWeblibBrowserAPI::ListWindows(BOOL bFirst) const
{
	return m_hBrowser == NULL ? 0L : WLListWindows(m_hBrowser,bFirst);
}

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

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

inline BOOL TWeblibBrowserAPI::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 TWeblibBrowserAPI::ShowWindow(DWORD dwWindow,UINT nShow) const
{   
	return m_hBrowser == NULL ? FALSE : WLShowWindow(m_hBrowser,dwWindow,nShow);
}
	
inline BOOL TWeblibBrowserAPI::Cancel(DWORD dwTransaction) const
{
	return m_hBrowser == NULL ? FALSE : WLCancel(m_hBrowser,dwTransaction);
}
		
inline LPCSTR TWeblibBrowserAPI::ParseAnchor(LPCSTR lpszAbsoluteURL,LPCSTR lpszRelativeURL) const
{   
	return m_hBrowser == NULL ? NULL : WLParseAnchor(m_hBrowser,lpszAbsoluteURL,lpszRelativeURL);
}

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

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

///////////////////////////////////////////////////////////////////////////////
// Inline methods of TWeblibBrowser class.

#ifndef WEBLIB_NO_OWL

inline BOOL TWeblibBrowser::IsGood() const
{ 
	return TWeblibBrowserAPI::IsGood() && m_pWindow != NULL && m_pWindow->HWindow != NULL; 
}

inline DWORD TWeblibBrowser::ShowFile(LPCSTR lpszFile,LPCSTR lpszMIMEType,DWORD dwWindow,
	LPCSTR lpszURL,BOOL bNotify) const
{
	return m_pWindow == NULL ? 0L : TWeblibBrowserAPI::ShowFile(lpszFile,lpszMIMEType,dwWindow,
		lpszURL,bNotify ? m_pWindow->HWindow : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD TWeblibBrowser::OpenURL(LPCSTR lpszURL,DWORD dwWindow,WORD wOptions,
	BOOL bNotify) const
{
	return m_pWindow == NULL ? 0L : TWeblibBrowserAPI::OpenURL(lpszURL,dwWindow,wOptions,
		bNotify ? m_pWindow->HWindow : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD TWeblibBrowser::SaveURL(LPCSTR lpszURL,LPCSTR lpszFile,DWORD dwWindow,
	WORD wOptions,BOOL bNotify) const
{
	return m_pWindow == NULL ? 0L : TWeblibBrowserAPI::SaveURL(lpszURL,lpszFile,dwWindow,
		wOptions,bNotify ? m_pWindow->HWindow : WL_NONOTIFY,bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD TWeblibBrowser::PostFormData(LPCSTR lpszURL,DWORD dwWindow,LPCSTR lpszFormData,
	LPCSTR lpszMIMEType,BOOL bNotify) const
{
	return m_pWindow == NULL ? 0L : TWeblibBrowserAPI::PostFormData(lpszURL,dwWindow,
		lpszFormData,lpszMIMEType,bNotify ? m_pWindow->HWindow : WL_NONOTIFY,
			bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline DWORD TWeblibBrowser::SaveFormData(LPCSTR lpszURL,LPCSTR lpszFile,DWORD dwWindow,
	LPCSTR lpszFormData,LPCSTR lpszMIMEType,BOOL bNotify) const
{
	return m_pWindow == NULL ? 0L : TWeblibBrowserAPI::SaveFormData(lpszURL,lpszFile,dwWindow,
		lpszFormData,lpszMIMEType,bNotify ? m_pWindow->HWindow : WL_NONOTIFY,
			bNotify ? WM_WEBLIB_NOTIFY : 0);
}

inline BOOL TWeblibBrowser::RegisterProtocol(LPCSTR lpszProtocol) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::RegisterProtocol(lpszProtocol,
		m_pWindow->HWindow,WM_WEBLIB_NOTIFY);
}

inline BOOL TWeblibBrowser::UnregisterProtocol(LPCSTR lpszProtocol) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::UnregisterProtocol(lpszProtocol,
		m_pWindow->HWindow);
}

inline BOOL TWeblibBrowser::RegisterURLEcho() const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::RegisterURLEcho(m_pWindow->HWindow,
		WM_WEBLIB_NOTIFY);
}

inline BOOL TWeblibBrowser::UnregisterURLEcho() const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::UnregisterURLEcho(m_pWindow->HWindow);
}

inline BOOL TWeblibBrowser::RegisterViewer(LPCSTR lpszMIMEType,WORD wOptions) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::RegisterViewer(lpszMIMEType,wOptions,
		m_pWindow->HWindow,WM_WEBLIB_NOTIFY);
}

inline BOOL TWeblibBrowser::UnregisterViewer(LPCSTR lpszMIMEType) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::UnregisterViewer(lpszMIMEType,
		m_pWindow->HWindow);
}

inline BOOL TWeblibBrowser::RegisterWindowChange(DWORD dwWindow) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::RegisterWindowChange(dwWindow,
		m_pWindow->HWindow,WM_WEBLIB_NOTIFY);
}

inline BOOL TWeblibBrowser::UnregisterWindowChange(DWORD dwWindow) const
{
	return m_pWindow == NULL ? FALSE : TWeblibBrowserAPI::UnregisterWindowChange(dwWindow,
		m_pWindow->HWindow);
}

#endif	// WEBLIB_NO_OWL

///////////////////////////////////////////////////////////////////////////////
// Inline methods of TWeblibToolbarAPI class.

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

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

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

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

inline BOOL TWeblibToolbarAPI::SetActiveToolbar() const
{
	return m_hToolbar == NULL ? FALSE : WLSetActiveToolbar(m_hToolbar);
}

inline BOOL TWeblibToolbarAPI::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 TWeblibToolbarAPI::RemoveToolbarButton(UINT nID) const
{
	return m_hToolbar == NULL ? FALSE : WLRemoveToolbarButton(m_hToolbar,nID);
}

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

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

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

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

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

inline BOOL TWeblibToolbarAPI::SetToolbarText(UINT nID,LPCSTR lpszText) const
{
	return m_hToolbar == NULL ? FALSE : WLSetToolbarText(m_hToolbar,nID,lpszText);
}

inline HFONT TWeblibToolbarAPI::GetToolbarFont(WORD wType) const
{
	return m_hToolbar == NULL ? FALSE : WLGetToolbarFont(m_hToolbar,wType);   
}

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

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

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

///////////////////////////////////////////////////////////////////////////////
// Inline methods of TWeblibToolbar class.

#ifndef WEBLIB_NO_OWL

inline BOOL TWeblibToolbar::IsGood() const
{ 
	return TWeblibToolbarAPI::IsGood() && m_pWindow != NULL && m_pWindow->HWindow != NULL; 
}

inline BOOL TWeblibToolbar::CreateToolbar(LPCSTR lpszMenu)
{
	return m_pWindow == NULL ? FALSE : TWeblibToolbarAPI::CreateToolbar(lpszMenu,
		m_pWindow->HWindow,WM_WEBLIB_NOTIFY);
}

#endif	// WEBLIB_NO_OWL

#endif
