Changeset 6578 for trunk/src


Ignore:
Timestamp:
Aug 23, 2001, 8:34:51 PM (24 years ago)
Author:
sandervl
Message:

wine updates

Location:
trunk/src/quartz
Files:
10 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/quartz/fgraph.c

    r6563 r6578  
    1414#include "winerror.h"
    1515#include "wine/obj_base.h"
     16#include "wine/obj_oleaut.h"
    1617#include "strmif.h"
     18#include "control.h"
    1719#include "uuids.h"
    1820
     
    2931  { &IID_IGraphBuilder, offsetof(CFilterGraph,fgraph)-offsetof(CFilterGraph,unk) },
    3032  { &IID_IFilterGraph2, offsetof(CFilterGraph,fgraph)-offsetof(CFilterGraph,unk) },
     33  { &IID_IMediaControl, offsetof(CFilterGraph,mediacontrol)-offsetof(CFilterGraph,unk) },
     34  { &IID_IMediaEvent, offsetof(CFilterGraph,mediaevent)-offsetof(CFilterGraph,unk) },
     35  { &IID_IMediaEventEx, offsetof(CFilterGraph,mediaevent)-offsetof(CFilterGraph,unk) },
     36  { &IID_IMediaPosition, offsetof(CFilterGraph,mediaposition)-offsetof(CFilterGraph,unk) },
     37  { &IID_IMediaSeeking, offsetof(CFilterGraph,mediaseeking)-offsetof(CFilterGraph,unk) },
     38  { &IID_IBasicVideo, offsetof(CFilterGraph,basvid)-offsetof(CFilterGraph,unk) },
     39  { &IID_IBasicAudio, offsetof(CFilterGraph,basaud)-offsetof(CFilterGraph,unk) },
     40  { &IID_IVideoWindow, offsetof(CFilterGraph,vidwin)-offsetof(CFilterGraph,unk) },
    3141};
    3242
     
    4151                return E_OUTOFMEMORY;
    4252
    43         QUARTZ_IUnkInit( &pfg->unk );
     53        QUARTZ_IUnkInit( &pfg->unk, punkOuter );
    4454        CFilterGraph_InitIFilterGraph2( pfg );
     55        CFilterGraph_InitIMediaControl( pfg );
     56        CFilterGraph_InitIMediaEventEx( pfg );
     57        CFilterGraph_InitIMediaPosition( pfg );
     58        CFilterGraph_InitIMediaSeeking( pfg );
     59        CFilterGraph_InitIBasicVideo2( pfg );
     60        CFilterGraph_InitIBasicAudio( pfg );
     61        CFilterGraph_InitIVideoWindow( pfg );
    4562
    4663        pfg->unk.pEntries = IFEntries;
    4764        pfg->unk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
    4865
    49         *ppobj = (void*)pfg;
     66        *ppobj = (void*)(&pfg->unk);
    5067
    5168        return S_OK;
  • trunk/src/quartz/fgraph.h

    r6563 r6578  
    1111                + IDispatch - IMediaControl
    1212                + IDispatch - IMediaEvent - IMediaEventEx
     13                + IDispatch - IMediaPosition
    1314                + IMediaSeeking
    1415                + IDispatch - IBasicVideo (pass to a renderer)
     
    2425} FG_IFilterGraph2Impl;
    2526
     27typedef struct FG_IMediaControlImpl
     28{
     29        ICOM_VFIELD(IMediaControl);
     30} FG_IMediaControlImpl;
     31
     32typedef struct FG_IMediaEventImpl
     33{
     34        ICOM_VFIELD(IMediaEventEx);
     35} FG_IMediaEventImpl;
     36
     37typedef struct FG_IMediaPositionImpl
     38{
     39        ICOM_VFIELD(IMediaPosition);
     40} FG_IMediaPositionImpl;
     41
     42typedef struct FG_IMediaSeekingImpl
     43{
     44        ICOM_VFIELD(IMediaSeeking);
     45} FG_IMediaSeekingImpl;
     46
     47typedef struct FG_IBasicVideoImpl
     48{
     49        ICOM_VFIELD(IBasicVideo2);
     50} FG_IBasicVideoImpl;
     51
     52typedef struct FG_IBasicAudioImpl
     53{
     54        ICOM_VFIELD(IBasicAudio);
     55} FG_IBasicAudioImpl;
     56
     57typedef struct FG_IVideoWindowImpl
     58{
     59        ICOM_VFIELD(IVideoWindow);
     60} FG_IVideoWindowImpl;
     61
     62
    2663typedef struct CFilterGraph
    2764{
    2865        QUARTZ_IUnkImpl unk;
    2966        FG_IFilterGraph2Impl    fgraph;
     67        FG_IMediaControlImpl    mediacontrol;
     68        FG_IMediaEventImpl      mediaevent;
     69        FG_IMediaPositionImpl   mediaposition;
     70        FG_IMediaSeekingImpl    mediaseeking;
     71        FG_IBasicVideoImpl      basvid;
     72        FG_IBasicAudioImpl      basaud;
     73        FG_IVideoWindowImpl     vidwin;
    3074
    3175        /* IFilterGraph2 fields. */
     76        /* IMediaControl fields. */
     77        /* IMediaEvent fields. */
     78        /* IMediaPosition fields. */
     79        /* IMediaSeeking fields. */
     80        /* IBasicVideo fields. */
     81        /* IBasicAudio fields. */
     82        /* IVideoWindow fields. */
    3283} CFilterGraph;
    3384
     
    3788
    3889void CFilterGraph_InitIFilterGraph2( CFilterGraph* pfg );
     90void CFilterGraph_InitIMediaControl( CFilterGraph* pfg );
     91void CFilterGraph_InitIMediaEventEx( CFilterGraph* pfg );
     92void CFilterGraph_InitIMediaPosition( CFilterGraph* pfg );
     93void CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg );
     94void CFilterGraph_InitIBasicVideo2( CFilterGraph* pfg );
     95void CFilterGraph_InitIBasicAudio( CFilterGraph* pfg );
     96void CFilterGraph_InitIVideoWindow( CFilterGraph* pfg );
    3997
    4098
  • trunk/src/quartz/guid.c

    r6563 r6578  
    99#include "winerror.h"
    1010#include "wine/obj_base.h"
     11#include "wine/obj_oleaut.h"
    1112#include "strmif.h"
    1213#include "uuids.h"
    13 
     14#include "control.h"
  • trunk/src/quartz/ifgraph.c

    r6563 r6578  
    1515#include "winerror.h"
    1616#include "wine/obj_base.h"
     17#include "wine/obj_oleaut.h"
    1718#include "strmif.h"
     19#include "control.h"
    1820#include "uuids.h"
    1921
     
    3133        TRACE("(%p)->()\n",This);
    3234
    33         return IUnknown_QueryInterface((IUnknown*)(&This->unk),riid,ppobj);
     35        return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
    3436}
    3537
     
    4143        TRACE("(%p)->()\n",This);
    4244
    43         return IUnknown_AddRef((IUnknown*)(&This->unk));
     45        return IUnknown_AddRef(This->unk.punkControl);
    4446}
    4547
     
    5153        TRACE("(%p)->()\n",This);
    5254
    53         return IUnknown_Release((IUnknown*)(&This->unk));
     55        return IUnknown_Release(This->unk.punkControl);
    5456}
    5557
  • trunk/src/quartz/imem.c

    r6563 r6578  
    3131        TRACE("(%p)->()\n",This);
    3232
    33         return IUnknown_QueryInterface((IUnknown*)(&This->unk),riid,ppobj);
     33        return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
    3434}
    3535
     
    4141        TRACE("(%p)->()\n",This);
    4242
    43         return IUnknown_AddRef((IUnknown*)(&This->unk));
     43        return IUnknown_AddRef(This->unk.punkControl);
    4444}
    4545
     
    5151        TRACE("(%p)->()\n",This);
    5252
    53         return IUnknown_Release((IUnknown*)(&This->unk));
     53        return IUnknown_Release(This->unk.punkControl);
    5454}
    5555
  • trunk/src/quartz/irclock.c

    r6563 r6578  
    3131        TRACE("(%p)->()\n",This);
    3232
    33         return IUnknown_QueryInterface((IUnknown*)(&This->unk),riid,ppobj);
     33        return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
    3434}
    3535
     
    4141        TRACE("(%p)->()\n",This);
    4242
    43         return IUnknown_AddRef((IUnknown*)(&This->unk));
     43        return IUnknown_AddRef(This->unk.punkControl);
    4444}
    4545
     
    5151        TRACE("(%p)->()\n",This);
    5252
    53         return IUnknown_Release((IUnknown*)(&This->unk));
     53        return IUnknown_Release(This->unk.punkControl);
    5454}
    5555
  • trunk/src/quartz/iunk.c

    r6563 r6578  
    3232
    3333        ofs = 0;
    34         for ( dwIndex = 0; dwIndex < This->dwEntries; dwIndex++ )
     34
     35        if ( IsEqualGUID( &IID_IUnknown, riid ) )
    3536        {
    36                 if ( IsEqualGUID( This->pEntries[dwIndex].piid, riid ) )
     37                TRACE("IID_IUnknown - returns inner object.\n");
     38        }
     39        else
     40        {
     41                for ( dwIndex = 0; dwIndex < This->dwEntries; dwIndex++ )
    3742                {
    38                         ofs = This->pEntries[dwIndex].ofsVTPtr;
    39                         break;
     43                        if ( IsEqualGUID( This->pEntries[dwIndex].piid, riid ) )
     44                        {
     45                                ofs = This->pEntries[dwIndex].ofsVTPtr;
     46                                break;
     47                        }
    4048                }
    41         }
    42 
    43         if ( dwIndex == This->dwEntries )
    44         {
    45                 if ( !IsEqualGUID( &IID_IUnknown, riid ) )
     49                if ( dwIndex == This->dwEntries )
    4650                {
    47                         TRACE("unknown interface: %s\n",debugstr_guid(riid));
     51                        FIXME("unknown interface: %s\n",debugstr_guid(riid));
    4852                        return E_NOINTERFACE;
    4953                }
     
    5155
    5256        *ppobj = (LPVOID)(((char*)This) + ofs);
    53         IUnknown_AddRef(iface);
     57        IUnknown_AddRef((IUnknown*)(*ppobj));
    5458
    5559        return S_OK;
     
    9094
    9195
    92 void QUARTZ_IUnkInit( QUARTZ_IUnkImpl* pImpl )
     96void QUARTZ_IUnkInit( QUARTZ_IUnkImpl* pImpl, IUnknown* punkOuter )
    9397{
    9498        TRACE("(%p)\n",pImpl);
     
    98102        pImpl->dwEntries = 0;
    99103        pImpl->ref = 1;
     104        pImpl->punkControl = (IUnknown*)pImpl;
     105
     106        /* for delegation. */
     107        if ( punkOuter != NULL )
     108                pImpl->punkControl = punkOuter;
    100109}
     110
  • trunk/src/quartz/iunk.h

    r6563 r6578  
    4242        /* IUnknown fields. */
    4343        ULONG   ref;
     44        IUnknown*       punkControl;
    4445} QUARTZ_IUnkImpl;
    4546
    4647
    47 void QUARTZ_IUnkInit( QUARTZ_IUnkImpl* pImpl );
     48void QUARTZ_IUnkInit( QUARTZ_IUnkImpl* pImpl, IUnknown* punkOuter );
    4849
    4950
  • trunk/src/quartz/main.c

    r6563 r6578  
    66#include "wingdi.h"
    77#include "ole2.h"
     8#include "wine/obj_oleaut.h"
    89#include "strmif.h"
     10#include "control.h"
    911#include "uuids.h"
    1012
     
    146148        if ( ppobj == NULL )
    147149                return E_POINTER;
     150        if ( pOuter != NULL && !IsEqualGUID( riid, &IID_IUnknown ) )
     151                return CLASS_E_NOAGGREGATION;
    148152
    149153        *ppobj = NULL;
  • trunk/src/quartz/makefile

    r6563 r6578  
    1 # $Id: makefile,v 1.1 2001-08-19 14:02:12 sandervl Exp $
     1# $Id: makefile,v 1.2 2001-08-23 18:34:22 sandervl Exp $
    22
    33#
     
    2828#
    2929OBJS = \
     30$(OBJDIR)\amerror.obj \
     31$(OBJDIR)\complist.obj \
    3032$(OBJDIR)\fgraph.obj \
    3133$(OBJDIR)\ifgraph.obj \
    3234$(OBJDIR)\imem.obj \
     35$(OBJDIR)\ibasaud.obj \
     36$(OBJDIR)\ibasvid.obj \
     37$(OBJDIR)\imcntl.obj \
     38$(OBJDIR)\imevent.obj \
     39$(OBJDIR)\impos.obj \
     40$(OBJDIR)\imseek.obj \
     41$(OBJDIR)\ividwin.obj \
    3342$(OBJDIR)\initterm.obj \
    3443$(OBJDIR)\initquartz.obj \
  • trunk/src/quartz/memalloc.c

    r6563 r6578  
    4040                return E_OUTOFMEMORY;
    4141
    42         QUARTZ_IUnkInit( &pma->unk );
     42        QUARTZ_IUnkInit( &pma->unk, punkOuter );
    4343        CMemoryAllocator_InitIMemAllocator( pma );
    4444
     
    4646        pma->unk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
    4747
    48         *ppobj = (void*)pma;
     48        *ppobj = (void*)(&pma->unk);
    4949
    5050        return S_OK;
  • trunk/src/quartz/quartz.def

    r6563 r6578  
    1 ; $Id: quartz.def,v 1.1 2001-08-19 14:02:13 sandervl Exp $
     1; $Id: quartz.def,v 1.2 2001-08-23 18:34:23 sandervl Exp $
    22
    33;
     
    1111  DllRegisterServer    = _QUARTZ_DllRegisterServer@0          @3
    1212  DllUnregisterServer  = _QUARTZ_DllUnregisterServer@0        @4
     13  AMGetErrorTextA      = _AMGetErrorTextA@12                  @5
     14  AMGetErrorTextW      = _AMGetErrorTextW@12                  @6
     15
  • trunk/src/quartz/sysclock.c

    r6563 r6578  
    4040                return E_OUTOFMEMORY;
    4141
    42         QUARTZ_IUnkInit( &psc->unk );
     42        QUARTZ_IUnkInit( &psc->unk, punkOuter );
    4343        CSystemClock_InitIReferenceClock( psc );
    4444
     
    4646        psc->unk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
    4747
    48         *ppobj = (void*)psc;
     48        *ppobj = (void*)(&psc->unk);
    4949
    5050        return S_OK;
Note: See TracChangeset for help on using the changeset viewer.