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 __REQUIRED_RPCNDR_H_VERSION__
  7#define __REQUIRED_RPCNDR_H_VERSION__ 440
  8#endif
  9
 10#include "rpc.h"
 11#include "rpcndr.h"
 12
 13#ifndef __RPCNDR_H_VERSION__
 14#error This stub requires an updated version of <rpcndr.h>
 15#endif
 16
 17#ifndef COM_NO_WINDOWS_H
 18#include "windows.h"
 19#include "ole2.h"
 20#endif
 21
 22#ifndef __ocmm_h__
 23#define __ocmm_h__
 24
 25#ifndef __ITimerService_FWD_DEFINED__
 26#define __ITimerService_FWD_DEFINED__
 27typedef struct ITimerService ITimerService;
 28#endif
 29
 30#ifndef __ITimer_FWD_DEFINED__
 31#define __ITimer_FWD_DEFINED__
 32typedef struct ITimer ITimer;
 33#endif
 34
 35#ifndef __ITimerSink_FWD_DEFINED__
 36#define __ITimerSink_FWD_DEFINED__
 37typedef struct ITimerSink ITimerSink;
 38#endif
 39
 40#ifndef __IMapMIMEToCLSID_FWD_DEFINED__
 41#define __IMapMIMEToCLSID_FWD_DEFINED__
 42typedef struct IMapMIMEToCLSID IMapMIMEToCLSID;
 43#endif
 44
 45#ifndef __IImageDecodeFilter_FWD_DEFINED__
 46#define __IImageDecodeFilter_FWD_DEFINED__
 47typedef struct IImageDecodeFilter IImageDecodeFilter;
 48#endif
 49
 50#ifndef __IImageDecodeEventSink_FWD_DEFINED__
 51#define __IImageDecodeEventSink_FWD_DEFINED__
 52typedef struct IImageDecodeEventSink IImageDecodeEventSink;
 53#endif
 54
 55#include "oaidl.h"
 56#include "oleidl.h"
 57
 58#ifdef __cplusplus
 59extern "C"{
 60#endif
 61
 62#ifndef __MIDL_user_allocate_free_DEFINED__
 63#define __MIDL_user_allocate_free_DEFINED__
 64  void *__RPC_API MIDL_user_allocate(size_t);
 65  void __RPC_API MIDL_user_free(void *);
 66#endif
 67
 68#define SURFACE_LOCK_EXCLUSIVE 0x01
 69#define SURFACE_LOCK_ALLOW_DISCARD 0x02
 70#define SURFACE_LOCK_WAIT 0x04
 71
 72#define E_SURFACE_NOSURFACE __MSABI_LONG(0x8000C000)
 73#define E_SURFACE_UNKNOWN_FORMAT __MSABI_LONG(0x8000C001)
 74#define E_SURFACE_NOTMYPOINTER __MSABI_LONG(0x8000C002)
 75#define E_SURFACE_DISCARDED __MSABI_LONG(0x8000C003)
 76#define E_SURFACE_NODC __MSABI_LONG(0x8000C004)
 77#define E_SURFACE_NOTMYDC __MSABI_LONG(0x8000C005)
 78#define S_SURFACE_DISCARDED __MSABI_LONG(0x0000C003)
 79
 80  typedef GUID BFID;
 81
 82#ifndef RGBQUAD_DEFINED
 83#define RGBQUAD_DEFINED
 84  typedef struct tagRGBQUAD RGBQUAD;
 85#endif
 86  EXTERN_C const GUID BFID_MONOCHROME;
 87  EXTERN_C const GUID BFID_RGB_4;
 88  EXTERN_C const GUID BFID_RGB_8;
 89  EXTERN_C const GUID BFID_RGB_555;
 90  EXTERN_C const GUID BFID_RGB_565;
 91  EXTERN_C const GUID BFID_RGB_24;
 92  EXTERN_C const GUID BFID_RGB_32;
 93  EXTERN_C const GUID BFID_RGBA_32;
 94  EXTERN_C const GUID BFID_GRAY_8;
 95  EXTERN_C const GUID BFID_GRAY_16;
 96
 97#define SID_SDirectDraw3 IID_IDirectDraw3
 98
 99#define COLOR_NO_TRANSPARENT 0xFFFFFFFF
100
101#define IMGDECODE_EVENT_PROGRESS 0x01
102#define IMGDECODE_EVENT_PALETTE 0x02
103#define IMGDECODE_EVENT_BEGINBITS 0x04
104#define IMGDECODE_EVENT_BITSCOMPLETE 0x08
105#define IMGDECODE_EVENT_USEDDRAW 0x10
106
107#define IMGDECODE_HINT_TOPDOWN 0x01
108#define IMGDECODE_HINT_BOTTOMUP 0x02
109#define IMGDECODE_HINT_FULLWIDTH 0x04
110
111#define MAPMIME_DEFAULT 0
112#define MAPMIME_CLSID 1
113#define MAPMIME_DISABLE 2
114#define MAPMIME_DEFAULT_ALWAYS 3
115
116#define BFID_INDEXED_RGB_8 BFID_RGB_8
117#define BFID_INDEXED_RGB_4 BFID_RGB_4
118#define BFID_INDEXED_RGB_1 BFID_MONOCHROME
119
120  EXTERN_C const GUID CLSID_IImageDecodeFilter;
121  EXTERN_C const GUID NAMEDTIMER_DRAW;
122
123  extern RPC_IF_HANDLE __MIDL_itf_ocmm_0000_v0_0_c_ifspec;
124  extern RPC_IF_HANDLE __MIDL_itf_ocmm_0000_v0_0_s_ifspec;
125
126#ifndef __ITimerService_INTERFACE_DEFINED__
127#define __ITimerService_INTERFACE_DEFINED__
128  EXTERN_C const IID IID_ITimerService;
129#if defined(__cplusplus) && !defined(CINTERFACE)
130  struct ITimerService : public IUnknown {
131  public:
132    virtual HRESULT WINAPI CreateTimer(ITimer *pReferenceTimer,ITimer **ppNewTimer) = 0;
133    virtual HRESULT WINAPI GetNamedTimer(REFGUID rguidName,ITimer **ppTimer) = 0;
134    virtual HRESULT WINAPI SetNamedTimerReference(REFGUID rguidName,ITimer *pReferenceTimer) = 0;
135  };
136#else
137  typedef struct ITimerServiceVtbl {
138    BEGIN_INTERFACE
139      HRESULT (WINAPI *QueryInterface)(ITimerService *This,REFIID riid,void **ppvObject);
140      ULONG (WINAPI *AddRef)(ITimerService *This);
141      ULONG (WINAPI *Release)(ITimerService *This);
142      HRESULT (WINAPI *CreateTimer)(ITimerService *This,ITimer *pReferenceTimer,ITimer **ppNewTimer);
143      HRESULT (WINAPI *GetNamedTimer)(ITimerService *This,REFGUID rguidName,ITimer **ppTimer);
144      HRESULT (WINAPI *SetNamedTimerReference)(ITimerService *This,REFGUID rguidName,ITimer *pReferenceTimer);
145    END_INTERFACE
146  } ITimerServiceVtbl;
147  struct ITimerService {
148    CONST_VTBL struct ITimerServiceVtbl *lpVtbl;
149  };
150#ifdef COBJMACROS
151#define ITimerService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
152#define ITimerService_AddRef(This) (This)->lpVtbl->AddRef(This)
153#define ITimerService_Release(This) (This)->lpVtbl->Release(This)
154#define ITimerService_CreateTimer(This,pReferenceTimer,ppNewTimer) (This)->lpVtbl->CreateTimer(This,pReferenceTimer,ppNewTimer)
155#define ITimerService_GetNamedTimer(This,rguidName,ppTimer) (This)->lpVtbl->GetNamedTimer(This,rguidName,ppTimer)
156#define ITimerService_SetNamedTimerReference(This,rguidName,pReferenceTimer) (This)->lpVtbl->SetNamedTimerReference(This,rguidName,pReferenceTimer)
157#endif
158#endif
159  HRESULT WINAPI ITimerService_CreateTimer_Proxy(ITimerService *This,ITimer *pReferenceTimer,ITimer **ppNewTimer);
160  void __RPC_STUB ITimerService_CreateTimer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
161  HRESULT WINAPI ITimerService_GetNamedTimer_Proxy(ITimerService *This,REFGUID rguidName,ITimer **ppTimer);
162  void __RPC_STUB ITimerService_GetNamedTimer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
163  HRESULT WINAPI ITimerService_SetNamedTimerReference_Proxy(ITimerService *This,REFGUID rguidName,ITimer *pReferenceTimer);
164  void __RPC_STUB ITimerService_SetNamedTimerReference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
165#endif
166
167#ifndef __ITimer_INTERFACE_DEFINED__
168#define __ITimer_INTERFACE_DEFINED__
169  EXTERN_C const IID IID_ITimer;
170#if defined(__cplusplus) && !defined(CINTERFACE)
171  struct ITimer : public IUnknown {
172  public:
173    virtual HRESULT WINAPI Advise(VARIANT vtimeMin,VARIANT vtimeMax,VARIANT vtimeInterval,DWORD dwFlags,ITimerSink *pTimerSink,DWORD *pdwCookie) = 0;
174    virtual HRESULT WINAPI Unadvise(DWORD dwCookie) = 0;
175    virtual HRESULT WINAPI Freeze(WINBOOL fFreeze) = 0;
176    virtual HRESULT WINAPI GetTime(VARIANT *pvtime) = 0;
177  };
178#else
179  typedef struct ITimerVtbl {
180    BEGIN_INTERFACE
181      HRESULT (WINAPI *QueryInterface)(ITimer *This,REFIID riid,void **ppvObject);
182      ULONG (WINAPI *AddRef)(ITimer *This);
183      ULONG (WINAPI *Release)(ITimer *This);
184      HRESULT (WINAPI *Advise)(ITimer *This,VARIANT vtimeMin,VARIANT vtimeMax,VARIANT vtimeInterval,DWORD dwFlags,ITimerSink *pTimerSink,DWORD *pdwCookie);
185      HRESULT (WINAPI *Unadvise)(ITimer *This,DWORD dwCookie);
186      HRESULT (WINAPI *Freeze)(ITimer *This,WINBOOL fFreeze);
187      HRESULT (WINAPI *GetTime)(ITimer *This,VARIANT *pvtime);
188    END_INTERFACE
189  } ITimerVtbl;
190  struct ITimer {
191    CONST_VTBL struct ITimerVtbl *lpVtbl;
192  };
193#ifdef COBJMACROS
194#define ITimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
195#define ITimer_AddRef(This) (This)->lpVtbl->AddRef(This)
196#define ITimer_Release(This) (This)->lpVtbl->Release(This)
197#define ITimer_Advise(This,vtimeMin,vtimeMax,vtimeInterval,dwFlags,pTimerSink,pdwCookie) (This)->lpVtbl->Advise(This,vtimeMin,vtimeMax,vtimeInterval,dwFlags,pTimerSink,pdwCookie)
198#define ITimer_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
199#define ITimer_Freeze(This,fFreeze) (This)->lpVtbl->Freeze(This,fFreeze)
200#define ITimer_GetTime(This,pvtime) (This)->lpVtbl->GetTime(This,pvtime)
201#endif
202#endif
203  HRESULT WINAPI ITimer_Advise_Proxy(ITimer *This,VARIANT vtimeMin,VARIANT vtimeMax,VARIANT vtimeInterval,DWORD dwFlags,ITimerSink *pTimerSink,DWORD *pdwCookie);
204  void __RPC_STUB ITimer_Advise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
205  HRESULT WINAPI ITimer_Unadvise_Proxy(ITimer *This,DWORD dwCookie);
206  void __RPC_STUB ITimer_Unadvise_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
207  HRESULT WINAPI ITimer_Freeze_Proxy(ITimer *This,WINBOOL fFreeze);
208  void __RPC_STUB ITimer_Freeze_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
209  HRESULT WINAPI ITimer_GetTime_Proxy(ITimer *This,VARIANT *pvtime);
210  void __RPC_STUB ITimer_GetTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
211#endif
212
213#ifndef __ITimerSink_INTERFACE_DEFINED__
214#define __ITimerSink_INTERFACE_DEFINED__
215  EXTERN_C const IID IID_ITimerSink;
216#if defined(__cplusplus) && !defined(CINTERFACE)
217  struct ITimerSink : public IUnknown {
218  public:
219    virtual HRESULT WINAPI OnTimer(VARIANT vtimeAdvise) = 0;
220  };
221#else
222  typedef struct ITimerSinkVtbl {
223    BEGIN_INTERFACE
224      HRESULT (WINAPI *QueryInterface)(ITimerSink *This,REFIID riid,void **ppvObject);
225      ULONG (WINAPI *AddRef)(ITimerSink *This);
226      ULONG (WINAPI *Release)(ITimerSink *This);
227      HRESULT (WINAPI *OnTimer)(ITimerSink *This,VARIANT vtimeAdvise);
228    END_INTERFACE
229  } ITimerSinkVtbl;
230  struct ITimerSink {
231    CONST_VTBL struct ITimerSinkVtbl *lpVtbl;
232  };
233#ifdef COBJMACROS
234#define ITimerSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
235#define ITimerSink_AddRef(This) (This)->lpVtbl->AddRef(This)
236#define ITimerSink_Release(This) (This)->lpVtbl->Release(This)
237#define ITimerSink_OnTimer(This,vtimeAdvise) (This)->lpVtbl->OnTimer(This,vtimeAdvise)
238#endif
239#endif
240  HRESULT WINAPI ITimerSink_OnTimer_Proxy(ITimerSink *This,VARIANT vtimeAdvise);
241  void __RPC_STUB ITimerSink_OnTimer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
242#endif
243
244#define SID_STimerService IID_ITimerService
245
246  extern RPC_IF_HANDLE __MIDL_itf_ocmm_0142_v0_0_c_ifspec;
247  extern RPC_IF_HANDLE __MIDL_itf_ocmm_0142_v0_0_s_ifspec;
248
249#ifndef __IMapMIMEToCLSID_INTERFACE_DEFINED__
250#define __IMapMIMEToCLSID_INTERFACE_DEFINED__
251  EXTERN_C const IID IID_IMapMIMEToCLSID;
252#if defined(__cplusplus) && !defined(CINTERFACE)
253  struct IMapMIMEToCLSID : public IUnknown {
254  public:
255    virtual HRESULT WINAPI EnableDefaultMappings(WINBOOL bEnable) = 0;
256    virtual HRESULT WINAPI MapMIMEToCLSID(LPCOLESTR pszMIMEType,CLSID *pCLSID) = 0;
257    virtual HRESULT WINAPI SetMapping(LPCOLESTR pszMIMEType,DWORD dwMapMode,REFCLSID clsid) = 0;
258  };
259#else
260  typedef struct IMapMIMEToCLSIDVtbl {
261    BEGIN_INTERFACE
262      HRESULT (WINAPI *QueryInterface)(IMapMIMEToCLSID *This,REFIID riid,void **ppvObject);
263      ULONG (WINAPI *AddRef)(IMapMIMEToCLSID *This);
264      ULONG (WINAPI *Release)(IMapMIMEToCLSID *This);
265      HRESULT (WINAPI *EnableDefaultMappings)(IMapMIMEToCLSID *This,WINBOOL bEnable);
266      HRESULT (WINAPI *MapMIMEToCLSID)(IMapMIMEToCLSID *This,LPCOLESTR pszMIMEType,CLSID *pCLSID);
267      HRESULT (WINAPI *SetMapping)(IMapMIMEToCLSID *This,LPCOLESTR pszMIMEType,DWORD dwMapMode,REFCLSID clsid);
268    END_INTERFACE
269  } IMapMIMEToCLSIDVtbl;
270  struct IMapMIMEToCLSID {
271    CONST_VTBL struct IMapMIMEToCLSIDVtbl *lpVtbl;
272  };
273#ifdef COBJMACROS
274#define IMapMIMEToCLSID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
275#define IMapMIMEToCLSID_AddRef(This) (This)->lpVtbl->AddRef(This)
276#define IMapMIMEToCLSID_Release(This) (This)->lpVtbl->Release(This)
277#define IMapMIMEToCLSID_EnableDefaultMappings(This,bEnable) (This)->lpVtbl->EnableDefaultMappings(This,bEnable)
278#define IMapMIMEToCLSID_MapMIMEToCLSID(This,pszMIMEType,pCLSID) (This)->lpVtbl->MapMIMEToCLSID(This,pszMIMEType,pCLSID)
279#define IMapMIMEToCLSID_SetMapping(This,pszMIMEType,dwMapMode,clsid) (This)->lpVtbl->SetMapping(This,pszMIMEType,dwMapMode,clsid)
280#endif
281#endif
282  HRESULT WINAPI IMapMIMEToCLSID_EnableDefaultMappings_Proxy(IMapMIMEToCLSID *This,WINBOOL bEnable);
283  void __RPC_STUB IMapMIMEToCLSID_EnableDefaultMappings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
284  HRESULT WINAPI IMapMIMEToCLSID_MapMIMEToCLSID_Proxy(IMapMIMEToCLSID *This,LPCOLESTR pszMIMEType,CLSID *pCLSID);
285  void __RPC_STUB IMapMIMEToCLSID_MapMIMEToCLSID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
286  HRESULT WINAPI IMapMIMEToCLSID_SetMapping_Proxy(IMapMIMEToCLSID *This,LPCOLESTR pszMIMEType,DWORD dwMapMode,REFCLSID clsid);
287  void __RPC_STUB IMapMIMEToCLSID_SetMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
288#endif
289
290#ifndef __IImageDecodeFilter_INTERFACE_DEFINED__
291#define __IImageDecodeFilter_INTERFACE_DEFINED__
292  EXTERN_C const IID IID_IImageDecodeFilter;
293#if defined(__cplusplus) && !defined(CINTERFACE)
294  struct IImageDecodeFilter : public IUnknown {
295  public:
296    virtual HRESULT WINAPI Initialize(IImageDecodeEventSink *pEventSink) = 0;
297    virtual HRESULT WINAPI Process(IStream *pStream) = 0;
298    virtual HRESULT WINAPI Terminate(HRESULT hrStatus) = 0;
299  };
300#else
301  typedef struct IImageDecodeFilterVtbl {
302    BEGIN_INTERFACE
303      HRESULT (WINAPI *QueryInterface)(IImageDecodeFilter *This,REFIID riid,void **ppvObject);
304      ULONG (WINAPI *AddRef)(IImageDecodeFilter *This);
305      ULONG (WINAPI *Release)(IImageDecodeFilter *This);
306      HRESULT (WINAPI *Initialize)(IImageDecodeFilter *This,IImageDecodeEventSink *pEventSink);
307      HRESULT (WINAPI *Process)(IImageDecodeFilter *This,IStream *pStream);
308      HRESULT (WINAPI *Terminate)(IImageDecodeFilter *This,HRESULT hrStatus);
309    END_INTERFACE
310  } IImageDecodeFilterVtbl;
311  struct IImageDecodeFilter {
312    CONST_VTBL struct IImageDecodeFilterVtbl *lpVtbl;
313  };
314#ifdef COBJMACROS
315#define IImageDecodeFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
316#define IImageDecodeFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
317#define IImageDecodeFilter_Release(This) (This)->lpVtbl->Release(This)
318#define IImageDecodeFilter_Initialize(This,pEventSink) (This)->lpVtbl->Initialize(This,pEventSink)
319#define IImageDecodeFilter_Process(This,pStream) (This)->lpVtbl->Process(This,pStream)
320#define IImageDecodeFilter_Terminate(This,hrStatus) (This)->lpVtbl->Terminate(This,hrStatus)
321#endif
322#endif
323  HRESULT WINAPI IImageDecodeFilter_Initialize_Proxy(IImageDecodeFilter *This,IImageDecodeEventSink *pEventSink);
324  void __RPC_STUB IImageDecodeFilter_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
325  HRESULT WINAPI IImageDecodeFilter_Process_Proxy(IImageDecodeFilter *This,IStream *pStream);
326  void __RPC_STUB IImageDecodeFilter_Process_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
327  HRESULT WINAPI IImageDecodeFilter_Terminate_Proxy(IImageDecodeFilter *This,HRESULT hrStatus);
328  void __RPC_STUB IImageDecodeFilter_Terminate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
329#endif
330
331#ifndef __IImageDecodeEventSink_INTERFACE_DEFINED__
332#define __IImageDecodeEventSink_INTERFACE_DEFINED__
333  EXTERN_C const IID IID_IImageDecodeEventSink;
334#if defined(__cplusplus) && !defined(CINTERFACE)
335  struct IImageDecodeEventSink : public IUnknown {
336  public:
337    virtual HRESULT WINAPI GetSurface(LONG nWidth,LONG nHeight,REFGUID bfid,ULONG nPasses,DWORD dwHints,IUnknown **ppSurface) = 0;
338    virtual HRESULT WINAPI OnBeginDecode(DWORD *pdwEvents,ULONG *pnFormats,BFID **ppFormats) = 0;
339    virtual HRESULT WINAPI OnBitsComplete(void) = 0;
340    virtual HRESULT WINAPI OnDecodeComplete(HRESULT hrStatus) = 0;
341    virtual HRESULT WINAPI OnPalette(void) = 0;
342    virtual HRESULT WINAPI OnProgress(RECT *pBounds,WINBOOL bComplete) = 0;
343  };
344#else
345  typedef struct IImageDecodeEventSinkVtbl {
346    BEGIN_INTERFACE
347      HRESULT (WINAPI *QueryInterface)(IImageDecodeEventSink *This,REFIID riid,void **ppvObject);
348      ULONG (WINAPI *AddRef)(IImageDecodeEventSink *This);
349      ULONG (WINAPI *Release)(IImageDecodeEventSink *This);
350      HRESULT (WINAPI *GetSurface)(IImageDecodeEventSink *This,LONG nWidth,LONG nHeight,REFGUID bfid,ULONG nPasses,DWORD dwHints,IUnknown **ppSurface);
351      HRESULT (WINAPI *OnBeginDecode)(IImageDecodeEventSink *This,DWORD *pdwEvents,ULONG *pnFormats,BFID **ppFormats);
352      HRESULT (WINAPI *OnBitsComplete)(IImageDecodeEventSink *This);
353      HRESULT (WINAPI *OnDecodeComplete)(IImageDecodeEventSink *This,HRESULT hrStatus);
354      HRESULT (WINAPI *OnPalette)(IImageDecodeEventSink *This);
355      HRESULT (WINAPI *OnProgress)(IImageDecodeEventSink *This,RECT *pBounds,WINBOOL bComplete);
356    END_INTERFACE
357  } IImageDecodeEventSinkVtbl;
358  struct IImageDecodeEventSink {
359    CONST_VTBL struct IImageDecodeEventSinkVtbl *lpVtbl;
360  };
361#ifdef COBJMACROS
362#define IImageDecodeEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
363#define IImageDecodeEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
364#define IImageDecodeEventSink_Release(This) (This)->lpVtbl->Release(This)
365#define IImageDecodeEventSink_GetSurface(This,nWidth,nHeight,bfid,nPasses,dwHints,ppSurface) (This)->lpVtbl->GetSurface(This,nWidth,nHeight,bfid,nPasses,dwHints,ppSurface)
366#define IImageDecodeEventSink_OnBeginDecode(This,pdwEvents,pnFormats,ppFormats) (This)->lpVtbl->OnBeginDecode(This,pdwEvents,pnFormats,ppFormats)
367#define IImageDecodeEventSink_OnBitsComplete(This) (This)->lpVtbl->OnBitsComplete(This)
368#define IImageDecodeEventSink_OnDecodeComplete(This,hrStatus) (This)->lpVtbl->OnDecodeComplete(This,hrStatus)
369#define IImageDecodeEventSink_OnPalette(This) (This)->lpVtbl->OnPalette(This)
370#define IImageDecodeEventSink_OnProgress(This,pBounds,bComplete) (This)->lpVtbl->OnProgress(This,pBounds,bComplete)
371#endif
372#endif
373  HRESULT WINAPI IImageDecodeEventSink_GetSurface_Proxy(IImageDecodeEventSink *This,LONG nWidth,LONG nHeight,REFGUID bfid,ULONG nPasses,DWORD dwHints,IUnknown **ppSurface);
374  void __RPC_STUB IImageDecodeEventSink_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
375  HRESULT WINAPI IImageDecodeEventSink_OnBeginDecode_Proxy(IImageDecodeEventSink *This,DWORD *pdwEvents,ULONG *pnFormats,BFID **ppFormats);
376  void __RPC_STUB IImageDecodeEventSink_OnBeginDecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
377  HRESULT WINAPI IImageDecodeEventSink_OnBitsComplete_Proxy(IImageDecodeEventSink *This);
378  void __RPC_STUB IImageDecodeEventSink_OnBitsComplete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
379  HRESULT WINAPI IImageDecodeEventSink_OnDecodeComplete_Proxy(IImageDecodeEventSink *This,HRESULT hrStatus);
380  void __RPC_STUB IImageDecodeEventSink_OnDecodeComplete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
381  HRESULT WINAPI IImageDecodeEventSink_OnPalette_Proxy(IImageDecodeEventSink *This);
382  void __RPC_STUB IImageDecodeEventSink_OnPalette_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
383  HRESULT WINAPI IImageDecodeEventSink_OnProgress_Proxy(IImageDecodeEventSink *This,RECT *pBounds,WINBOOL bComplete);
384  void __RPC_STUB IImageDecodeEventSink_OnProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
385#endif
386
387  ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
388  unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
389  unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
390  void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
391
392#ifdef __cplusplus
393}
394#endif
395#endif