summaryrefslogtreecommitdiffstats
path: root/dxsdk/Include/DShowIDL/control.odl
diff options
context:
space:
mode:
Diffstat (limited to 'dxsdk/Include/DShowIDL/control.odl')
-rw-r--r--dxsdk/Include/DShowIDL/control.odl912
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);
- }
-};