summaryrefslogtreecommitdiff
path: root/libs/mTextControl/src/dataobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/mTextControl/src/dataobject.h')
-rw-r--r--libs/mTextControl/src/dataobject.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/libs/mTextControl/src/dataobject.h b/libs/mTextControl/src/dataobject.h
new file mode 100644
index 0000000000..b0547367c0
--- /dev/null
+++ b/libs/mTextControl/src/dataobject.h
@@ -0,0 +1,65 @@
+#pragma once
+
+class CDataObject : public IDataObject
+{
+public:
+ //
+ // IUnknown members
+ //
+ HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObject);
+ ULONG __stdcall AddRef(void);
+ ULONG __stdcall Release(void);
+
+ //
+ // IDataObject members
+ //
+ HRESULT __stdcall GetData(FORMATETC* pFormatEtc, STGMEDIUM* pMedium);
+ HRESULT __stdcall GetDataHere(FORMATETC* pFormatEtc, STGMEDIUM* pMedium);
+ HRESULT __stdcall QueryGetData(FORMATETC* pFormatEtc);
+ HRESULT __stdcall GetCanonicalFormatEtc(FORMATETC* pFormatEct, FORMATETC* pFormatEtcOut);
+ HRESULT __stdcall SetData(FORMATETC* pFormatEtc, STGMEDIUM* pMedium, BOOL fRelease);
+ HRESULT __stdcall EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC** ppEnumFormatEtc);
+ HRESULT __stdcall DAdvise(FORMATETC* pFormatEtc, DWORD advf, IAdviseSink* pAdvSink, DWORD* pdwConnection);
+ HRESULT __stdcall DUnadvise(DWORD dwConnection);
+ HRESULT __stdcall EnumDAdvise(IEnumSTATDATA** ppEnumAdvise);
+
+ //
+ // Constructor / Destructor
+ //
+ CDataObject();
+ CDataObject(const FORMATETC* fmt, const STGMEDIUM* stgmed, int count);
+ ~CDataObject();
+
+protected:
+ void UpdateData(const FORMATETC* pFormatEtc, const STGMEDIUM* pMedium, int count);
+
+private:
+
+ int LookupFormatEtc(FORMATETC* pFormatEtc);
+
+ //
+ // any private members and functions
+ //
+ LONG m_lRefCount;
+
+ FORMATETC* m_pFormatEtc;
+ STGMEDIUM* m_pStgMedium;
+ LONG m_nNumFormats;
+
+};
+
+class CEMFObject : public CDataObject
+{
+public:
+ // IDataObject members
+ HRESULT __stdcall GetData(FORMATETC* pFormatEtc, STGMEDIUM* pMedium);
+
+ // Constructor / Destructor
+ CEMFObject(HENHMETAFILE hEmf);
+ ~CEMFObject();
+
+private:
+ HENHMETAFILE m_hEmf;
+
+};
+