2 * Defines the COM interfaces and APIs related to IDataObject.
4 * Depends on 'obj_moniker.h', 'obj_storage.h' and 'obj_base.h'.
7 #ifndef __WINE_WINE_OBJ_DATAOBJECT_H
8 #define __WINE_WINE_OBJ_DATAOBJECT_H
11 /*****************************************************************************
12 * Predeclare the structures
14 typedef struct DVTARGETDEVICE32 DVTARGETDEVICE32
, *LPDVTARGETDEVICE32
;
15 DECL_WINELIB_TYPE(DVTARGETDEVICE
)
16 DECL_WINELIB_TYPE(LPDVTARGETDEVICE
)
18 typedef struct FORMATETC32 FORMATETC32
, *LPFORMATETC32
;
19 DECL_WINELIB_TYPE(FORMATETC
)
20 DECL_WINELIB_TYPE(LPFORMATETC
)
22 typedef struct STGMEDIUM32 STGMEDIUM32
, *LPSTGMEDIUM32
;
23 DECL_WINELIB_TYPE(STGMEDIUM
)
24 DECL_WINELIB_TYPE(LPSTGMEDIUM
)
27 /*****************************************************************************
28 * Predeclare the interfaces
30 DEFINE_OLEGUID(IID_IAdviseSink
, 0x0000010fL
, 0, 0);
31 typedef struct IAdviseSink IAdviseSink
,*LPADVISESINK
;
33 DEFINE_OLEGUID(IID_IAdviseSink2
, 0x00000125L
, 0, 0);
34 typedef struct IAdviseSink2 IAdviseSink2
,*LPADVISESINK2
;
36 DEFINE_OLEGUID(IID_IDataAdviseHolder
, 0x00000110L
, 0, 0);
37 typedef struct IDataAdviseHolder IDataAdviseHolder
,*LPDATAADVISEHOLDER
;
39 DEFINE_OLEGUID(IID_IDataObject
, 0x0000010EL
, 0, 0);
40 typedef struct IDataObject IDataObject
,*LPDATAOBJECT
;
42 DEFINE_OLEGUID(IID_IEnumFORMATETC
, 0x00000103L
, 0, 0);
43 typedef struct IEnumFORMATETC IEnumFORMATETC
,*LPENUMFORMATETC
;
45 DEFINE_OLEGUID(IID_IEnumSTATDATA
, 0x00000105L
, 0, 0);
46 typedef struct IEnumSTATDATA IEnumSTATDATA
,*LPENUMSTATDATA
;
49 /*****************************************************************************
50 * DVTARGETDEVICE structure
52 struct DVTARGETDEVICE32
55 WORD tdDriverNameOffset
;
56 WORD tdDeviceNameOffset
;
57 WORD tdPortNameOffset
;
58 WORD tdExtDevmodeOffset
;
63 /*****************************************************************************
66 /* wished data format */
69 CLIPFORMAT32 cfFormat
;
70 DVTARGETDEVICE32
* ptd
;
77 /*****************************************************************************
91 /* dataobject as answer to a request */
97 HMETAFILEPICT32 hMetaFilePict
;
98 HENHMETAFILE32 hEnhMetaFile
;
100 LPOLESTR32 lpszFileName
;
104 IUnknown
*pUnkForRelease
;
108 /*****************************************************************************
109 * IAdviseSink interface
111 /* FIXME: not implemented */
114 /*****************************************************************************
115 * IAdviseSink2 interface
117 /* FIXME: not implemented */
120 /*****************************************************************************
121 * IDataAdviseHolder interface
123 /* FIXME: not implemented */
126 /*****************************************************************************
127 * IDataObject interface
129 #define ICOM_INTERFACE IDataObject
130 ICOM_BEGIN(IDataObject
,IUnknown
)
131 ICOM_METHOD2(HRESULT
,GetData
, LPFORMATETC32
,pformatetcIn
, STGMEDIUM32
*,pmedium
);
132 ICOM_METHOD2(HRESULT
,GetDataHere
, LPFORMATETC32
,pformatetc
, STGMEDIUM32
*,pmedium
);
133 ICOM_METHOD1(HRESULT
,QueryGetData
, LPFORMATETC32
,pformatetc
);
134 ICOM_METHOD2(HRESULT
,GetCanonicalFormatEtc
, LPFORMATETC32
,pformatectIn
, LPFORMATETC32
,pformatetcOut
);
135 ICOM_METHOD3(HRESULT
,SetData
, LPFORMATETC32
,pformatetc
, STGMEDIUM32
*,pmedium
, BOOL32
,fRelease
);
136 ICOM_METHOD2(HRESULT
,EnumFormatEtc
, DWORD
,dwDirection
, IEnumFORMATETC
**,ppenumFormatEtc
);
137 ICOM_METHOD4(HRESULT
,DAdvise
, LPFORMATETC32
*,pformatetc
, DWORD
,advf
, IAdviseSink
*,pAdvSink
, DWORD
*,pdwConnection
);
138 ICOM_METHOD1(HRESULT
,DUnadvise
, DWORD
,dwConnection
);
139 ICOM_METHOD1(HRESULT
,EnumDAdvise
, IEnumSTATDATA
**,ppenumAdvise
);
140 ICOM_END(IDataObject
)
141 #undef ICOM_INTERFACE
143 #if !defined(__cplusplus) || defined(CINTERFACE)
144 /*** IUnknown methods ***/
145 #define IDataObject_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
146 #define IDataObject_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
147 #define IDataObject_Release(p) ICOM_ICALL (IUnknown,Release,p)
148 /*** IDataObject methods ***/
149 #define IDataObject_GetData(p,a,b) ICOM_CALL2(GetData,p,a,b)
150 #define IDataObject_GetDataHere(p,a,b) ICOM_CALL2(GetDataHere,p,a,b)
151 #define IDataObject_QueryGetData(p,a) ICOM_CALL1(QueryGetData,p,a)
152 #define IDataObject_GetCanonicalFormatEtc(p,a,b) ICOM_CALL2(GetCanonicalFormatEtc,p,a,b)
153 #define IDataObject_SetData(p,a,b,c) ICOM_CALL3(SetData,p,a,b,c)
154 #define IDataObject_EnumFormatEtc(p,a,b) ICOM_CALL2(EnumFormatEtc,p,a,b)
155 #define IDataObject_DAdvise(p,a,b,c,d) ICOM_CALL4(DAdvise,p,a,b,c,d)
156 #define IDataObject_DUnadvise(p,a) ICOM_CALL1(DUnadvise,p,a)
157 #define IDataObject_EnumDAdvise(p,a) ICOM_CALL1(EnumDAdvise,p,a)
161 /*****************************************************************************
162 * IEnumFORMATETC interface
164 #define ICOM_INTERFACE IEnumFORMATETC
165 ICOM_BEGIN(IEnumFORMATETC
,IUnknown
)
166 ICOM_METHOD3(HRESULT
,Next
, ULONG
,celt
, FORMATETC32
*,rgelt
, ULONG
*,pceltFethed
);
167 ICOM_METHOD1(HRESULT
,Skip
, ULONG
,celt
);
168 ICOM_METHOD (HRESULT
,Reset
);
169 ICOM_METHOD1(HRESULT
,Clone
, IEnumFORMATETC
**,ppenum
);
170 ICOM_END(IEnumFORMATETC
)
171 #undef ICOM_INTERFACE
173 #if !defined(__cplusplus) || defined(CINTERFACE)
174 /*** IUnknown methods ***/
175 #define IEnumFORMATETC_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
176 #define IEnumFORMATETC_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
177 #define IEnumFORMATETC_Release(p) ICOM_ICALL (IUnknown,Release,p)
178 /*** IEnumFORMATETC methods ***/
179 #define IEnumFORMATETC_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c)
180 #define IEnumFORMATETC_Skip(p,a) ICOM_CALL1(Skip,p,a)
181 #define IEnumFORMATETC_Reset(p) ICOM_CALL (Reset,p)
182 #define IEnumFORMATETC_Clone(p,a) ICOM_CALL1(Clone,p,a)
186 /*****************************************************************************
187 * IEnumSTATDATA interface
189 /* FIXME: not implemented */
192 #endif /* __WINE_WINE_OBJ_DATAOBJECT_H */