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.
|
|
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997.
//
// File: dataobj.hxx
//
// Contents: Class that implements IDataObject interface
//
// Classes: CDataObject
//
// History: 12-05-1996 DavidMun Created
//
//---------------------------------------------------------------------------
#ifndef __DATAOBJ_HXX_
#define __DATAOBJ_HXX_
//+--------------------------------------------------------------------------
//
// Class: CDataObject (do)
//
// Purpose: Implement the IDataObject interface.
//
// History: 1-23-1997 davidmun Created
//
//---------------------------------------------------------------------------
class CDataObject: public IDataObject { public:
//
// IUnknown overrides
//
STDMETHOD(QueryInterface) (REFIID riid, LPVOID FAR* ppvObj);
STDMETHOD_(ULONG, AddRef) ();
STDMETHOD_(ULONG, Release) ();
//
// IDataObject overrides
//
STDMETHOD(GetData) (FORMATETC *pformatetcIn, STGMEDIUM *pmedium);
STDMETHOD(GetDataHere) (FORMATETC *pformatetc, STGMEDIUM *pmedium);
STDMETHOD(QueryGetData) (FORMATETC *pformatetc);
STDMETHOD(GetCanonicalFormatEtc) (FORMATETC *pformatectIn, FORMATETC *pformatetcOut);
STDMETHOD(SetData) (FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease);
STDMETHOD(EnumFormatEtc) (DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc);
STDMETHOD(DAdvise) (FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection);
STDMETHOD(DUnadvise) (DWORD dwConnection);
STDMETHOD(EnumDAdvise) (IEnumSTATDATA **ppenumAdvise);
//
// Non-interface member functions
//
CDataObject();
~CDataObject();
VOID SetCookie( MMC_COOKIE Cookie, DATA_OBJECT_TYPES Type, COOKIETYPE ct);
DATA_OBJECT_TYPES GetContext();
COOKIETYPE GetCookieType();
MMC_COOKIE GetCookie();
VOID SetComponentData( CComponentData *pcd);
//
// Public data members
//
static const UINT s_cfInternal; // custom clipboard format
static const UINT s_cfMachineName; // server focus
static const UINT s_cfImportViews; // public fmt we ask for when acting
// as an extension
private:
HRESULT _WriteClsid( IStream *pstm);
HRESULT _WriteDisplayName( IStream *pstm);
HRESULT _WriteResultRecNo( IStream *pstm);
HRESULT _WriteResultRecord( IStream *pstm);
HRESULT _WriteScopeAbbrev( IStream *pstm);
HRESULT _WriteScopeFilter( IStream *pstm);
HRESULT _WriteInternal( IStream *pstm);
HRESULT _WriteNodeType( IStream *pstm);
HRESULT _WriteNodeId2( LPSTGMEDIUM pmedium);
HRESULT _WriteNodeTypeString( IStream *pstm);
CDllRef _DllRef; // inc/dec dll object count
ULONG _cRefs; // object refcount
MMC_COOKIE _Cookie; // what this obj refers to
DATA_OBJECT_TYPES _Context; // context in which this was created
COOKIETYPE _Type; // how to interpret _Cookie
CComponentData *_pcd; // NULL if created by csnapin
public: //
// Clipboard formats used with GetDataHere. See also some formats
// declared in the public section.
//
static const UINT s_cfNodeType; static const UINT s_cfNodeId2; static const UINT s_cfNodeTypeString; static const UINT s_cfDisplayName; static const UINT s_cfSnapinClsid; static const UINT s_cfSnapinPreloads; static const UINT s_cfExportScopeAbbrev; static const UINT s_cfExportScopeFilter; static const UINT s_cfExportResultRecNo; };
//+--------------------------------------------------------------------------
//
// Member: CDataObject::GetContext
//
// Synopsis: Return value indicating context under which this data object
// was created.
//
// History: 12-11-1996 DavidMun Created
//
//---------------------------------------------------------------------------
inline DATA_OBJECT_TYPES CDataObject::GetContext() { return _Context; }
//+--------------------------------------------------------------------------
//
// Member: CDataObject::GetCookieType
//
// Synopsis: Return the type of cookie contained within this object.
//
// History: 1-23-1997 davidmun Created
//
//---------------------------------------------------------------------------
inline COOKIETYPE CDataObject::GetCookieType() { return _Type; }
//+--------------------------------------------------------------------------
//
// Member: CDataObject::GetCookie
//
// Synopsis: Return cookie for this object.
//
// History: 12-11-1996 DavidMun Created
//
// Notes: CAUTION: if cookie is a CLogInfo, caller must AddRef it
// to keep it.
//
//---------------------------------------------------------------------------
inline MMC_COOKIE CDataObject::GetCookie() { return _Cookie; }
//+--------------------------------------------------------------------------
//
// Member: CDataObject::SetComponentData
//
// Synopsis: Store back pointer to parent component data object.
//
// History: 3-12-1997 DavidMun Created
//
// Notes: If the data object was created by a CSnapin object, this
// method will never be called.
//
//---------------------------------------------------------------------------
inline VOID CDataObject::SetComponentData( CComponentData *pcd) { _pcd = pcd; }
//+--------------------------------------------------------------------------
//
// Member: CDataObject::_WriteClsid
//
// Synopsis: Write this snapin's clsid into [pstm].
//
// History: 06-09-1997 DavidMun Created
//
//---------------------------------------------------------------------------
inline HRESULT CDataObject::_WriteClsid( IStream *pstm) { HRESULT hr;
hr = pstm->Write(&CLSID_EventLogSnapin, sizeof CLSID_EventLogSnapin, NULL); CHECK_HRESULT(hr); return hr; }
//+--------------------------------------------------------------------------
//
// Member: CDataObject::_WriteInternal
//
// Synopsis: Write this object's data in the private clipboard format
// to the stream [pstm].
//
// History: 06-09-1997 DavidMun Created
//
//---------------------------------------------------------------------------
inline HRESULT CDataObject::_WriteInternal( IStream *pstm) { HRESULT hr;
CDataObject *pThis = this; hr = pstm->Write(&pThis, sizeof (CDataObject *), NULL); CHECK_HRESULT(hr); return hr; }
#endif // __DATAOBJ_HXX_
|