windows-nt/Source/XPSP1/NT/printscan/print/spooler/spoolss/bidispl/request.h
2020-09-26 16:20:57 +08:00

94 lines
2.2 KiB
C++

/*****************************************************************************\
* MODULE: request.h
*
* PURPOSE: Implementation of COM interface for BidiSpooler
*
* Copyright (C) 2000 Microsoft Corporation
*
* History:
*
* 03/07/00 Weihai Chen (weihaic) Created
*
\*****************************************************************************/
#ifndef _TBIDIREQUEST
#define _TBIDIREQUEST
#include "priv.h"
class TBidiRequest : public IBidiRequestSpl
{
public:
// IUnknown
STDMETHOD (QueryInterface) (
REFIID iid,
void** ppv) ;
STDMETHOD_ (ULONG, AddRef) () ;
STDMETHOD_ (ULONG, Release)() ;
STDMETHOD (SetSchema) (
IN CONST LPCWSTR pszSchema);
STDMETHOD (SetInputData) (
IN CONST DWORD dwType,
IN CONST BYTE *pData,
IN CONST UINT uSize);
STDMETHOD (GetResult) (
OUT HRESULT *phr);
STDMETHOD (GetOutputData) (
IN CONST DWORD dwIndex,
OUT LPWSTR *ppszSchema,
OUT PDWORD pdwType,
OUT PBYTE *ppData,
OUT PULONG uSize);
STDMETHOD (GetEnumCount)(
OUT PDWORD pdwTotal);
STDMETHOD (GetSchema) (
OUT LPWSTR *ppszSchema);
STDMETHOD (GetInputData) (
OUT PDWORD pdwType,
OUT PBYTE *ppData,
OUT PULONG puSize);
STDMETHOD (SetResult) (
IN CONST HRESULT hr);
STDMETHOD (AppendOutputData) (
IN CONST LPCWSTR pszSchema,
IN CONST DWORD dwType,
IN CONST BYTE *pData,
IN CONST ULONG uSize);
// Constructor
TBidiRequest() ;
// Destructor
~TBidiRequest() ;
inline BOOL
bValid() CONST {return m_bValid;};
private:
// Reference count
BOOL m_bValid;
LONG m_cRef ;
LPWSTR m_pSchema;
BIDI_TYPE m_kDataType;
DWORD m_dwDataSize;
PBYTE m_pbData;
DWORD m_dwResponseCount;
HRESULT m_hr;
TCriticalSection m_CritSec;
TResponseDataList m_ResponseDataList;
} ;
#endif