ReactOS  0.4.14-dev-323-g6fe6a88
vmrender.idl
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008 Maarten Lankhorst
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 cpp_quote("#if 0")
24 typedef struct { DWORD dw1, dw2; } DDCOLORKEY;
25 cpp_quote("#endif")
26 cpp_quote("#include <ddraw.h>")
27 
28 interface IVMRSurface;
29 interface IVMRSurfaceAllocator;
31 interface IVMRImagePresenter;
32 interface IVMRImagePresenterNotify;
33 interface IVMRWindowlessControl;
34 interface IVMRMixerControl;
35 interface IVMRMixerBitmap;
36 interface IVMRFilterConfig;
37 interface IVMRAspectRatioControl;
38 interface IVMRDeinterlaceControl;
39 interface IVMRMonitorConfig;
40 interface IVMRImageCompositor;
41 interface IVMRVideoStreamControl;
42 
44 {
51 
52 typedef struct tagVMRPRESENTATIONINFO
53 {
54  DWORD dwFlags;
58  RECT rcSrc, rcDst;
62 
63 [
64  local,
65  object,
66  uuid(ce704fe7-e71e-41fb-baa2-c4403e1182f5),
67  helpstring("IVMRImagePresenter interface"),
69 ]
70 interface IVMRImagePresenter : IUnknown
71 {
75 };
76 
78 {
86 
87 typedef struct tagVMRALLOCATIONINFO
88 {
89  DWORD dwFlags;
98 
99 [
100  local,
101  object,
102  uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
103  helpstring("IVMRSurfaceAllocator interface"),
105 ]
106 interface IVMRSurfaceAllocator : IUnknown
107 {
110  HRESULT PrepareSurface([in] DWORD_PTR id, [in] IDirectDrawSurface7 *surface, [in] DWORD dwSurfaceFlags);
112 };
113 
114 [
115  local,
116  object,
117  uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
118  helpstring("IVMRSurfaceAllocatorNotify interface"),
120 ]
122 {
129 };
130 
132 {
136 
137 [
138  local,
139  object,
140  uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
141  helpstring("IVMRWindowlessControl interface"),
143 ]
145 {
146  HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *ar_width, [out] LONG *ar_height);
149  HRESULT SetVideoPosition([in] const RECT *src_rect, [in] const RECT *dst_rect);
150  HRESULT GetVideoPosition([out] RECT *src_rect, [out] RECT *dst_rect);
161 };
162 
163 typedef enum _VMRMixerPrefs
164 {
170 
174 
182 
187 } VMRMixerPrefs;
188 
189 typedef struct _NORMALIZEDRECT
190 {
193 
194 [
195  local,
196  object,
197  uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
198  helpstring("IVMRMixerControl interface"),
200 ]
201 interface IVMRMixerControl : IUnknown
202 {
203  HRESULT SetAlpha([in] DWORD id, [in] FLOAT alpha);
204  HRESULT GetAlpha([in] DWORD id, [out] FLOAT *alpha);
205  HRESULT SetZOrder([in] DWORD id, [in] DWORD z);
206  HRESULT GetZOrder([in] DWORD id, [out] DWORD *z);
208  HRESULT SetBackgroundClr([in] COLORREF background);
209  HRESULT GetBackgroundClr([out] COLORREF *background);
210  HRESULT SetMixingPrefs([in] DWORD prefs);
211  HRESULT GetMixingPrefs([out] DWORD *prefs);
212 };
213 
214 typedef struct tagVMRGUID
215 {
216  struct _GUID *pGUID, GUID;
217 } VMRGUID;
218 
219 #define VMRDEVICENAMELEN 32
220 #define VMRDEVICEDESCRIPTIONLEN 256
221 
222 typedef struct tagVMRMONITORINFO
223 {
224  VMRGUID guid;
225  RECT rcMonitor;
226  HMONITOR hMon;
227  DWORD dwFlags;
236 
237 [
238  local,
239  object,
240  uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
241  helpstring("IVMRMonitorConfig interface"),
243 ]
244 interface IVMRMonitorConfig : IUnknown
245 {
246  HRESULT SetMonitor([in] const VMRGUID *vmrguid);
247  HRESULT GetMonitor([out] VMRGUID *vmrguid);
248  HRESULT SetDefaultMonitor([in] const VMRGUID *vmrguid);
249  HRESULT GetDefaultMonitor([out] VMRGUID *vmrguid);
251 }
252 
253 typedef enum _VMRRenderPrefs
254 {
261  RenderPrefs_Reserved = 0x10,
263  RenderPrefs_Mask = 0x3f
265 
266 typedef enum _VMRMode
267 {
272 } VMRMode;
273 
274 enum { MAX_NUMBER_OF_STREAMS = 16 };
275 
276 [
277  local,
278  object,
279  uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
280  helpstring("IVMRFilterConfig interface"),
282 ]
283 interface IVMRFilterConfig : IUnknown
284 {
286  HRESULT SetNumberOfStreams([in] DWORD streams);
287  HRESULT GetNumberOfStreams([out] DWORD *streams);
292 };
293 
294 [
295  local,
296  object,
297  uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd),
298  helpstring("IVMRAspectRatioControl interface"),
300 ]
302 {
303  HRESULT GetAspectRatioMode([out] DWORD *armode);
305 };
306 
308 {
314 
316 {
326 
327 typedef struct _VMRFrequency
328 {
330 } VMRFrequency;
331 
332 typedef struct _VMRVideoDesc
333 {
334  DWORD dwSize;
338  DWORD dwFourCC;
341 } VMRVideoDesc;
342 
343 typedef struct _VMRDeinterlaceCaps
344 {
345  DWORD dwSize;
351 
352 [
353  local,
354  object,
355  uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f),
356  helpstring("IVMRDeinterlaceControl interface"),
358 ]
360 {
361  HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc *desc, [in, out] DWORD *num_modes, [out] GUID *modes);
368 };
369 
370 typedef struct _VMRALPHABITMAP
371 {
372  DWORD dwFlags;
373  HDC hdc;
375  RECT rSrc;
377  FLOAT fAlpha;
380 
381 cpp_quote("#define VMRBITMAP_DISABLE (0x01)")
382 cpp_quote("#define VMRBITMAP_HDC (0x02)")
383 cpp_quote("#define VMRBITMAP_ENTIREDDS (0x04)")
384 cpp_quote("#define VMRBITMAP_SRCCOLORKEY (0x08)")
385 cpp_quote("#define VMRBITMAP_SRCRECT (0x10)")
386 
387 [
388  local,
389  object,
390  uuid(1e673275-0257-40aa-af20-7c608d4a0428),
391  helpstring("IVMRMixerBitmap interface"),
393 ]
394 interface IVMRMixerBitmap : IUnknown
395 {
399 };
400 
401 typedef struct _VMRVIDEOSTREAMINFO
402 {
404  DWORD dwWidth;
405  DWORD dwHeight;
407  FLOAT fAlpha;
411 
412 [
413  local,
414  object,
415  uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
416  helpstring("IVMRImageCompositor interface"),
418 ]
419 interface IVMRImageCompositor : IUnknown
420 {
421  HRESULT InitCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
422  HRESULT TermCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
424  HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget,
426  [in] DWORD backgrnd, [in] VMRVIDEOSTREAMINFO *info, [in] UINT streams);
427 };
428 
429 [
430  local,
431  object,
432  uuid(058d1f11-2a54-4bef-bd54-df706626b727),
433  helpstring("IVMRVideoStreamControl interface"),
435 ]
437 {
442 };
443 
444 [
445  local,
446  object,
447  uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
448  helpstring("IVMRImagePresenterConfig interface"),
450 ]
452 {
455 };
456 
457 [
458  local,
459  object,
460  uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
461  helpstring("IVMRImagePresenterExclModeConfig interface"),
463 ]
465 {
468 };
469 
470 [
471  local,
472  object,
473  uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
474  helpstring("IVPManager interface"),
476 ]
477 interface IVPManager : IUnknown
478 {
481 };
HRESULT GetAvailableMonitors([out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO *pInfo, [in] DWORD dwMaxInfoArraySize, [out] DWORD *pdwNumDevices)
VMRSurfaceAllocationFlags
Definition: vmrender.idl:49
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
HRESULT StartPresenting([in] DWORD_PTR dwUserID)
LPBITMAPINFOHEADER lpHdr
Definition: vmrender.idl:152
GLint GLint GLsizei width
Definition: gl.h:1546
_VMRSurfaceAllocationFlags
Definition: vmrender.idl:77
REFERENCE_TIME rtStart
Definition: vmrender.idl:140
COLORREF clrSrcKey
Definition: vmrender.idl:223
HRESULT SetBorderColor([in] COLORREF Clr)
_In_ NDIS_STATUS EventCode
Definition: ndis.h:4751
Definition: scsiwmi.h:51
DWORD dwSampleHeight
Definition: vmrender.idl:199
HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc)
HRESULT GetActualDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode)
VMRDeinterlaceTech
Definition: vmrender.idl:124
HRESULT SetMixingPrefs([in] DWORD dwMixerPrefs)
HRESULT SetImageCompositor([in] IVMRImageCompositor *lpVMRImgCompositor)
HRESULT SetVideoClippingWindow([in] HWND hwnd)
int notify
Definition: msacm.c:1365
typedef helpstring
static HDC
Definition: imagelist.c:92
DWORD dwSampleWidth
Definition: vmrender.idl:198
struct tagVMRMONITORINFO VMRMONITORINFO
HRESULT GetStreamActiveState([out] BOOL *lpfActive)
HRESULT GetDefaultMonitor([out] VMRGUID *pGUID)
wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN]
Definition: vmrender.idl:181
struct tagVMRGUID VMRGUID
REFERENCE_TIME rtEnd
Definition: vmrender.idl:141
HRESULT DisplayModeChanged()
VMRFrequency OutputFrameFreq
Definition: vmrender.idl:203
_VMR_ASPECT_RATIO_MODE
Definition: vmrender.idl:131
const GLuint * buffers
Definition: glext.h:5916
struct _VMRVIDEOSTREAMINFO VMRVIDEOSTREAMINFO
HRESULT SetBackgroundClr([in] COLORREF ClrBkg)
HRESULT GetAlpha([in] DWORD dwStreamID, [out] float *pAlpha)
HRESULT GetNumberOfStreams([out] DWORD *pdwMaxStreams)
#define VMRDEVICENAMELEN
Definition: vmrender.idl:219
HRESULT GetCurrentImage([out] BYTE **lpDib)
VMR_ASPECT_RATIO_MODE
Definition: vmrender.idl:59
HRESULT GetRenderingPrefs([out] DWORD *pdwRenderFlags)
& rect
Definition: startmenu.cpp:1413
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
HRESULT GetMixingPrefs([out] DWORD *pdwMixerPrefs)
static UINT array_size
Definition: msctf.c:67
HRESULT GetZOrder([in] DWORD dwStreamID, [out] DWORD *pZ)
_VMRPresentationFlags
Definition: vmrender.idl:43
HRESULT SetRenderingMode([in] DWORD Mode)
HRESULT SetNumberOfStreams([in] DWORD dwMaxStreams)
DWORD dwNumBackwardRefSamples
Definition: vmrender.idl:211
IDirectDrawSurface7 * pddsVideoSurface
Definition: vmrender.idl:403
HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags)
struct _GUID * pGUID
Definition: vmrender.idl:171
HRESULT SetDeinterlaceMode([in] DWORD dwStreamID, [in] LPGUID lpDeinterlaceMode)
GLenum const GLfloat * params
Definition: glext.h:5645
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
Definition: devices.h:37
struct tagVMRALLOCATIONINFO VMRALLOCATIONINFO
_VMRDeinterlaceTech
Definition: vmrender.idl:315
static const WCHAR desc[]
Definition: protectdata.c:36
HRESULT TermCompositionTarget([in] IUnknown *pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget)
struct _VMRALPHABITMAP VMRALPHABITMAP
HRESULT GetAspectRatioMode([out] DWORD *lpAspectRatioMode)
HRESULT GetRenderingPrefs([out] DWORD *dwRenderFlags)
struct _DDCOLORKEY DDCOLORKEY
HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *pBmpParms)
GLdouble GLdouble z
Definition: glext.h:5874
HRESULT ChangeDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor)
HRESULT GetVideoPortIndex([out] DWORD *pdwVideoPortIndex)
HRESULT GetDeinterlacePrefs([out] LPDWORD lpdwDeinterlacePrefs)
HRESULT SetDeinterlacePrefs([in] DWORD dwDeinterlacePrefs)
HRESULT StopPresenting([in] DWORD_PTR dwUserID)
LPDDPIXELFORMAT lpPixFmt
Definition: vmrender.idl:153
HRESULT SetVideoPortIndex([in] DWORD dwVideoPortIndex)
GLuint index
Definition: glext.h:6031
HRESULT GetAlphaBitmapParameters([out] PVMRALPHABITMAP pBmpParms)
struct _VMRDeinterlaceCaps VMRDeinterlaceCaps
VMRRenderPrefs
Definition: vmrender.idl:89
HRESULT GetColorKey([out] LPDDCOLORKEY lpClrKey)
DDCOLORKEY ddClrKey
Definition: vmrender.idl:233
DWORD IDirectDrawSurface7
Definition: vmrender.idl:20
HRESULT SetDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor)
GLfloat f
Definition: glext.h:7540
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
HRESULT GetAspectRatioMode([out] LPDWORD lpdwARMode)
HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc *lpVideoDescription, [in] [out] LPDWORD lpdwNumDeinterlaceModes, [out] LPGUID lpDeinterlaceModes)
#define d
Definition: ke_i.h:81
HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify)
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
__wchar_t WCHAR
Definition: xmlstorage.h:180
HRESULT SetAspectRatioMode([in] DWORD dwARMode)
HRESULT InitCompositionTarget([in] IUnknown *pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget)
GLenum GLuint texture
Definition: glext.h:6295
HRESULT PresentImage([in] DWORD_PTR dwUserID, [in] VMRPRESENTATIONINFO *lpPresInfo)
LONG HRESULT
Definition: typedefs.h:77
HRESULT GetMinIdealVideoSize([out] LONG *lpWidth, [out] LONG *lpHeight)
IDirectDrawSurface7 * lpSurf
Definition: vmrender.idl:55
DWORD COLORREF
Definition: windef.h:285
HRESULT SetBorderColor([in] COLORREF clrBorder)
HRESULT SetColorKey([in] LPDDCOLORKEY lpClrKey)
struct tagVMRPRESENTATIONINFO VMRPRESENTATIONINFO
GLint GLint GLsizei GLsizei GLsizei GLint border
Definition: gl.h:1546
IDirectDrawSurface7 * pDDS
Definition: vmrender.idl:374
HRESULT UpdateAlphaBitmapParameters([in] PVMRALPHABITMAP pBmpParms)
static FILE * out
Definition: regtests2xml.c:44
DWORD dwDenominator
Definition: vmrender.idl:192
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT GetXlcModeDDObjAndPrimarySurface([out] LPDIRECTDRAW7 *lpDDObj, [out] LPDIRECTDRAWSURFACE7 *lpPrimarySurf)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
DWORD dwNumPreviousOutputFrames
Definition: vmrender.idl:209
HRESULT GetMonitor([out] VMRGUID *pGUID)
NORMALIZEDRECT rNormal
Definition: vmrender.idl:234
HRESULT SetXlcModeDDObjAndPrimarySurface([in] LPDIRECTDRAW7 lpDDObj, [in] LPDIRECTDRAWSURFACE7 lpPrimarySurf)
HRESULT SetStreamActiveState([in] BOOL fActive)
HRESULT GetMaxIdealVideoSize([out] LONG *lpWidth, [out] LONG *lpHeight)
VMRDeinterlaceTech DeinterlaceTechnology
Definition: vmrender.idl:212
_VMRMixerPrefs
Definition: vmrender.idl:163
HDC hdc
Definition: main.c:9
wchar_t szDevice[VMRDEVICENAMELEN]
Definition: vmrender.idl:180
HRESULT GetBackgroundClr([in] COLORREF *lpClrBkg)
HRESULT FreeSurface([in] DWORD_PTR dwID)
HRESULT CompositeImage([in] IUnknown *pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget, [in] AM_MEDIA_TYPE *pmtRenderTarget, [in] REFERENCE_TIME rtStart, [in] REFERENCE_TIME rtEnd, [in] DWORD dwClrBkGnd, [in] VMRVIDEOSTREAMINFO *pVideoStreamInfo, [in] UINT cStreams)
HRESULT SetOutputRect([in] DWORD dwStreamID, [in] const NORMALIZEDRECT *pRect)
unsigned char BYTE
Definition: mem.h:68
struct _VMRFrequency VMRFrequency
uint32_t DWORD_PTR
Definition: typedefs.h:63
GLenum mode
Definition: glext.h:6217
_VMRDeinterlacePrefs
Definition: vmrender.idl:307
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags)
_VMRMode
Definition: vmrender.idl:266
#define local
Definition: zutil.h:30
VMRPresentationFlags
Definition: vmrender.idl:40
HRESULT SetColorKey([in] COLORREF Clr)
#define f1(x, y, z)
Definition: sha1.c:30
HRESULT SetZOrder([in] DWORD dwStreamID, [in] DWORD dwZ)
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
HRESULT GetBorderColor([out] COLORREF *lpClr)
GLuint start
Definition: gl.h:1545
BOOL SingleFieldPerSample
Definition: vmrender.idl:200
DWORD IDirectDraw7
Definition: vmrender.idl:21
HRESULT PrepareSurface([in] DWORD_PTR dwUserID, [in] LPDIRECTDRAWSURFACE7 lpSurface, [in] DWORD dwSurfaceFlags)
HRESULT GetColorKey([out] COLORREF *lpClr)
HRESULT SetVideoPosition([in] const LPRECT lpSRCRect, [in] const LPRECT lpDSTRect)
VMRMixerPrefs
Definition: vmrender.idl:66
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
VMRFrequency InputSampleFreq
Definition: vmrender.idl:202
unsigned int UINT
Definition: ndis.h:50
HRESULT AllocateSurface([in] DWORD_PTR dwUserID, [in] VMRALLOCATIONINFO *lpAllocInfo, [in] [out] DWORD *lpdwActualBuffers, [out] LPDIRECTDRAWSURFACE7 *lplpSurface)
struct _NORMALIZEDRECT NORMALIZEDRECT
struct _GUID GUID
Definition: vmrender.idl:171
HRESULT SetStreamMediaType([in] DWORD dwStrmID, [in] AM_MEDIA_TYPE *pmt, [in] BOOL fTexture)
HRESULT SetAlpha([in] DWORD dwStreamID, [in] float Alpha)
HRESULT GetVideoPosition([out] LPRECT lpSRCRect, [out] LPRECT lpDSTRect)
VMRMode
Definition: vmrender.idl:103
GLclampf GLclampf GLclampf alpha
Definition: gl.h:1740
float FLOAT
Definition: typedefs.h:67
HRESULT GetDeinterlaceModeCaps([in] LPGUID lpDeinterlaceMode, [in] VMRVideoDesc *lpVideoDescription, [in] [out] VMRDeinterlaceCaps *lpDeinterlaceCaps)
HRESULT GetRenderingMode([out] DWORD *pMode)
static CRYPT_DATA_BLOB b4
Definition: msg.c:2284
VMRDeinterlacePrefs
Definition: vmrender.idl:116
HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR Param1, [in] LONG_PTR Param2)
DWORD dwNumForwardRefSamples
Definition: vmrender.idl:210
HRESULT SetMonitor([in] const VMRGUID *pGUID)
HRESULT SetDefaultMonitor([in] const VMRGUID *pGUID)
struct _VMRALPHABITMAP * PVMRALPHABITMAP
LARGE_INTEGER liDriverVersion
Definition: vmrender.idl:182
HRESULT GetDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode)
DWORD dwNumerator
Definition: vmrender.idl:191
void * object
Definition: jmemsys.h:48
#define VMRDEVICEDESCRIPTIONLEN
Definition: vmrender.idl:220
HRESULT SetAspectRatioMode([in] DWORD AspectRatioMode)
struct _VMRVideoDesc VMRVideoDesc
DWORD dwFourCC
Definition: vmrender.idl:201
Definition: path.c:42
HRESULT AdviseSurfaceAllocator([in] DWORD_PTR dwUserID, [in] IVMRSurfaceAllocator *lpIVRMSurfaceAllocator)
HRESULT GetNativeVideoSize([out] LONG *lpWidth, [out] LONG *lpHeight, [out] LONG *lpARWidth, [out] LONG *lpARHeight)