widl: Generate helper macros for WinRT implementation.
[wine/zf.git] / dlls / avifil32 / avifil32.idl
blob1e3f191622620d1065e7cbde3e42268144af5486
1 /*
2 * COM Classes for avifil32
4 * Copyright 2010 Alexandre Julliard
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #pragma makedep proxy
22 #pragma makedep register
24 import "wtypes.idl";
25 import "unknwn.idl";
27 typedef struct _AVISTREAMINFOW
29 DWORD fccType;
30 DWORD fccHandler;
31 DWORD dwFlags;
32 DWORD dwCaps;
33 WORD wPriority;
34 WORD wLanguage;
35 DWORD dwScale;
36 DWORD dwRate;
37 DWORD dwStart;
38 DWORD dwLength;
39 DWORD dwInitialFrames;
40 DWORD dwSuggestedBufferSize;
41 DWORD dwQuality;
42 DWORD dwSampleSize;
43 RECT rcFrame;
44 DWORD dwEditCount;
45 DWORD dwFormatChangeCount;
46 WCHAR szName[64];
47 } AVISTREAMINFOW;
50 object,
51 uuid(00020021-0000-0000-c000-000000000046)
53 interface IAVIStream : IUnknown
55 HRESULT Create(LPARAM lParam1, LPARAM lParam2);
56 HRESULT Info(AVISTREAMINFOW *psi, LONG lSize);
57 LONG FindSample(LONG lPos, LONG lFlags);
58 HRESULT ReadFormat(LONG lPos, [out,size_is(*lpcbFormat)] char *lpFormat, [in,out] LONG *lpcbFormat);
59 HRESULT SetFormat(LONG lPos, [in,size_is(cbFormat)] char *lpFormat, LONG cbFormat);
60 HRESULT Read(LONG lStart, LONG lSamples, [out,size_is(cbBuffer)] char *lpBuffer, LONG cbBuffer, LONG *plBytes, LONG *plSamples);
61 HRESULT Write(LONG lStart, LONG lSamples, [in,size_is(cbBuffer)] char *lpBuffer, LONG cbBuffer, DWORD dwFlags, LONG *plSampWritten, LONG *plBytesWritten);
62 HRESULT Delete(LONG lStart, LONG lSamples);
63 HRESULT ReadData(DWORD fcc, [out,size_is(*lpcbBuffer)] char *lpBuffer, [in,out] LONG *lpcbBuffer);
64 HRESULT WriteData(DWORD fcc, [in,size_is(cbBuffer)] char *lpBuffer, LONG cbBuffer);
65 HRESULT SetInfo(AVISTREAMINFOW *plInfo, LONG cbInfo);
68 typedef struct _AVIFILEINFOW
70 DWORD dwMaxBytesPerSec;
71 DWORD dwFlags;
72 DWORD dwCaps;
73 DWORD dwStreams;
74 DWORD dwSuggestedBufferSize;
75 DWORD dwWidth;
76 DWORD dwHeight;
77 DWORD dwScale;
78 DWORD dwRate;
79 DWORD dwLength;
80 DWORD dwEditCount;
81 WCHAR szFileType[64];
82 } AVIFILEINFOW;
85 object,
86 uuid(00020020-0000-0000-c000-000000000046)
88 interface IAVIFile : IUnknown
90 HRESULT Info(AVIFILEINFOW *pfi, LONG lSize);
91 HRESULT GetStream(IAVIStream **ppStream, DWORD fccType, LONG lParam);
92 HRESULT CreateStream(IAVIStream **ppStream, AVISTREAMINFOW *psi);
93 HRESULT WriteData(DWORD fcc, [in,size_is(cbBuffer)] char *lpBuffer, LONG cbBuffer);
94 HRESULT ReadData(DWORD fcc, [out,size_is(*lpcbBuffer)] char *lpBuffer, [in,out] LONG *lpcbBuffer);
95 HRESULT EndRecord(void);
96 HRESULT DeleteStream(DWORD fccType, LONG lParam);
100 helpstring("Microsoft AVI Files"),
101 threading(both),
102 uuid(00020000-0000-0000-C000-000000000046)
104 coclass AVIFile { interface IAVIFile; }
107 helpstring("AVI Compressed Stream"),
108 threading(both),
109 uuid(00020001-0000-0000-c000-000000000046)
111 coclass ICMStream { interface IAVIStream; }
114 helpstring("Microsoft Wave File"),
115 threading(both),
116 uuid(00020003-0000-0000-c000-000000000046)
118 coclass WAVFile { interface IAVIFile; }
121 helpstring("IAVIStream & IAVIFile Proxy"),
122 threading(both),
123 uuid(0002000d-0000-0000-c000-000000000046)
125 coclass PSFactoryBuffer { interface IFactoryBuffer; }
128 helpstring("ACM Compressed Audio Stream"),
129 threading(both),
130 uuid(0002000f-0000-0000-c000-000000000046)
132 coclass ACMStream { interface IAVIStream; }