windows-nt/Source/XPSP1/NT/enduser/stuff/hhctrl/prthook.h
2020-09-26 16:20:57 +08:00

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__