85 lines
2.4 KiB
C++
85 lines
2.4 KiB
C++
// Copyright (C) Microsoft Corporation 1996-1997, All Rights reserved.
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifndef __PRTHOOK_H__
|
|
#define __PRTHOOK_H__
|
|
|
|
class CContainer; // forward reference
|
|
class CSiteMap; // forward reference
|
|
class IWebBrowserAppImpl; // forward reference
|
|
class CHHWinType; // forward reference
|
|
|
|
class CPrintHook : public IDispatch
|
|
{
|
|
public:
|
|
CPrintHook(PCSTR pszFirstUrl, CToc* pToc, HWND hWndHelp = NULL);
|
|
~CPrintHook();
|
|
void BeginPrinting(int action);
|
|
inline BOOL IsPrinting() {return m_fIsPrinting;}
|
|
inline void IsPrinting(BOOL bNewValue) {m_fIsPrinting = bNewValue;}
|
|
|
|
STDMETHOD(QueryInterface)(
|
|
/* [in] */ REFIID riid,
|
|
/* [iid_is][out] */ void **ppvObject);
|
|
|
|
STDMETHOD_(ULONG, AddRef)(void);
|
|
|
|
STDMETHOD_(ULONG, Release)(void);
|
|
|
|
// IDispatch methods.
|
|
|
|
STDMETHOD(GetTypeInfoCount)(
|
|
/* [out] */ UINT *pctinfo);
|
|
|
|
STDMETHOD(GetTypeInfo)(
|
|
/* [in] */ UINT iTInfo,
|
|
/* [in] */ LCID lcid,
|
|
/* [out] */ ITypeInfo **ppTInfo);
|
|
|
|
STDMETHOD(GetIDsOfNames)(
|
|
/* [in] */ REFIID riid,
|
|
/* [size_is][in] */ LPOLESTR *rgszNames,
|
|
/* [in] */ UINT cNames,
|
|
/* [in] */ LCID lcid,
|
|
/* [size_is][out] */ DISPID *rgDispId);
|
|
|
|
STDMETHOD(Invoke)(
|
|
/* [in] */ DISPID dispIdMember,
|
|
/* [in] */ REFIID riid,
|
|
/* [in] */ LCID lcid,
|
|
/* [in] */ WORD wFlags,
|
|
/* [out][in] */ DISPPARAMS *pDispParams,
|
|
/* [out] */ VARIANT *pVarResult,
|
|
/* [out] */ EXCEPINFO *pExcepInfo,
|
|
/* [out] */ UINT *puArgErr);
|
|
|
|
protected:
|
|
BOOL CreatePrintWindow(CStr* pcszUrl = NULL);
|
|
void DestroyPrintWindow();
|
|
BOOL PumpMessages();
|
|
BOOL BuildPrintTable();
|
|
HRESULT Print();
|
|
BOOL ConstructFile(PCSTR pszCurrentUrl, CTable* pFileTable, CStr* pcszPrintFile);
|
|
BOOL TranslateUrl(PSTR pszFullUrl, PSTR pszRelUrl);
|
|
|
|
void OnProgressChange(LONG lProgress, LONG lProgressMax);
|
|
|
|
CToc* m_pToc;
|
|
CStr m_cszFirstUrl, m_cszPath, m_cszRoot, m_cszPrintFile;
|
|
CHHWinType* m_phh;
|
|
LPCONNECTIONPOINT m_pcp;
|
|
DWORD m_dwCookie;
|
|
ULONG m_ref;
|
|
HWND m_hWndHelp;
|
|
int m_pos, m_action;
|
|
BOOL m_fIsPrinting, m_fFirstHeading, m_fDestroyHelpWindow, m_fIsIE3;
|
|
BYTE m_level;
|
|
TCHAR m_szPrintFile[_MAX_PATH];
|
|
HWND m_hwndParent;
|
|
};
|
|
|
|
#endif // __PRTHOOK_H__
|