Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//*******************************************************************************************
//
// Filename : DataObj.h
//
// Definition of CCabObj
//
// Copyright (c) 1994 - 1996 Microsoft Corporation. All rights reserved
//
//*******************************************************************************************
#ifndef _DATAOBJ_H_
#define _DATAOBJ_H_
#include "thisguid.h"
class CCabObj : public IDataObject, public IPersistStream { public: CCabObj(HWND hwndOwner, CCabFolder *pcf, LPCABITEM *apit, UINT cpit); ~CCabObj();
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppvObject); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); STDMETHODIMP GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium); STDMETHODIMP GetDataHere(FORMATETC *pformatetc, STGMEDIUM *pmedium); STDMETHODIMP QueryGetData(FORMATETC *pformatetc); STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pformatectIn, FORMATETC *pformatetcOut); STDMETHODIMP SetData(FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease); STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc); STDMETHODIMP DAdvise(FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection); STDMETHODIMP DUnadvise(DWORD dwConnection); STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenumAdvise);
// *** IPersist ***
STDMETHODIMP GetClassID(CLSID* pClassID){ *pClassID = CLSID_CabViewDataObject; return S_OK; } // *** IPersistStream ***
STDMETHODIMP IsDirty(void) {return S_OK;} // Indicate that we are dirty and ::Save() needs to be called.
STDMETHODIMP Load(IStream *pStm); STDMETHODIMP Save(IStream *pStm, BOOL fClearDirty); STDMETHODIMP GetSizeMax(ULARGE_INTEGER * pcbSize);
private: BOOL InitFileGroupDesc(); BOOL InitFileContents(); BOOL InitPersistedDataObject(); BOOL InitHIDA();
static HGLOBAL * CALLBACK ShouldExtract(LPCTSTR pszFile, DWORD dwSize, UINT date, UINT time, UINT attribs, LPARAM lParam);
HRESULT InitContents(); friend HRESULT CabViewDataObject_CreateInstance(REFIID riid, LPVOID* ppv); CCabObj();
private: static UINT s_uFileGroupDesc; static UINT s_uFileContents; static UINT s_uPersistedDataObject; static UINT s_uHIDA;
CRefCount m_cRef;
CRefDll m_cRefDll;
CCabItemList m_lSel; HGLOBAL *m_lContents;
CCabFolder *m_pcfHere; HWND m_hwndOwner; };
#endif // _DATAOBJ_H_
|