`
`Page 110 of 658
`
`IAM Fi leC utlistE le ment:: GetTri ml n Position
`
`IAMFileCutlistElement Interface
`
`Retrieves the media time of the trimin point, based on the timeline of the cut's source file.
`
`HRESULT GetTriminPosition(
`REFERENCE_TIME *pmtTrimin
`);
`
`Parameters
`
`pmtTrimin
`[out] Pointer that will receive the trimin point.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. HRESULT
`can include one of the following standard constants, or other values not listed.
`Value
`Meaning
`E FAIL
`Failure.
`E_INVALIDARG Argument is invalid.
`E NOTIMPL
`Method is not supported.
`E_ POINTER
`Null pointer argument.
`S_OK
`Success.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS
`
`Topic Contents
`
`lml!§lllMM
`
`MQl§i[.jjj,M '!!·HM
`
`Topic Contents
`
`i@i§ill@iM
`
`IAM Fi leCutlistElement: :GetTri m Length
`
`IAMFileCutlistElement Interface
`
`Retrieves the length of time between the trimin and trimout points.
`
`HRESULT GetTrimlength(
`REFERENCE_TIME *pmtlength
`);
`
`Parameters
`
`501
`
`
`
`DirectShow COM Interfaces
`
`Page 111 of 658
`
`pmtlength
`[out] Pointer that will receive the length in media time.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. HRESULT
`can include one of the following standard constants, or other values not listed.
`Value
`Meaning
`E FAIL
`Failure.
`E_INVALIDARG Argument is invalid.
`E NOTIMPL
`Method is not supported.
`E_ POINTER
`Null pointer argument.
`S_OK
`Success.
`
`Remarks
`
`This method retrieves the length of time between the in and out points specified by
`GetTriminPosition and GetTrimOutPosition.
`
`The value that GetTrimlength retrieves equals the value that GetElementDuration retrieves
`(trimout minus trimin). Other lengths are not supported.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lmli§lll¥M
`
`MQl§i[.jjj,M '!!·HM Topic Contents l@i§il/¥8
`
`IAM Fi leC utlistE le ment:: GetTri mOutPosition
`
`IAMFileCutlistElement Interface
`
`Retrieves the media time of the trimout point, based on the timeline of the cut's source file.
`
`HRESULT GetTrimOutPosition(
`REFERENCE_TIME *pmtTrimOut
`);
`
`Parameters
`
`pmtTrimOut
`[out] Pointer that will receive the trimout point, in REFERENCE TIME.
`
`Return Values
`
`502
`
`
`
`DirectShow COM Interfaces
`
`Page 112 of 658
`
`Returns an HRESULT value that depends on the implementation of the interface. HRESULT
`can include one of the following standard constants, or other values not listed.
`Value
`Meaning
`E_FAIL
`Failure.
`E_INVALIDARG Argument is invalid.
`E_NOTIMPL
`Method is not supported.
`E_POINTER
`Null pointer argument.
`S_OK
`Success.
`
`Remarks
`
`The media time does not include the trimout point.
`
`© 1997 Microsoft Corooration . All rights reserved. Terms of Use.
`
`MQ<§i[.jjj,M MB.HS
`
`Topic Contents
`
`i@fa111¥M
`
`8 4'41[.]1!,M 1!1·H¥
`
`Topic Contents
`
`i@fa111¥M
`
`IAMLine21Decoder Interface
`
`The IAMLine21Decoder interface provides access to closed-captioned information and
`settings. Closed-captioned information is transmitted in the vertical blanking interval (VBI) of
`television signals, specifically on line 21 (Line21) of field 1 in the VBI. Video cassette recorders
`record this information on video tape, and you can use Microsoft® DirectShow™ filters to
`capture the Line21 data and save it on disk in a media file format such as audio-video
`interleaved (AVI). The closed-captioned information appears as a separate stream within the
`media file.
`
`Closed-captioned text is currently used mainly in digital versatile disc (DVD) movies. DVD
`movies contain Line21 data as part of the user data section of each Group of Pictures (GOP) in
`the video stream. Capture cards with Windows Driver Model (WDM) drivers will provide Line21
`data.
`
`When to Implement
`
`Do not implement this interface. DirectShow provides the Line 21 Decoder in the DirectX Media
`5.1 SDK, which implements it for you.
`
`When to Use
`
`Applications use this interface when they want to provide closed-captioned text, primarily to
`turn closed-captioned capabilities on and off. Use this interface in your application or in the
`filter immediately downstream of the Line21 Decoder filter (typically a mixer filter) to change
`closed-captioned options, such as the output video's size and whether to make the caption
`background opaque or transparent. Mixer filters can also change the physical color used for the
`
`503
`
`
`
`DirectShow COM Interfaces
`
`Page 113 of 658
`
`background color key.
`
`Applications can call the GetDrawBackqroundMode and SetDrawBackqroundMode methods so
`the user can select transparent or opaque captioning.
`
`Methods in Vtable Order
`!Unknown methods Description
`Querylnterface
`Retrieves pointers to supported interfaces.
`AddRef
`Increments the reference count.
`Decrements the reference count.
`Release
`Description
`IAMLine21Decoder
`methods
`GetDecoderLevel
`GetCurrentService
`
`SetCu rrentService
`GetServiceState
`SetSe rv ice State
`GetOutputFormat
`
`SetOutp utFormat
`
`GetBackgroundColor
`SetBackg rou ndColor
`GetRedrawAlways
`
`SetRed raw Always
`
`GetDrawBackgroundMode
`
`SetDrawBackg round Mode
`
`Retrieves the closed-captioned decoder level.
`Retrieves the current closed captioning service selected by the
`user.
`Sets the current closed captioning service.
`Retrieves the closed captioning service state (on or off).
`Sets the closed captioning service state.
`Retrieves information about output video characteristics such as
`size and bit depth.
`Sets information that describes output video characteristics
`such as size and bit depth.
`Retrieves the physical color to use as background for overlays.
`Sets the physical color to use as background for overlays.
`Retrieves whether the renderer should redraw the whole output
`bitmap for each sample.
`Sets whether the renderer should redraw the whole output
`bitmap for each sample.
`Retrieves whether the caption text background should be
`opaque or transparent.
`Sets whether to make the caption text background opaque or
`transparent.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQi@[.jlj,M l!i.! 11ij Topic Contents
`
`l@i§i 11111+
`
`•;<¥!.ll!:' iu.H; Topic Contents
`
`l@i§lllMM
`
`IAM Line 21 Decoder:: Get Ba ckg rou n dColor
`
`IAMLine21Decoder Interface
`
`Retrieves the physical color to use as background for overlays.
`
`504
`
`
`
`DirectShow COM Interfaces
`
`Page 114 of 658
`
`HRESULT GetBackgroundColor(
`DWORD *pdwPhysColor
`);
`
`Parameters
`
`pdwPhysColor
`Pointer to the retrieved DWORD value.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`Magenta is the default background color.
`
`See Also
`
`IAMLine21Decoder:: SetBackgroundColor
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lmli§lllMM
`
`IAMLine21Decoder::GetCurrentService
`
`IAMLine21Decoder Interface
`
`Retrieves the current closed captioning service selected by the user.
`
`HRESULT GetCurrentService(
`AM_LINE21_CCSERVICE *lpService
`);
`
`Parameters
`
`lpService
`Pointer to the current service. This value is a member of the AM LINE21 CCSERVICE
`enumerated data type. The default service is AM L21 CCSERVICE Caption!.
`
`Return Values
`
`505
`
`
`
`DirectShow COM Interfaces
`
`Page 115 of 658
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`See Also
`
`IAM Li ne21 Decoder: : SetC u rrentService
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§lllMM
`
`IAM Li ne21 Decoder: :GetDecoderlevel
`
`IAMLine21Decoder Interface
`
`Retrieves the closed-captioned decoder level.
`
`HRESULT GetDecoderlevel(
`AM_LINE21_CCLEVEL *lpLevel
`);
`
`Parameters
`
`lpLevel
`Pointer to the retrieved decoder level. AM L21 CCLEVEL TC2 (TC2) is the only supported
`operating channel level and is an enhanced and backward-compatible version of the
`original TC1 level.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`This method is for informational purposes only.
`
`TC1 and TC2 are television set decoder levels that represent whether the television can handle
`some closed-captioned byte pairs and produce the desired captioning results. The Line21
`Decoder is capable of TC2 level decoding, which includes all TC1 decoding. Only the first
`100,000 television sets manufactured that included closed-captioned capability were TC1
`compliant; the later TV sets are TC2 compliant.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`506
`
`
`
`DirectShow COM Interfaces
`
`Page 116 of 658
`
`+Qi§1[.]++ 1 !!·HM Topic Contents
`
`i@l§ii!MM
`
`IAM Line 21 Decoder:: GetD rawBackg round Mode
`
`IAMLine21Decoder Interface
`
`Retrieves whether the caption text background should be opaque or transparent.
`
`HRESULT GetDrawBackgroundMode(
`AM_LINE21_DRAWBGMODE *lpMode
`);
`
`Parameters
`
`lpMode
`Retrieved mode. Supported mode values are AM L21 DRAWBGMODE Opaque and
`AM L21 DRAWBGMODE Transparent.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`By default, the caption background is opaque.
`
`See Also
`
`IAMLine21Decoder:: SetDrawBackgroundMode
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`+ ;<§1 [.] jj,+ +II.HM Topic Contents Mttfjl§i +gn+
`
`IAM Li ne21 Decoder: :GetOutputFormat
`
`IAMLine21Decoder Interface
`
`Retrieves information about output video characteristics such as size and bit depth.
`
`507
`
`
`
`DirectShow COM Interfaces
`
`Page 117 of 658
`
`HRESULT GetOutputFormat(
`LPBITMAPINFOHEADER lpbmih
`);
`
`Parameters
`
`lpbmih
`Pointer to the retrieved BITMAPINFOHEADER structure.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface.
`
`If successful, the default implementation returns S_FALSE if downstream filters haven't
`defined an output format, or S_OK if an output format has been defined.
`
`Remarks
`
`The default video output size is 320 x 240 pixels.
`
`See Also
`
`IAM Li ne21 Decoder: : SetOutoutFormat
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qi§1[.]1!,+ '!!·HM Topic Contents
`
`i@l§ii!MM
`
`IAM Li ne21 Decoder: :GetRedraw Always
`
`IAMLine21Decoder Interface
`
`Retrieves whether the renderer should redraw the whole output bitmap for each sample.
`
`HRESULT GetRedrawAlways(
`LPBOOL lpbOption
`);
`
`Parameters
`
`lpbOption
`Pointer to a value indicating whether the whole bitmap should be redrawn; FALSE by
`default, indicating don't always redraw. TRUE means always redraw.
`
`Return Values
`
`508
`
`
`
`DirectShow COM Interfaces
`
`Page 118 of 658
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`See Also
`
`IAMLine21Decoder:: SetRedrawAlways
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§lllMM
`
`IAM Li ne21 Decoder: :GetServiceState
`
`IAMLine21Decoder Interface
`
`Retrieves the closed captioning service state (on or off).
`
`HRESULT GetServiceState(
`AM_LINE21_CCSTATE *lpState
`);
`
`Parameters
`
`lpState
`Pointer to the retrieved state. Supported state values are AM L21 CCSTATE On and
`AM L21 CCSTATE Off. Closed-captioned text is off by default.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`See Also
`
`IAMLine21Decoder:: SetServiceState
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`•Q<M!.l+' •11·!:.!¥ Topic Contents
`
`lml!§lllMM
`
`509
`
`
`
`DirectShow COM Interfaces
`
`Page 119 of 658
`
`IAM Line 21 Decoder:: SetBackg rou ndColor
`
`IAMLine21Decoder Interface
`
`Sets the physical color to use as background for overlays.
`
`HRESULT SetBackgroundColor(
`DWORD dwPhysColor
`);
`
`Parameters
`
`dwPhysColor
`DWORD value that specifies the physical background color.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`Magenta is the default background color.
`
`See Also
`
`IAM Li ne21 Decoder: : GetBackq rou ndColor
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]1!,+ 1 !1·HM Topic Contents
`
`ifflj[§ii!¥M
`
`IAM Line 21 Decoder:: SetC u rre ntServi ce
`
`IAMLine21Decoder Interface
`
`Sets the current closed captioning service.
`
`HRESULT SetCurrentService(
`AM_LINE21_CCSERVICE Service
`);
`
`Parameters
`
`510
`
`
`
`DirectShow COM Interfaces
`
`Page 120 of 658
`
`Service
`Specified service. This value is a member of the AM LINE21 CCSERVICE enumerated
`data type. The default service is AM L21 CCSERVICE Caption!.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`See Also
`
`IAM Li ne21 Decoder: : GetCu rrentService
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jlj,M l!i.l:.ij Topic Contents
`
`l@i§i llfttiM
`
`IAM Line 21 Decoder:: SetDrawBackg round Mode
`
`IAMLine21Decoder Interface
`
`Sets whether to make the caption text background opaque or transparent.
`
`HRESULT SetDrawBackgroundMode(
`AM_LINE21_DRAWBGMODE Mode
`);
`
`Parameters
`
`Mode
`
`Mode to set. Supported mode values are AM L21 DRAWBGMODE Opaque and
`AM L21 DRAWBGMODE Transparent.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`By default, the caption background is opaque.
`
`See Also
`
`511
`
`
`
`DirectShow COM Interfaces
`
`Page 121 of 658
`
`IAMLine21Decoder: :GetDrawBackqroundMode
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]i!,+ 1 !1·HM Topic Contents
`
`ifflj[§ii!MM
`
`IAM Li ne21 Decoder: :SetOutputFormat
`
`IAMLine21Decoder Interface
`
`Sets information that describes output video characteristics such as size and bit depth.
`
`HRESULT SetOutputFormat(
`LPBITMAPINFO lpbmi
`);
`
`Parameters
`
`lpbmi
`Pointer to the specified BITMAPINFO structure containing the desired output format.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface.
`
`Remarks
`
`The default video output size is 320 x 240 pixels.
`
`See Also
`
`IAM Li ne21 Decoder: : GetOutp utFormat
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`+Q'41!.l+1 1 !1·HM Topic Contents
`
`i@i§ii!MM
`
`IAM Li ne21 Decoder: :SetRedraw Always
`
`IAMLine21Decoder Interface
`
`512
`
`
`
`DirectShow COM Interfaces
`
`Page 122 of 658
`
`Sets whether the renderer should redraw the whole output bitmap for each sample.
`
`HRESULT SetRedrawAlways(
`BOOL bOption
`);
`
`Parameters
`
`bOption
`Value indicating whether the whole bitmap should be redrawn. TRUE indicates redraw
`always, FALSE means do not redraw always.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`Remarks
`
`Call this method from your filter if it dirties the buffer that it provides to the Line21 Decoder
`filter. Typically, a mixer filter resides in the filter graph directly downstream from the Line21
`Decoder filter. The mixer filter should call this method and set bOption to TRUE to ensure the
`entire bitmap is redrawn properly.
`
`A downstream mixer (or any filter that needs to do so) should only call this method with
`bOption set to TRUE if it provides the same buffer to the Line21 decoder as it uses to mix
`secondary video streams(s).
`
`Redrawing (setting bOption to TRUE) degrades performance and increases CPU load, because it
`negates any potentia I optimizations.
`
`See Also
`
`IAM Li ne21 Decoder: : GetRed raw Always
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`MQ<§i[.jjj,M 111.],.(9 Topic Contents
`
`lmli§lllMM
`
`IAM Li ne21 Decoder: :SetServiceState
`
`IAMLine21Decoder Interface
`
`Sets the closed captioning service state.
`
`513
`
`
`
`DirectShow COM Interfaces
`
`Page 123 of 658
`
`HRESULT SetServiceState(
`AM_LINE21_CCSTATE State
`);
`
`Parameters
`
`State
`
`Specified state. Supported state values are AM L21 CCSTATE On and
`AM L21 CCSTATE Off. Closed-captioned text is off by default.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. The current
`DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to
`indicate success.
`
`See Also
`
`IAM Li ne21 Decoder: : GetServiceState
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qi§1[.]1!,+ '!!·HM Topic Contents
`
`i@l§ii!MM
`
`IAMovie Interface
`
`The IAMovie interface is a plug-in distributor (PID) interface that you could use as a
`replacement for all other interfaces on the filter graph manager. It wraps the most commonly
`used methods of IGraohBuilder, IMediaControl, IMediaEvent, and IMediaPosition by providing
`the same methods as these interfaces and simply calling these interfaces on the filter graph
`manager for the implementation. It also adds several unique methods that simplify
`instantiating and running a filter graph.
`
`When to Implement
`
`This interface is implemented by the IAMovie sample plug-in distributor included in this SDK. It
`is not expected that anything else will implement this interface.
`
`When to Use
`
`Applications use plug-in distributors. If this interface is implemented through the IAMovie
`sample application, you can use the methods on this interface rather than the methods on the
`IGraphBuilder, IMediaControl, IMediaEvent, and IMediaPosition interfaces. You can also use
`specialized methods on this interface to render a filter graph and play it in one command, to
`enumerate filters in the filter graph that contain a specified interface, to enumerate all pins in
`the filter graph, and to perform other tasks.
`
`514
`
`
`
`DirectShow COM Interfaces
`
`Page 124 of 658
`
`Render
`Run
`Pause
`Stoo
`GetState
`RenderFile
`AddSourceFilter
`
`get StoQTime
`
`QUt StoQTime
`
`Methods in Vtable Order
`!Unknown methods Description
`Ouerylnterface
`Returns pointers to supported interfaces.
`AddRef
`Increments the reference count.
`Release
`Decrements the reference count.
`IFilterGraph methods Description
`Add Filter
`Adds a filter to the graph and gives it a name.
`RemoveFilter
`Removes a filter from the graph.
`Breaks the existing pin connection and reconnects it to the same pin.
`Reconnect
`Provides an enumerator for all filters in the graph.
`EnumFilters
`Finds a filter that was added with a specified name.
`FindFilterByName
`ConnectDirect
`Connects the two !Pin objects directly (without intervening filters).
`Reconnect
`Breaks the existing pin connection and reconnects it to the same pin.
`Disconnect
`Disconnects the pin, if connected.
`SetDefaultSyncSource Sets the default synchronization source (a clock).
`IAMovie methods
`Description
`Connect
`Connects two !Pin objects. If they will not connect directly, this
`method connects them with intervening transforms.
`Adds a chain of filters to this output pin so as to render it.
`Switches the entire filter graph into running mode.
`Pauses all filters in the filter graph.
`Switches all filters in the filter graph to a stopped state.
`Retrieves the state of the filter graph.
`Adds and connects filters needed to play the specified file.
`Adds to the graph the source filter that can read the given file name,
`and returns an interface pointer to the filter object.
`GetEventHandle
`Retrieves a handle to a manual-reset event that will be signaled.
`Retrieves the next notification event.
`Get Event
`Waits until the graph's operation has completed.
`WaitForComoletion
`Cancels any default handling of the specified event by the filter graph.
`Ca ncelDefa ultHa ndling
`RestoreDefaultHandling Restores default handling for this event.
`get Duration
`Retrieves the total duration of the media stream.
`QUt CurrentPosition
`Sets the time that the media stream begins.
`Retrieves the current position in terms of the total length of the media
`get CurrentPosition
`stream.
`Retrieves the position within the media stream at which playback
`should stop.
`Sets the position within the media stream at which playback should
`stop.
`Retrieves the time prior to the start position that the filter graph
`begins any nonrandom access device rolling.
`Sets the time prior to the start position that the filter graph begins
`any nonrandom access device rolling.
`Sets the playback rate, relative to norma I playback of the media
`stream.
`
`get PrerollTime
`
`QUt PrerollTime
`
`QUt Rate
`
`515
`
`
`
`DirectShow COM Interfaces
`
`Page 125 of 658
`
`get Rate
`
`Retrieves the playback rate, relative to norma I playback of the media
`stream.
`Removes all filters from the filter graph.
`RemoveAllFilters
`Plays the media in the current filter graph.
`flay_
`Play File
`Plays the media in a given file.
`EnumFiltersByinterface Retrieves a list of filters supporting a specified interface.
`EnumPins
`Retrieves a list of pins in the filter graph.
`EnumPinsin
`Retrieves a list of input pins in the filter graph.
`Retrieves a list of output pins in the filter graph.
`EnumPinsOut
`Renders all output pins in the filter graph.
`RenderAll
`Renders a filter graph for a file name, possibly reusing existing filters.
`RenderNewFi le
`Free Event Para ms
`Frees the resources associated with an event's parameters.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jjj,M l!i.! 11ij Topic Contents
`MQl§i[.jjj,M 111.l:.!j Topic Contents •@m• •gnw
`
`l@i§lllMM
`
`IAMovie: :AddSourceFilter
`
`IAMovie Interface
`
`Adds a source filter to the filter graph for this file. The IGraphBuilder:: RenderFile method adds
`the same source filter.
`
`HRESULT AddSourceFilter(
`LPCWSTR lpwstrFileName,
`IBaseFilter* * ppFilter
`);
`
`Parameters
`
`lpwstrFileName
`[in] Pointer to the file.
`ppFilter
`[out] Pointer to an IBaseFilter interface on the filter that was added.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IGraphBuilder: :AddSourceFilter method. The lpwstrFileName file
`name is used as the filter name when IGraphBuilder::AddSourceFilter is called.
`
`516
`
`
`
`DirectShow COM Interfaces
`
`Page 126 of 658
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`IAMovie::CancelDefaultHandling
`
`IAMovie Interface
`
`Cancels any default handling by the filter graph of the specified event and ensures that it is
`passed to the application.
`
`HRESULT CancelDefaultHandling(
`long IEvCode
`);
`
`Parameters
`
`/EvCode
`Event code for which to cancel default handling.
`
`Return Values
`
`Returns S_OK if successful, or S_FALSE if the event does not have any default handling.
`
`Remarks
`
`This method simply calls the IMediaEvent: :CancelDefaultHandling method.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQ<§i[.jjj,M Ill.HS
`
`Topic Contents
`
`lffll!§M 1gnw
`
`IAMovie: :Connect
`
`IAMovie Interface
`
`Connects the two pins, using intermediates if necessary.
`
`HRESULT Connect(
`IPin * ppinOut,
`IPin * ppinin
`);
`
`517
`
`
`
`DirectShow COM Interfaces
`
`Page 127 of 658
`
`Parameters
`
`ppinOut
`[in] Output pin.
`ppinln
`[in] Input pin.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IGraphBuilder: :Connect method.
`
`© 1997 Microsoft Corooration . All rights reserved. Terms of Use.
`
`MQ<§i[.jjj,M MB.HS Topic Contents
`
`i@faii!MM
`
`IAMovie::EnumFiltersBylnterface
`
`IAMovie Interface
`
`Retrieves a list of filters supporting a specified interface.
`
`HRESULT EnumFiltersBylnterface(
`REFllD riid,
`I En um Filters * * ppEnum
`);
`
`Parameters
`
`riid
`
`[in] REFIID of the interface qualifying the search.
`ppEnum
`[out] Retrieved IEnumFilters enumerator containing the matching filters.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method retrieves an IEnumFilters enumerator containing a list of pointers to filters in the
`filter graph that support a specified interface. Note that the pointers in the list (as returned by
`IEnumFilters:: Next) actually point to the specified riid interface on each filter rather than to
`the IBaseFilter interface. For implementation details of this method, see the IAMovie sample
`
`518
`
`
`
`DirectShow COM Interfaces
`
`Page 128 of 658
`
`plug-in distributor included in this SDK.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQ<§i[.jjj,M Ill.HS
`
`Topic Contents
`
`lmll§lllMM
`
`IAMovie::EnumPins
`
`IAMovie Interface
`
`Retrieves a list of pins in the filter graph.
`
`HRESULT EnumPins(
`IEnumPins ** ppEnum
`);
`
`Parameters
`
`ppEnum
`[out] Enumerator containing the list of pins.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`For implementation details of this method, see the IAMovie sample plug-in distributor included
`in this SDK.
`
`© 1997 Microsoft Corooration . All rights reserved. Terms of Use.
`
`MQ<§i[.jjj,M Ill.HS
`
`Topic Contents
`
`l@fail!MM
`
`IAMovie::EnumPinsln
`
`IAMovie Interface
`
`Retrieves a list of input pins in the filter graph.
`
`HRESULT EnumPinsin(
`IEnumPins ** ppEnum
`);
`
`519
`
`
`
`DirectShow COM Interfaces
`
`Page 129 of 658
`
`Parameters
`
`ppEnum
`[out] Enumerator containing the list of input pins.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`For implementation details of this method, see the IAMovie sample plug-in distributor included
`in this SDK.
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use.
`
`w Q<M [.] +• 111.H5
`
`Topic Contents •=@• 1gnw
`
`IAMovie::EnumPinsOut
`
`IAMovie Interface
`
`Retrieves a list of output pins in the filter graph.
`
`HRESULT EnumPinsOut(
`IEnumPins ** ppEnum
`);
`
`Parameters
`
`ppEnum
`[out] Enumerator containing the list of output pins.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`For implementation details of this method, see the IAMovie sample plug-in distributor included
`in this SDK.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.]11,M 11!.HM Topic Contents
`
`lml!§lllMM
`
`520
`
`
`
`DirectShow COM Interfaces
`
`Page 130 of 658
`
`IAMovie::FreeEventParams
`
`IAMovie Interface
`
`Frees the resources associated with an event's parameters.
`
`HRESULT FreeEventParams(
`long /EvCode,
`long /Param1,
`long /Param2
`);
`
`Parameters
`
`/EvCode
`Event code.
`/Param1
`Event's first para meter.
`/Param2
`Event's second para meter.
`
`Return Values
`
`Returns an HRESULT.
`
`Remarks
`
`The /Param1 and /Param2 parameters must be LONG values, BSTR values, or IUnknown
`interface pointers. If an argument is a LONG value, FreeEventParams does nothing to it. If it
`is an !Unknown interface pointer, its reference count has been incremented. Call its Release
`method to decrement its reference count after calling FreeEventParams. If the argument is a
`BSTR value, free it by calling the task allocator after FreeEventParams.
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`MQ<§i[.jjj,M 111.],.(9 Topic Contents
`
`lmli§lllMM
`
`MQi§i!!.llj,i 111.J,,[9 Topic Contents 1@1§111$8
`
`IAMovie: :get_ Cu rrentPosition
`
`IAMovie Interface
`
`521
`
`
`
`DirectShow COM Interfaces
`
`Page 131of658
`
`Retrieves the current position in terms of the total length of the media stream.
`
`HRESULT get_CurrentPosition(
`REFTIME* pl/Time
`);
`
`Parameters
`
`pl/Time
`[out] Reference time of the current position.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaPosition: :get CurrentPosition method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jlj,M l!i.! 11ij
`
`Topic Contents
`
`l@i§lllMM
`
`IAMovie: :get_Duration
`
`IAMovie Interface
`
`Retrieves the total duration of the media stream.
`
`HRESULT get_Duration(
`REFTIME* plength
`);
`
`Parameters
`
`plength
`[out] Returned length of the media stream.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaPosition: :get Duration method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`522
`
`
`
`DirectShow COM Interfaces
`
`Page 132 of 658
`
`+Qi§1[.]++ 1 !!·HM Topic Contents
`
`i@l§ii!MM
`
`IAMovie: :GetEvent
`
`IAMovie Interface
`
`Retrieves the next notification event.
`
`HRESULT GetEvent(
`long * /EventCode,
`long * /Param1,
`long * /Param2,
`long msTimeout
`);
`
`Parameters
`
`/EventCode
`[out] Next event notification.
`/Param1
`[out] First parameter of the event.
`/Param2
`[out] Second parameter of the event.
`ms Timeout
`[in] Time, in milliseconds, to wait before assuming that there are no events.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaEvent: :GetEvent method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`HQ i§i [.] jj,M I !1.],.[9 Topic Contents i@l§ii/¥+
`
`MQl@[.jjj,M M!l.l:.19 Topic Contents
`
`i@l§i i!fttiM
`
`IAMovie: :GetEventHandle
`
`523
`
`
`
`DirectShow COM Interfaces
`
`Page 133 of 658
`
`IAMovie Interface
`
`Retrieves a handle to a manual-reset event that will be signaled as long as there are event
`notifications to deliver.
`
`HRESULT GetEventHandle(
`OAEVE NT * hEvent
`);
`
`Parameters
`
`hEvent
`[out] Handle for the event.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaEvent: :GetEventHandle method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQi@[.jlj,M l!i.! 111j Topic Contents
`
`l@IJll!MM
`
`IAMovie: :get_PrerollTime
`
`IAMovie Interface
`
`Retrieves the time prior to the start position that devices should start rolling.
`
`HRESULT get_PrerollTime(
`REFTIME* pTime
`);
`
`Parameters
`
`pTime
`[out] Returned preroll time.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaPosition: :get PrerollTime method.
`
`524
`
`
`
`DirectShow COM Interfaces
`
`Page 134 of 658
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`IAMovie: :get_Rate
`
`IAMovie Interface
`
`Retrieves the rate of playback relative to normal playback speed.
`
`HRESULT get_Rate(
`double * pdRate
`);
`
`Parameters
`
`pdRate
`[out] Returned rate.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaPosition: :get Rate method.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`•Q<M!.l+' 111.],.[5
`
`Topic Contents
`
`lml!§I 11$8
`
`IAMovie: :GetState
`
`IAMovie Interface
`
`Determines the state of the filter.
`
`HRESULT GetState(
`DWORD dwMilliSecsTimeout,
`FILTER_STATE *State
`);
`
`525
`
`
`
`DirectShow COM Interfaces
`
`Page 135 of 658
`
`Parameters
`
`dwMilliSecsTimeout
`[in] Duration of the time-out, in milliseconds. To block indefinitely, pass INFINITE.
`
`State
`
`[out] Holder of the returned state of the filter. States include stopped, paused, running,
`or intermediate (in the process of changing).
`
`Return Values
`
`Returns an HRESULT value, which will be VFW S STATE INTERMEDIATE if the state transition
`is not complete, or S_OK if it has been successfully completed.
`
`Remarks
`
`This method simply calls the IMediaControl: :GetState method. Note that the state is returned
`in a FILTER STATE structure rather than as an OAFilterState type.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`w Q<M [.] +• 111.H5
`
`Topic Contents
`
`•=@• 1gnw
`
`IAMovie: :get_StopTime
`
`IAMovie Interface
`
`Retrieves the time at which the media stream stops.
`
`HRESULT get_StopTime(
`REFTIME* pTime
`);
`
`Parameters
`
`pTime
`[out] Returned stop time.
`
`Return Values
`
`Returns an HRESULT value.
`
`Remarks
`
`This method simply calls the IMediaPosition: :get StopTime method.
`
`© 1997 Microsoft Corooration . All rights reserved. Terms of Use.
`
`526
`
`
`
`DirectShow COM Interfaces
`
`Page 136 of 658
`
`+Qi§1[.]++ 1 !!