home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / activedocument / range / callback.hpp < prev    next >
C/C++ Source or Header  |  1996-07-31  |  2KB  |  69 lines

  1. // ===========================================================================
  2. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. // PARTICULAR PURPOSE.
  6. //
  7. // Copyright 1996 Microsoft Corporation.  All Rights Reserved.
  8. // ===========================================================================
  9. #include <urlmon.h>
  10. #include "recvbuf.hpp"
  11. #include "range.h"
  12.  
  13. class CUrlmonCallback :
  14.     public IBindStatusCallback,
  15.     public IHttpNegotiate,
  16.     public RecvBuf
  17. {
  18. public:
  19.  
  20.     // IUnknown methods
  21.     STDMETHODIMP    QueryInterface(REFIID riid,void ** ppv);
  22.     STDMETHODIMP_(ULONG) AddRef(void);
  23.     STDMETHODIMP_(ULONG) Release(void);
  24.  
  25.     // IHttpNegotiate methods
  26.     STDMETHODIMP BeginningTransaction (LPCWSTR szURL, LPCWSTR szHeaders,
  27.         DWORD dwReserved, LPWSTR __RPC_FAR *pszAdditionalHeaders);
  28.     STDMETHODIMP OnResponse (DWORD dwResponseCode, LPCWSTR szResponseHeaders, 
  29.         LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders);
  30.  
  31.     // IBindStatusCallback methods
  32.     STDMETHODIMP    OnStartBinding(DWORD grfBSCOption, IBinding* pBinding);
  33.     STDMETHODIMP    GetPriority(LONG* pnPriority);
  34.     STDMETHODIMP    OnLowResource(DWORD dwReserved);
  35.     STDMETHODIMP    OnProgress(ULONG ulProgress, ULONG ulProgressMax,
  36.         ULONG ulStatusCode, LPCWSTR pwzStatusText);
  37.     STDMETHODIMP    OnStopBinding(HRESULT hrResult, LPCWSTR szError);
  38.     STDMETHODIMP    GetBindInfo(DWORD* pgrfBINDF, BINDINFO* pbindinfo);
  39.     STDMETHODIMP    OnDataAvailable(DWORD grfBSCF, DWORD dwSize,
  40.         FORMATETC *pfmtetc, STGMEDIUM* pstgmed);
  41.     STDMETHODIMP    OnObjectAvailable(REFIID riid, IUnknown* punk);
  42.  
  43.     // constructors/destructors
  44.     CUrlmonCallback (PHTTP_REQUEST_PARAM);
  45.     ~CUrlmonCallback();
  46.  
  47.     // read range processing functions
  48.     BOOL ParseMultiPartHeader (void);
  49.     HRESULT ParseMultiPartBuffer (BOOL fLastCall);
  50.     
  51.     // data members
  52.     DWORD           m_cRef;
  53.     IBinding*       m_pBinding;
  54.     IStream*        m_pstm;
  55.     DWORD           m_dwOffset;
  56.     
  57.     PHTTP_REQUEST_PARAM  m_pParam;  // initialization parameters
  58.     HTTP_REQUESTCB_PARAM m_CBParam;
  59.  
  60.     DWORD  m_dwResponseCode;
  61.  
  62.     // range variables
  63.     PSTR   m_pszRangeDelimiter;
  64.     DWORD  m_cchRangeDelimiter;
  65.     DWORD  m_dwRangeBeg;
  66.     DWORD  m_dwRangeEnd;
  67. };
  68.  
  69.