Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenamvideo.idl
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2003 Robert Shearman 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 import "objidl.idl"; 00020 00021 /* trick widl into thinking that it knows the DirectDraw types 00022 * as there is no IDL file for them (yet) */ 00023 cpp_quote("#if 0") 00024 typedef void * LPDIRECTDRAW; 00025 typedef void DDSURFACEDESC,DDCAPS; 00026 typedef DWORD RGBQUAD; 00027 typedef LONGLONG REFERENCE_TIME; 00028 typedef struct 00029 { 00030 DWORD biSize; 00031 LONG biWidth; 00032 LONG biHeight; 00033 WORD biPlanes; 00034 WORD biBitCount; 00035 DWORD biCompression; 00036 DWORD biSizeImage; 00037 LONG biXPelsPerMeter; 00038 LONG biYPelsPerMeter; 00039 DWORD biClrUsed; 00040 DWORD biClrImportant; 00041 } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; 00042 cpp_quote("#endif") 00043 00044 cpp_quote("#include <ddraw.h>") 00045 00046 cpp_quote("#define AMDDS_NONE 0x00") 00047 cpp_quote("#define AMDDS_DCIPS 0x01") 00048 cpp_quote("#define AMDDS_PS 0x02") 00049 cpp_quote("#define AMDDS_RGBOVR 0x04") 00050 cpp_quote("#define AMDDS_YUVOVR 0x08") 00051 cpp_quote("#define AMDDS_RGBOFF 0x10") 00052 cpp_quote("#define AMDDS_YUVOFF 0x20") 00053 cpp_quote("#define AMDDS_RGBFLP 0x40") 00054 cpp_quote("#define AMDDS_YUVFLP 0x80") 00055 cpp_quote("#define AMDDS_ALL 0xFF") 00056 cpp_quote("#define AMDDS_DEFAULT AMDDS_ALL") 00057 00058 cpp_quote("#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)") 00059 cpp_quote("#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)") 00060 cpp_quote("#define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)") 00061 00062 [ 00063 object, 00064 uuid(36d39eb0-dd75-11ce-bf0e-00aa0055595a), 00065 pointer_default(unique), 00066 local 00067 ] 00068 interface IDirectDrawVideo : IUnknown 00069 { 00070 HRESULT GetSwitches([out] DWORD * pSwitches); 00071 HRESULT SetSwitches([in] DWORD Switches); 00072 HRESULT GetCaps([out] DDCAPS * pCaps); 00073 HRESULT GetEmulatedCaps([out] DDCAPS *pCaps); 00074 HRESULT GetSurfaceDesc([out] DDSURFACEDESC * pSurfaceDesc); 00075 HRESULT GetFourCCCodes([out] DWORD * pCount, [out] DWORD * pCodes); 00076 HRESULT SetDirectDraw([in] LPDIRECTDRAW pDirectDraw); 00077 HRESULT GetDirectDraw([out] LPDIRECTDRAW * ppDirectDraw); 00078 HRESULT GetSurfaceType([out] DWORD * pSurfaceType); 00079 HRESULT SetDefault(); 00080 HRESULT UseScanLine([in] long UseScanLine); 00081 HRESULT CanUseScanLine([out] long * UseScanLine); 00082 HRESULT UseOverlayStretch([in] long UseOverlayStretch); 00083 HRESULT CanUseOverlayStretch([out] long * UseOverlayStretch); 00084 HRESULT UseWhenFullScreen([in] long UseWhenFullScreen); 00085 HRESULT WillUseFullScreen([out] long * UseWhenFullScreen); 00086 } 00087 00088 [ 00089 object, 00090 uuid(1bd0ecb0-f8e2-11ce-aac6-0020af0b99a3), 00091 pointer_default(unique), 00092 local 00093 ] 00094 interface IQualProp : IUnknown 00095 { 00096 [propget] HRESULT FramesDroppedInRenderer([out] int * pcFrames); 00097 [propget] HRESULT FramesDrawn([out] int * pcFramesDrawn); 00098 [propget] HRESULT AvgFrameRate([out] int * piAvgFrameRate); 00099 [propget] HRESULT Jitter([out] int * iJitter); 00100 [propget] HRESULT AvgSyncOffset([out] int * piAvg); 00101 [propget] HRESULT DevSyncOffset([out] int * piDev); 00102 } 00103 00104 [ 00105 object, 00106 uuid(dd1d7110-7836-11cf-bf47-00aa0055595a), 00107 pointer_default(unique) 00108 ] 00109 interface IFullScreenVideo : IUnknown 00110 { 00111 HRESULT CountModes([out] long * pModes); 00112 HRESULT GetModeInfo([in] long Mode, [out] long * pWidth, [out] long * pHeight, [out] long * pDepth); 00113 HRESULT GetCurrentMode([out] long * pMode); 00114 HRESULT IsModeAvailable([in] long Mode); 00115 HRESULT IsModeEnabled([in] long Mode); 00116 HRESULT SetEnabled([in] long Mode, [in] long bEnabled); 00117 HRESULT GetClipFactor([out] long * pClipFactor); 00118 HRESULT SetClipFactor([in] long ClipFactor); 00119 HRESULT SetMessageDrain([in] HWND hwnd); 00120 HRESULT GetMessageDrain([out] HWND * hwnd); 00121 HRESULT SetMonitor([in] long Monitor); 00122 HRESULT GetMonitor([out] long * Monitor); 00123 HRESULT HideOnDeactivate([in] long Hide); 00124 HRESULT IsHideOnDeactivate(); 00125 HRESULT SetCaption([in] BSTR strCaption); 00126 HRESULT GetCaption([out] BSTR * pstrCaption); 00127 HRESULT SetDefault(); 00128 } 00129 00130 [ 00131 object, 00132 uuid(53479470-f1dd-11cf-bc42-00aa00ac74f6), 00133 pointer_default(unique), 00134 local 00135 ] 00136 interface IFullScreenVideoEx : IFullScreenVideo 00137 { 00138 HRESULT SetAcceleratorTable([in] HWND hwnd, [in] HACCEL hAccel); 00139 HRESULT GetAcceleratorTable([out] HWND * phwnd, [out] HACCEL * phAccel); 00140 HRESULT KeepPixelAspectRatio([in] long KeepAspect); 00141 /* FIXME: not sure is this next method is an [out] */ 00142 HRESULT IsKeepPixelAspectRatio([out] long * pKeepAspect); 00143 } 00144 00145 [ 00146 object, 00147 uuid(61ded640-e912-11ce-a099-00aa00479a58), 00148 pointer_default(unique), 00149 local 00150 ] 00151 interface IBaseVideoMixer : IUnknown 00152 { 00153 HRESULT SetLeadPin([in] int iPin); 00154 HRESULT GetLeadPin([out] int * piPin); 00155 HRESULT GetInputPinCount([out] int * piPinCount); 00156 HRESULT IsUsingClock([out] int * pbValue); 00157 HRESULT SetUsingClock([in] int bValue); 00158 HRESULT GetClockPeriod([out] int * pbValue); 00159 HRESULT SetClockPeriod([in] int bValue); 00160 } 00161 00162 #define iPALETTE_COLORS 256 00163 #define iMASK_COLORS 3 00164 00165 cpp_quote("#define iPALETTE_COLORS 256") 00166 cpp_quote("#define iEGA_COLORS 16") 00167 cpp_quote("#define iMASK_COLORS 3") 00168 cpp_quote("#define iTRUECOLOR 16") 00169 cpp_quote("#define iRED 0") 00170 cpp_quote("#define iGREEN 1") 00171 cpp_quote("#define iBLUE 2") 00172 cpp_quote("#define iPALETTE 8") 00173 cpp_quote("#define iMAXBITS 8") 00174 00175 typedef struct tag_TRUECOLORINFO 00176 { 00177 DWORD dwBitMasks[iMASK_COLORS]; 00178 RGBQUAD bmiColors[iPALETTE_COLORS]; 00179 } TRUECOLORINFO; 00180 00181 typedef struct tagVIDEOINFOHEADER 00182 { 00183 RECT rcSource; 00184 RECT rcTarget; 00185 DWORD dwBitRate; 00186 DWORD dwBitErrorRate; 00187 REFERENCE_TIME AvgTimePerFrame; 00188 00189 BITMAPINFOHEADER bmiHeader; 00190 } VIDEOINFOHEADER; 00191 00192 typedef struct tagVIDEOINFO 00193 { 00194 RECT rcSource; 00195 RECT rcTarget; 00196 DWORD dwBitRate; 00197 DWORD dwBitErrorRate; 00198 REFERENCE_TIME AvgTimePerFrame; 00199 00200 BITMAPINFOHEADER bmiHeader; 00201 00202 union 00203 { 00204 RGBQUAD bmiColors[iPALETTE_COLORS]; 00205 DWORD dwBitMasks[iMASK_COLORS]; 00206 TRUECOLORINFO TrueColorInfo; 00207 } DUMMYUNIONNAME; 00208 } VIDEOINFO; 00209 00210 typedef struct tagMPEG1VIDEOINFO 00211 { 00212 VIDEOINFOHEADER hdr; 00213 DWORD dwStartTimeCode; 00214 DWORD cbSequenceHeader; 00215 BYTE bSequenceHeader[1]; 00216 } MPEG1VIDEOINFO; 00217 00218 cpp_quote("#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140") 00219 cpp_quote("#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)") 00220 00221 typedef struct tagAnalogVideoInfo 00222 { 00223 RECT rcSource; 00224 RECT rcTarget; 00225 DWORD dwActiveWidth; 00226 DWORD dwActiveHeight; 00227 REFERENCE_TIME AvgTimePerFrame; 00228 } ANALOGVIDEOINFO; 00229 00230 typedef enum 00231 { 00232 AM_PROPERTY_FRAMESTEP_STEP = 0x01, 00233 AM_PROPERTY_FRAMESTEP_CANCEL = 0x02, 00234 AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03, 00235 AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04 00236 } AM_PROPERTY_FRAMESTEP; 00237 00238 typedef struct _AM_FRAMESTEP_STEP 00239 { 00240 DWORD dwFramesToStep; 00241 } AM_FRAMESTEP_STEP; Generated on Sun May 27 2012 04:30:34 for ReactOS by
1.7.6.1
|