diff options
Diffstat (limited to 'dxsdk/Include/DShowIDL/control.odl')
-rw-r--r-- | dxsdk/Include/DShowIDL/control.odl | 912 |
1 files changed, 0 insertions, 912 deletions
diff --git a/dxsdk/Include/DShowIDL/control.odl b/dxsdk/Include/DShowIDL/control.odl deleted file mode 100644 index 4fba88cf..00000000 --- a/dxsdk/Include/DShowIDL/control.odl +++ /dev/null @@ -1,912 +0,0 @@ -//==========================================================================; -// -// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR -// PURPOSE. -// -// Copyright (c) 1992 - 2002 Microsoft Corporation. All Rights Reserved. -// -//--------------------------------------------------------------------------; - -// Neutral/English language type library for basic Quartz control interfaces - -// the quartz type library defines the basic control interfaces -[ - uuid(56a868b0-0ad4-11ce-b03a-0020af0ba770), - helpstring("ActiveMovie control type library"), - lcid(0x0000), - version(1.0) -] -library QuartzTypeLib -{ - importlib("STDOLE2.TLB"); - - // types are restricted to be automation-compatible - typedef double REFTIME; // ReferenceTime - typedef LONG_PTR OAEVENT; // should be a HANDLE - typedef LONG_PTR OAHWND; // should be an hwnd - - // from strmif.idl - typedef long OAFilterState; - - // collection interface - represents a collection of IUnknowns - // this is used below to collect filter-info objects, registry-filters - // pin-info objects and wrapped media type objects - [ - uuid(56a868b9-0ad4-11ce-b03a-0020af0ba770), - helpstring("Collection"), - odl, - oleautomation, - dual - ] - interface IAMCollection : IDispatch - { - // number of items in collection - [propget] - HRESULT Count( - [out, retval] LONG* plCount); - - // return IUnknown for contained item by index - HRESULT Item( - [in] long lItem, - [out] IUnknown** ppUnk); - - // return IUnknown for an object that implements IEnumVARIANT on - // this collection - [propget] - HRESULT _NewEnum( - [out, retval] IUnknown** ppUnk); - } - - - // core control providing state control - [ - uuid(56a868b1-0ad4-11ce-b03a-0020af0ba770), - helpstring("IMediaControl interface"), - odl, - oleautomation, - dual - ] - interface IMediaControl : IDispatch - { - // methods - HRESULT Run(); - HRESULT Pause(); - HRESULT Stop(); - - //returns the state. same semantics as IMediaFilter::GetState - - HRESULT GetState( - [in] LONG msTimeout, - [out] OAFilterState* pfs); - - // adds and connects filters needed to play the specified file - // (same as IFilterGraph::RenderFile) - HRESULT RenderFile( - [in] BSTR strFilename); - - // adds to the graph the source filter that can read this file, - // and returns an IFilterInfo object for it (actually returns - // an IDispatch for the IFilterInfo object). - HRESULT AddSourceFilter( - [in] BSTR strFilename, - [out] IDispatch**ppUnk); - - // get a collection of IFilterInfo objects representing the - // filters in the graph (returns IDispatch for an object - // that supports IAMCollection - [propget] - HRESULT FilterCollection( - [out, retval] IDispatch** ppUnk); - - // get a collection of IRegFilter objects representing the - // filters available in the registry - [propget] - HRESULT RegFilterCollection( - [out, retval] IDispatch** ppUnk); - - HRESULT StopWhenReady(); - } - - - // provides an event notification scheme passing events - // asynchronously to applications. See also IMediaEventSink in - // strmif.idl and sdk\h\evcodes.h. - // - // this interface behaves as if events are held on a queue. A call to - // IMediaEventSink::Notify will place an event on this queue. Calling - // GetEvent removes the first item off the queue and returns it. Items are - // returned in the order they were queued (there is no priority scheme). - // The event handle is in a signalled state iff the queue is non-empty. - // - // Apps that issue multiple Run calls without always picking up the - // completion events are advised to call GetEvent or WaitForCompletion - // (with a 0 timeout) repeatedly to remove all events from the queue - // when in stopped or paused state before each Run method. - // - // Parameters to events are actually LONG, IUnknown* or BSTR. You need to - // look at evcode.h for details of parameters to a specific event code. - // In order to correctly free resources, always call FreeEventParams - // after receiving an event. - // - - [ - uuid(56a868b6-0ad4-11ce-b03a-0020af0ba770), - helpstring("IMediaEvent interface"), - odl, - oleautomation, - dual - ] - interface IMediaEvent : IDispatch - { - // get back the event handle. This is manual-reset - // (don't - it's reset by the event mechanism) and remains set - // when events are queued, and reset when the queue is empty. - HRESULT GetEventHandle( - [out] OAEVENT * hEvent); - - // remove the next event notification from the head of the queue and - // return it. Waits up to msTimeout millisecs if there are no events. - // if a timeout occurs without any events, this method will return - // E_ABORT, and the value of the event code and other parameters - // is undefined. - // - // If this call returns successfully the caller MUST call - // FreeEventParams(lEventCode, lParam1, lParam2) to release - // resources held inside the event arguments - // - HRESULT GetEvent( - [out] long * lEventCode, - [out] LONG_PTR * lParam1, - [out] LONG_PTR * lParam2, - [in] long msTimeout - ); - - // Calls GetEvent repeatedly discarding events until it finds a - // completion event (EC_COMPLETE, EC_ERRORABORT, or EC_USERABORT). - // The completion event is removed from the queue and returned - // in pEvCode. Note that the object is still in running mode until - // a Pause or Stop call is made. - // If the timeout occurs, *pEvCode will be 0 and E_ABORT will be - // returned. - HRESULT WaitForCompletion( - [in] long msTimeout, - [out] long * pEvCode); - - // cancels any system handling of the specified event code - // and ensures that the events are passed straight to the application - // (via GetEvent) and not handled. A good example of this is - // EC_REPAINT: default handling for this ensures the painting of the - // window and does not get posted to the app. - HRESULT CancelDefaultHandling( - [in] long lEvCode); - - // restore the normal system default handling that may have been - // cancelled by CancelDefaultHandling(). - HRESULT RestoreDefaultHandling( [in] long lEvCode); - - // Free any resources associated with the parameters to an event. - // Event parameters may be LONGs, IUnknown* or BSTR. No action - // is taken with LONGs. IUnknown are passed addrefed and need a - // Release call. BSTR are allocated by the task allocator and will be - // freed by calling the task allocator. - HRESULT FreeEventParams( - [in] long lEvCode, - [in] LONG_PTR lParam1, - [in] LONG_PTR lParam2 - ); - } - - [ - uuid(56a868c0-0ad4-11ce-b03a-0020af0ba770), - helpstring("IMediaEventEx interface"), - odl - ] - interface IMediaEventEx : IMediaEvent - { - - // Register a window to send messages to when events occur - // Parameters: - // - // hwnd - handle of window to notify - - // pass NULL to stop notification - // lMsg - Message id to pass messages with - // lInstanceData - will come back in lParam - // - // The event information must still be retrived by a call - // to GetEvent when the window message is received. - // - // Multiple events may be notified with one window message. - // - HRESULT SetNotifyWindow( - [in] OAHWND hwnd, - [in] long lMsg, - [in] LONG_PTR lInstanceData - ); - - // Turn events notification on or off - // lNoNotify = 0x00 event notification is ON - // lNoNotify = 0x01 event notification is OFF. The - // handle returned by GetEventHandle will be signalled at - // end of stream - HRESULT SetNotifyFlags( - [in] long lNoNotifyFlags - ); - HRESULT GetNotifyFlags( - [out] long *lplNoNotifyFlags - ); - } - - - - - // seek/cueing for positional media - [ - uuid(56a868b2-0ad4-11ce-b03a-0020af0ba770), - helpstring("IMediaPosition interface"), - odl, - oleautomation, - dual - ] - interface IMediaPosition : IDispatch - { - // properties - - [propget] - HRESULT Duration( - [out, retval] REFTIME* plength); - - [propput] - HRESULT CurrentPosition( - [in] REFTIME llTime); - - [propget] - HRESULT CurrentPosition( - [out, retval] REFTIME* pllTime); - - [propget] - HRESULT StopTime( - [out, retval] REFTIME* pllTime); - [propput] - HRESULT StopTime( - [in] REFTIME llTime); - - [propget] - HRESULT PrerollTime( - [out, retval] REFTIME* pllTime); - [propput] - HRESULT PrerollTime( - [in] REFTIME llTime); - - [propput] - HRESULT Rate( - [in] double dRate); - [propget] - HRESULT Rate( - [out, retval] double * pdRate); - - HRESULT CanSeekForward([out, retval] LONG *pCanSeekForward); - HRESULT CanSeekBackward([out, retval] LONG *pCanSeekBackward); - } - - // basic audio-related functionality - [ - uuid(56a868b3-0ad4-11ce-b03a-0020af0ba770), - helpstring("IBasicAudio interface"), - odl, - oleautomation, - dual - ] - interface IBasicAudio : IDispatch - { - // properties - - [propput] - HRESULT Volume( - [in] long lVolume); - [propget] - HRESULT Volume( - [out, retval] long * plVolume); - - [propput] - HRESULT Balance( - [in] long lBalance); - [propget] - HRESULT Balance( - [out, retval] long * plBalance); - } - - // basic window-related functionality - [ - uuid(56a868b4-0ad4-11ce-b03a-0020af0ba770), - helpstring("IVideoWindow interface"), - odl, - oleautomation, - dual - ] - interface IVideoWindow : IDispatch - { - // properties - - // set and get the window title caption - - [propput] - HRESULT Caption([in] BSTR strCaption); - [propget] - HRESULT Caption([out, retval] BSTR *strCaption); - - // change the window styles (as per Win32) - - [propput] - HRESULT WindowStyle([in] long WindowStyle); - [propget] - HRESULT WindowStyle([out, retval] long *WindowStyle); - - // change the extended window styles (as per Win32) - - [propput] - HRESULT WindowStyleEx([in] long WindowStyleEx); - [propget] - HRESULT WindowStyleEx([out, retval] long *WindowStyleEx); - - [propput] - HRESULT AutoShow([in] long AutoShow); - [propget] - HRESULT AutoShow([out, retval] long *AutoShow); - - // change the window state (as per Win32) - - [propput] - HRESULT WindowState([in] long WindowState); - [propget] - HRESULT WindowState([out, retval] long *WindowState); - - // realise the palette in the background - - [propput] - HRESULT BackgroundPalette([in] long BackgroundPalette); - [propget] - HRESULT BackgroundPalette([out, retval] long *pBackgroundPalette); - - // affect the visibility of the window - - [propput] - HRESULT Visible([in] long Visible); - [propget] - HRESULT Visible([out, retval] long *pVisible); - - // change the desktop position of the video window - - [propput] - HRESULT Left([in] long Left); - [propget] - HRESULT Left([out, retval] long *pLeft); - - [propput] - HRESULT Width([in] long Width); - [propget] - HRESULT Width([out, retval] long *pWidth); - - [propput] - HRESULT Top([in] long Top); - [propget] - HRESULT Top([out, retval] long *pTop); - - [propput] - HRESULT Height([in] long Height); - [propget] - HRESULT Height([out, retval] long *pHeight); - - // change the owning window of the video - - [propput] - HRESULT Owner([in] OAHWND Owner); - [propget] - HRESULT Owner([out, retval] OAHWND *Owner); - - // change the window to receive posted messages - - [propput] - HRESULT MessageDrain([in] OAHWND Drain); - [propget] - HRESULT MessageDrain([out, retval] OAHWND *Drain); - - [propget] - HRESULT BorderColor([out, retval] long *Color); - - [propput] - HRESULT BorderColor([in] long Color); - - [propget] - HRESULT FullScreenMode([out, retval] long *FullScreenMode); - - [propput] - HRESULT FullScreenMode([in] long FullScreenMode); - - // methods - - // ask the renderer to grab it's window the foreground - // and optionally also give the window the input focus - HRESULT SetWindowForeground([in] long Focus); - - // owners should pass WM_PALETTECHANGED and WM_SYSCOLORCHANGE - // messages on the filter graph so they can be distributed - // otherwise child renderers never see these messages go by - - HRESULT NotifyOwnerMessage([in] OAHWND hwnd, - [in] long uMsg, - [in] LONG_PTR wParam, - [in] LONG_PTR lParam - ); - - // get and set the window position on the desktop - - HRESULT SetWindowPosition([in] long Left, - [in] long Top, - [in] long Width, - [in] long Height); - - HRESULT GetWindowPosition([out] long *pLeft, - [out] long *pTop, - [out] long *pWidth, - [out] long *pHeight); - - // get the ideal sizes for the video image playback (client) area - - HRESULT GetMinIdealImageSize([out] long *pWidth,[out] long *pHeight); - HRESULT GetMaxIdealImageSize([out] long *pWidth,[out] long *pHeight); - - // get the restored window size when we're maximised or iconic - - HRESULT GetRestorePosition([out] long *pLeft, - [out] long *pTop, - [out] long *pWidth, - [out] long *pHeight); - - // show and hide cursors useful when fullscreen - HRESULT HideCursor([in] long HideCursor); - HRESULT IsCursorHidden([out] long *CursorHidden); - } - - // basic video-related functionality - [ - uuid(56a868b5-0ad4-11ce-b03a-0020af0ba770), - helpstring("IBasicVideo interface"), - odl, - oleautomation, - dual - ] - interface IBasicVideo : IDispatch - { - // properties - - // Video specific (approximate) bit and frame rates - - [propget] - HRESULT AvgTimePerFrame([out, retval] REFTIME *pAvgTimePerFrame); - - [propget] - HRESULT BitRate([out, retval] long *pBitRate); - - [propget] - HRESULT BitErrorRate([out, retval] long *pBitErrorRate); - - // read the native video size - - [propget] - HRESULT VideoWidth([out, retval] long *pVideoWidth); - - [propget] - HRESULT VideoHeight([out, retval] long *pVideoHeight); - - // change the source rectangle for the video - - [propput] - HRESULT SourceLeft([in] long SourceLeft); - [propget] - HRESULT SourceLeft([out, retval] long *pSourceLeft); - - [propput] - HRESULT SourceWidth([in] long SourceWidth); - [propget] - HRESULT SourceWidth([out, retval] long *pSourceWidth); - - [propput] - HRESULT SourceTop([in] long SourceTop); - [propget] - HRESULT SourceTop([out, retval] long *pSourceTop); - - [propput] - HRESULT SourceHeight([in] long SourceHeight); - [propget] - HRESULT SourceHeight([out, retval] long *pSourceHeight); - - // change the destination rectangle for the video - - [propput] - HRESULT DestinationLeft([in] long DestinationLeft); - [propget] - HRESULT DestinationLeft([out, retval] long *pDestinationLeft); - - [propput] - HRESULT DestinationWidth([in] long DestinationWidth); - [propget] - HRESULT DestinationWidth([out, retval] long *pDestinationWidth); - - [propput] - HRESULT DestinationTop([in] long DestinationTop); - [propget] - HRESULT DestinationTop([out, retval] long *pDestinationTop); - - [propput] - HRESULT DestinationHeight([in] long DestinationHeight); - [propget] - HRESULT DestinationHeight([out, retval] long *pDestinationHeight); - - // methods - - // get and set the source rectangle position - - HRESULT SetSourcePosition([in] long Left, - [in] long Top, - [in] long Width, - [in] long Height); - - HRESULT GetSourcePosition([out] long *pLeft, - [out] long *pTop, - [out] long *pWidth, - [out] long *pHeight); - - HRESULT SetDefaultSourcePosition(); - - // get and set the destination rectangle position - - HRESULT SetDestinationPosition([in] long Left, - [in] long Top, - [in] long Width, - [in] long Height); - - HRESULT GetDestinationPosition([out] long *pLeft, - [out] long *pTop, - [out] long *pWidth, - [out] long *pHeight); - - HRESULT SetDefaultDestinationPosition(); - - // get the native video dimensions - - HRESULT GetVideoSize([out] long *pWidth,[out] long *pHeight); - - // get all or some of the current video palette - - HRESULT GetVideoPaletteEntries([in] long StartIndex, - [in] long Entries, - [out] long *pRetrieved, - [out] long *pPalette); - - HRESULT GetCurrentImage([in,out] long *pBufferSize, - [out] long *pDIBImage); - - // are we using a default source or destination - - HRESULT IsUsingDefaultSource(); - HRESULT IsUsingDefaultDestination(); - } - - // interface extension to IBasicVideo to return preferred aspect ratio - [ - uuid(329bb360-f6ea-11d1-9038-00a0c9697298), - helpstring("IBasicVideo2"), - odl - ] - interface IBasicVideo2 : IBasicVideo - { - // This may not match the native video dimensions because of - // non-square pixels or whatever. - // The video may not always be displayed in the preferred - // aspect ratio for performance reasons - - HRESULT GetPreferredAspectRatio([out] long *plAspectX, - [out] long *plAspectY); - } - - // interface returned to a command that has been queued via IQueueCommand - [ - uuid(56a868b8-0ad4-11ce-b03a-0020af0ba770), - helpstring("IDeferredCommand"), - odl - ] - interface IDeferredCommand : IUnknown - { - HRESULT Cancel(); - HRESULT Confidence( - [out] LONG* pConfidence); - HRESULT Postpone( - [in] REFTIME newtime); - // return value is S_OK if completed. phrResult is set to the - // result of the deferred command. - HRESULT GetHResult( - [out] HRESULT* phrResult); - }; - - // queue an IDispatch-based command for execution at a specified time - [ - uuid(56a868b7-0ad4-11ce-b03a-0020af0ba770), - helpstring("IQueueCommand"), - odl - ] - interface IQueueCommand : IUnknown - { - HRESULT InvokeAtStreamTime( - [out] IDeferredCommand** pCmd, - [in] REFTIME time, // at this streamtime - [in] GUID* iid, // call this interface - [in] long dispidMethod, // ..and this method - [in] short wFlags, // method/property - [in] long cArgs, // count of args - [in] VARIANT* pDispParams, // actual args - [in, out] VARIANT* pvarResult, // return value - [out] short* puArgErr // which arg in error - ); - - HRESULT InvokeAtPresentationTime( - [out] IDeferredCommand** pCmd, - [in] REFTIME time, // at this presentation time - [in] GUID* iid, // call this interface - [in] long dispidMethod, // ..and this method - [in] short wFlags, // method/property - [in] long cArgs, // count of args - [in] VARIANT* pDispParams, // actual args - [in, out] VARIANT* pvarResult, // return value - [out] short* puArgErr // which arg in error - ); - - }; - - - - // the filgraph object (CLSID_Filgraph) - [ - uuid(e436ebb3-524f-11ce-9f53-0020af0ba770), - helpstring("Filtergraph type info") - ] - coclass FilgraphManager - { - [default] interface IMediaControl; - interface IMediaEvent; - interface IMediaPosition; - interface IBasicAudio; - interface IBasicVideo; - interface IVideoWindow; - - }; - - - // represents a filter (you can't QI for IBaseFilter from this object) - [ - uuid(56a868ba-0ad4-11ce-b03a-0020af0ba770), - helpstring("FilterInfo"), - odl, - oleautomation, - dual - ] - interface IFilterInfo : IDispatch - { - // find a pin given an id - returns an object supporting - // IPinInfo - HRESULT FindPin( - [in] BSTR strPinID, - [out] IDispatch** ppUnk); - - // filter name - [propget] - HRESULT Name( - [out, retval] BSTR* strName); - - // Vendor info string - [propget] - HRESULT VendorInfo( - [out, retval] BSTR* strVendorInfo); - - // returns the actual filter object (supports IBaseFilter) - [propget] - HRESULT Filter( - [out, retval] IUnknown **ppUnk); - - // returns an IAMCollection object containing the PinInfo objects - // for this filter - [propget] - HRESULT Pins( - [out, retval] IDispatch ** ppUnk); - - // returns -1 if true or 0 if false (OATRUE/FALSE) - [propget] - HRESULT IsFileSource( - [out, retval] LONG * pbIsSource); - - [propget] - HRESULT Filename( - [out, retval] BSTR* pstrFilename); - - [propput] - HRESULT Filename( - [in] BSTR strFilename); - } - - [ - uuid(56a868bb-0ad4-11ce-b03a-0020af0ba770), - helpstring("Registry Filter Info"), - odl, - oleautomation, - dual - ] - interface IRegFilterInfo : IDispatch - { - // get the name of this filter - [propget] - HRESULT Name( - [out, retval] BSTR* strName); - - - // make an instance of this filter, add it to the graph and - // return an IFilterInfo for it. - HRESULT Filter( - [out] IDispatch** ppUnk); - } - - // wrapper for a media type - [ - uuid(56a868bc-0ad4-11ce-b03a-0020af0ba770), - helpstring("Media Type"), - odl, - oleautomation, - dual - ] - interface IMediaTypeInfo : IDispatch - { - // get the major type GUID as a string - [propget] - HRESULT Type( - [out, retval] BSTR* strType); - - // get the subtype GUID as a string - [propget] - HRESULT Subtype( - [out, retval] BSTR* strType); - } - - [ - uuid(56a868bd-0ad4-11ce-b03a-0020af0ba770), - helpstring("Pin Info"), - odl, - oleautomation, - dual - ] - interface IPinInfo : IDispatch - { - // get the pin object (IUnknown for an object that - // supports IPin - [propget] - HRESULT Pin( - [out, retval] IUnknown** ppUnk); - - // get the PinInfo object for the pin we are connected to - [propget] - HRESULT ConnectedTo( - [out, retval] IDispatch** ppUnk); - - // get the media type on this connection - returns an - // object supporting IMediaTypeInfo - [propget] - HRESULT ConnectionMediaType( - [out, retval] IDispatch** ppUnk); - - - // return the FilterInfo object for the filter this pin - // is part of - [propget] - HRESULT FilterInfo( - [out, retval] IDispatch** ppUnk); - - // get the name of this pin - [propget] - HRESULT Name( - [out, retval] BSTR* ppUnk); - - // pin direction - [propget] - HRESULT Direction( - [out, retval] LONG *ppDirection); - - // PinID - can pass to IFilterInfo::FindPin - [propget] - HRESULT PinID( - [out, retval] BSTR* strPinID); - - // collection of preferred media types (IAMCollection) - [propget] - HRESULT MediaTypes( - [out, retval] IDispatch** ppUnk); - - // Connect to the following pin, using other transform - // filters as necessary. pPin can support either IPin or IPinInfo - HRESULT Connect( - [in] IUnknown* pPin); - - // Connect directly to the following pin, not using any intermediate - // filters - HRESULT ConnectDirect( - [in] IUnknown* pPin); - - // Connect directly to the following pin, using the specified - // media type only. pPin is an object that must support either - // IPin or IPinInfo, and pMediaType must support IMediaTypeInfo. - HRESULT ConnectWithType( - [in] IUnknown * pPin, - [in] IDispatch * pMediaType); - - // disconnect this pin and the corresponding connected pin from - // each other. (Calls IPin::Disconnect on both pins). - HRESULT Disconnect(void); - - // render this pin using any necessary transform and rendering filters - HRESULT Render(void); - } - - //-------------------------------------------------------------------- - // - // IAMStats - statistics - // - // Note that the calls using an index are likely to be much faster - //-------------------------------------------------------------------- - - [ - uuid(bc9bcf80-dcd2-11d2-abf6-00a0c905f375), - helpstring("Statistics"), - odl, - oleautomation, - dual - ] - interface IAMStats : IDispatch { - // Reset all stats - HRESULT Reset(); - - // Get number of stats collected - [propget] - HRESULT Count( - [out, retval] LONG* plCount); - - // Pull out a specific value by position - HRESULT GetValueByIndex([in] long lIndex, - [out] BSTR *szName, - [out] long *lCount, - [out] double *dLast, - [out] double *dAverage, - [out] double *dStdDev, - [out] double *dMin, - [out] double *dMax); - - // Pull out a specific value by name - HRESULT GetValueByName([in] BSTR szName, - [out] long *lIndex, - [out] long *lCount, - [out] double *dLast, - [out] double *dAverage, - [out] double *dStdDev, - [out] double *dMin, - [out] double *dMax); - - - // The calls below are for generators of statistics - - // Return the index for a string - optinally create - HRESULT GetIndex([in] BSTR szName, - [in] long lCreate, - [out] long *plIndex); - - // Add a new value - HRESULT AddValue([in] long lIndex, - [in] double dValue); - } -}; |