1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_WSDATTACHMENT
7#define _INC_WSDATTACHMENT
8
9#ifndef _INC_WSDAPI
10#error Please include wsdapi.h instead of this header. This header cannot be used directly.
11#endif
12
13#if (_WIN32_WINNT >= 0x0600)
14
15#undef  INTERFACE
16#define INTERFACE IWSDAttachment
17#ifdef __GNUC__
18#warning COM interfaces layout in this header has not been verified.
19#warning COM interfaces with incorrect layout may not work at all.
20__MINGW_BROKEN_INTERFACE(INTERFACE)
21#endif
22DECLARE_INTERFACE_(IWSDAttachment,IUnknown)
23{
24    BEGIN_INTERFACE
25
26    /* IUnknown methods */
27    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
28    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
29    STDMETHOD_(ULONG, Release)(THIS) PURE;
30
31    /* IWSDAttachment methods */
32
33    END_INTERFACE
34};
35#ifdef COBJMACROS
36#define IWSDAttachment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
37#define IWSDAttachment_AddRef(This) (This)->lpVtbl->AddRef(This)
38#define IWSDAttachment_Release(This) (This)->lpVtbl->Release(This)
39#endif /*COBJMACROS*/
40
41#undef  INTERFACE
42#define INTERFACE IWSDInboundAttachment
43#ifdef __GNUC__
44#warning COM interfaces layout in this header has not been verified.
45#warning COM interfaces with incorrect layout may not work at all.
46__MINGW_BROKEN_INTERFACE(INTERFACE)
47#endif
48DECLARE_INTERFACE_(IWSDInboundAttachment,IWSDAttachment)
49{
50    BEGIN_INTERFACE
51
52    /* IUnknown methods */
53    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
54    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
55    STDMETHOD_(ULONG, Release)(THIS) PURE;
56
57    /* IWSDAttachment methods */
58
59    /* IWSDInboundAttachment methods */
60    STDMETHOD_(HRESULT,Read)(THIS_ BYTE *pBuffer,DWORD dwBytesToRead,LPDWORD pdwNumberofBytesRead) PURE;
61    STDMETHOD_(HRESULT,Close)(THIS) PURE;
62
63    END_INTERFACE
64};
65#ifdef COBJMACROS
66#define IWSDInboundAttachment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
67#define IWSDInboundAttachment_AddRef(This) (This)->lpVtbl->AddRef(This)
68#define IWSDInboundAttachment_Release(This) (This)->lpVtbl->Release(This)
69#define IWSDInboundAttachment_Read(This,pBuffer,dwBytesToRead,pdwNumberofBytesRead) (This)->lpVtbl->Read(This,pBuffer,dwBytesToRead,pdwNumberofBytesRead)
70#define IWSDInboundAttachment_Close() (This)->lpVtbl->Close(This)
71#endif /*COBJMACROS*/
72
73#undef  INTERFACE
74#define INTERFACE IWSDOutboundAttachment
75#ifdef __GNUC__
76#warning COM interfaces layout in this header has not been verified.
77#warning COM interfaces with incorrect layout may not work at all.
78__MINGW_BROKEN_INTERFACE(INTERFACE)
79#endif
80DECLARE_INTERFACE_(IWSDOutboundAttachment,IWSDAttachment)
81{
82    BEGIN_INTERFACE
83
84    /* IUnknown methods */
85    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
86    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
87    STDMETHOD_(ULONG, Release)(THIS) PURE;
88
89    /* IWSDAttachment methods */
90
91    /* IWSDOutboundAttachment methods */
92    STDMETHOD_(HRESULT,Write)(THIS_ const BYTE *pBuffer,DWORD dwBytesToWrite,LPDWORD pdwNumberofBytesWritten) PURE;
93    STDMETHOD_(HRESULT,Close)(THIS) PURE;
94    STDMETHOD_(HRESULT,Abort)(THIS) PURE;
95
96    END_INTERFACE
97};
98#ifdef COBJMACROS
99#define IWSDOutboundAttachment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
100#define IWSDOutboundAttachment_AddRef(This) (This)->lpVtbl->AddRef(This)
101#define IWSDOutboundAttachment_Release(This) (This)->lpVtbl->Release(This)
102#define IWSDOutboundAttachment_Write(This,pBuffer,dwBytesToWrite,pdwNumberofBytesWritten) (This)->lpVtbl->Write(This,pBuffer,dwBytesToWrite,pdwNumberofBytesWritten)
103#define IWSDOutboundAttachment_Close() (This)->lpVtbl->Close(This)
104#define IWSDOutboundAttachment_Abort() (This)->lpVtbl->Abort(This)
105#endif /*COBJMACROS*/
106
107#ifdef __cplusplus
108extern "C" {
109#endif
110
111HRESULT WINAPI WSDCreateOutboundAttachment(
112  IWSDOutboundAttachment **attachmentOut
113);
114
115#ifdef __cplusplus
116}
117#endif
118
119#endif /*(_WIN32_WINNT >= 0x0600)*/
120#endif /*_INC_WSDATTACHMENT*/
121