`
`Page 340 of 658
`
`GetLocaleinfo (*pLanguage, LOCALE SENGLANGUAGE, pszstring, cbSize ) i
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`MQ<§i[.jjj,M Ill.HS Topic Contents
`
`lmll§lllMM
`
`MQi§i!!.ljj,i 111.J,,[9 Topic Contents 1@1§111$8
`
`IDvdlnfo::GetCurrentAngle
`
`IDvdinfo Interface
`
`Retrieves the number of available angles and the currently selected angle number.
`
`HRESULT GetCurrentAngle(
`ULONG *pnAnglesA vailable,
`ULONG *pnCurrentAngle );
`
`Parameters
`
`pnAnglesAvailable
`[out] Pointer to the retrieved number of available angles. If the value pointed to equals
`1, then the current video does not contain multiple angles.
`pnCurrentAngle
`[out] Pointer to the retrieved current angle number.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`Angles are interleaved video streams that presumably contain the same scene shot with
`different camera angles.
`
`This method returns an error unless the domain is DVD DOMAIN Title.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQi@[.jjj,M 111.11119 Topic Contents
`
`l@i§lllMM
`
`731
`
`
`
`DirectShow COM Interfaces
`
`Page 341of658
`
`IDvdinfo::GetCurrentAudio
`
`IDvdinfo Interface
`
`Retrieves the number of available audio streams and the number of the currently selected
`audio stream.
`
`HRESULT GetCurrentAudio(
`ULONG *pnStreamsA vailable,
`ULONG *pnCurrentStream );
`
`Parameters
`
`pnStreamsAvailable
`[out] Pointer to the retrieved number of available audio streams
`pnCurrentStream
`[out] Pointer to the current stream number.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`This method returns an error unless the domain is DVD DOMAIN Title.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQi@[.jlj,M l!i.! 11ij Topic Contents
`
`l@i§i 11111+
`
`IDvdinfo::GetCurrentAudioAttributes
`
`IDvdinfo Interface
`
`Retrieves the audio attributes for the stream in the current title or menu.
`
`HRESULT GetCurrentAudioAttributes(
`DVD _AudioATR *pA TR ) ;
`
`Parameters
`
`pATR
`
`[out] Pointer to the retrieved audio attributes.
`
`732
`
`
`
`DirectShow COM Interfaces
`
`Page 342 of 658
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`See the DVD-Video specification for information about DVD_AudioATR.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]i!,+ 1 !1·HM Topic Contents
`
`ifflj[§ii!¥M
`
`IDvdlnfo::GetCurrentButton
`
`IDvdinfo Interface
`
`Retrieves the number of available buttons and the currently selected button number.
`
`HRESULT GetCurrentButton(
`ULONG *pnButtonsAvailable,
`ULONG *pnCurrentButton ) ;
`
`Parameters
`
`pnButtonsA vailable
`[out] Pointer to the number of buttons available.
`pnCurrentButton
`[out] Pointer to the number of the current button.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`If buttons are not present this method returns zero for both pnButtonsAvailable and
`pnCurrentButton.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qi§ill·h' 111.J,,[9 Topic Contents i@i§ii!¥M
`
`733
`
`
`
`DirectShow COM Interfaces
`
`Page 343 of 658
`
`IDvdlnfo::GetCurrentDomain
`
`IDvdlnfo Interface
`
`Retrieves the current DVD domain of the DVD player.
`
`HRESULT GetCurrentDomain(
`DVD_DOMAIN *pDomain );
`
`Parameters
`
`pDomain
`[out] Pointer to the current domain which is a member of the DVD DOMAIN enumerated
`type.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. Typical return
`values might include one of the following:
`Value
`Meaning
`E_FAIL
`Failure.
`E_I NV ALI DARG
`Input argument is invalid.
`E_NOTIMPL
`Method is not supported.
`E_OUTOFMEMORY
`Out of memory (insufficient buffer space).
`E_POINTER
`NULL pointer argument.
`E_UNEXPECTED
`DVD is not initialized or domain is not DVD DOMAIN Title.
`E_UOP PROHIBITED
`Requested action cannot occur at this point in the movie due
`to the authoring of the current DVD-Video disc.
`Success.
`S_OK
`VFW_E_DVD_INVALIDDOMAIN Requested action is not supported on this domain
`(DVD DOMAIN).
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jlj,M l!i.! 11!j Topic Contents
`
`l@i§lllMM
`
`w QiM [.] ij,+ 111.Hj Topic Contents •@!§' 1gnw
`
`IDvdl nfo: :GetCu rrentlocation
`
`IDvdlnfo Interface
`
`734
`
`
`
`DirectShow COM Interfaces
`
`Page 344 of 658
`
`Retrieves the current playback location.
`
`HRESULT GetCurrentlocation(
`DVD_PLAYBACK_LOCATION *placation );
`
`Parameters
`
`placation
`[out] Pointer to the retrieved playback location information in a
`DVD PLAYBACK LOCATION structure.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`The default implementation of this method returns E_UNEXPECTED if the current domain is not
`DVD DOMAIN Title.
`
`Remarks
`
`This method retrieves information sufficient to restart playback of a video from the current
`playback location in titles that don't explicitly disable seeking to the current location.
`
`This method returns an error unless the domain is DVD DOMAIN Title.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+;<§1[.]lj,i '!!·!:.!¥ Topic Contents i@i§ll!¥+
`
`IDvdlnfo::GetCurrentSubpicture
`
`IDvdinfo Interface
`
`Retrieves the number of available subpicture streams, the currently selected subpicture stream
`number, and whether the subpicture display is disabled.
`
`HRESULT GetCurrentSubpicture(
`ULONG *pnStreamsA vailable,
`ULONG *pnCurrentStream,
`BOOL *pisDisabled );
`
`Parameters
`
`pnStreamsAvailable
`[out] Pointer to the retrieved number of available subpicture streams.
`
`735
`
`
`
`DirectShow COM Interfaces
`
`Page 345 of 658
`
`pnCurrentStream
`[out] Pointer to the retrieved number of the currently selected subpicture stream.
`pisDisabled
`[out] Pointer to a value indicating whether the subpicture display is disabled.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`Subpicture streams authored as forcedly activated streams will be displayed even if the
`application has disabled sub picture display with the IDvdControl:: SuboictureStreamChanqe
`method.
`
`This method returns an error unless the domain is DVD DOMAIN Title.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jjj,M l!i.l:.ij Topic Contents
`+Qi§i[.jjj,+ 111.],.[j Topic Contents •@m••1m+
`
`l@i§i llfttiM
`
`IDvdlnfo::GetCurrentSubpictureAttributes
`
`IDvdlnfo Interface
`
`Retrieves the video attributes for the stream in the current title or menu.
`
`HRESULT GetCurrentSubpictureAttributes(
`DVD_SubpictureATR *pATR );
`
`Parameters
`
`pATR
`
`[out] Pointer to the retrieved subpicture attributes.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`736
`
`
`
`DirectShow COM Interfaces
`
`Page 346 of 658
`
`See the DVD-Video specification for information about DVD_SubpictureATR.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]i!,+ 1 !1·HM Topic Contents
`
`ifflj[§ii!MM
`
`IDvdlnfo::GetCurrentUOPS
`
`IDvdinfo Interface
`
`Retrieves which IDvdControl methods are currently valid.
`
`HRESULT GetCurrentUOPS(
`VALID_UOP _SOMTHING_OR_OTHER *pUOP );
`
`Parameters
`
`pUOP
`[out] Pointer to the retrieved valid user operations (UOP).
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`This method is useful because DVD titles can enable or disable individual user operations at
`almost any point during playback.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41H+1 1 !1·HM Topic Contents
`
`i@l§ii!MM
`
`IDvdlnfo::GetCurrentVideoAttributes
`
`IDvdinfo Interface
`
`Retrieves the video attributes for the current title or menu.
`
`HRESULT GetCurrentVideoAttributes(
`
`737
`
`
`
`DirectShow COM Interfaces
`
`Page 347 of 658
`
`DVD_VideoATR *pATR );
`
`Parameters
`
`pATR
`
`[out] Pointer to the retrieved video attributes.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`See the DVD-Video specification for information about DVD_VideoATR.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lmli§lllMM
`
`IDvdlnfo::GetCurrentVolumelnfo
`
`IDvdlnfo Interface
`
`Retrieves the current DVD volume information.
`
`HRESULT GetCurrentVolumeinfo(
`ULONG *pNumOfVol,
`ULONG *pThisVo/Num,
`DVD_DISC_SIDE *pSide,
`ULONG *pNumOfTitles );
`
`Parameters
`
`pNumOfVol
`[out] Pointer to the retrieved number of volumes in a volume set.
`pThisVo/Num
`[out] Pointer to the retrieved volume number for this root directory.
`pSide
`[out] Pointer to the retrieved current disc side (DVD DISC SIDE).
`pNumOfTitles
`[out] Pointer to the retrieved number of titles available in this volume.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`
`738
`
`
`
`DirectShow COM Interfaces
`
`Page 348 of 658
`
`interface.
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`MQ<§i[.jjj,M Ill.HS Topic Contents
`
`lmll§lllMM
`
`MQi§i!!.ljj,i 111.J,,[9 Topic Contents 1@1§111$8
`
`IDvdlnfo: :GetDVDTextlnfo
`
`IDvdinfo Interface
`
`Retrieves the TXTDT MG structure, which can contain text descriptions for title name, volume
`name, producer name, vocalist name, and so on, in various languages.
`
`HRESULT GetDVDTextinfo(
`BYTE *p Text Manager,
`ULONG cbBufSize,
`ULONG *pcbActua/Size );
`
`Parameters
`
`pTextManager
`[out, size_is(cbBufSize)] Pointer to the retrieved text manager.
`cbBufSize
`[in] Size of the buffer for pTextManager, in bytes.
`pcbActua/Size
`[out] Pointer to a value containing the number of bytes of data returned.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`If the supplied buffer size in cbBufSize is too small for the data, (for example if cbBufSize
`equals zero), then this method returns E_OUTOFMEMORY and sets the value pointed to by
`pcbActua/Size to the required size.
`
`Refer to Section 4.1.6 and Annex A of the DVD-Video specification for more information.
`
`© 1997 Microsoft Corporation. All rights reserved . Terms of Use.
`
`MQi@[.jjj,M 111.11119 Topic Contents
`
`l@i§lllMM
`
`739
`
`
`
`DirectShow COM Interfaces
`
`Page 349 of 658
`
`+Qi§1[.]++ 1 !!·HM Topic Contents
`
`i@l§ii!MM
`
`IDvdlnfo::GetNumberOfChapters
`
`IDvdinfo Interface
`
`Retrieves the number of chapters that are defined for a given title.
`
`HRESULT GetNumberOfChapters(
`ULONG u/Title,
`ULONG *pNumberOfChapters
`);
`
`Parameters
`
`u/Title
`[in] Title for which to retrieve the number of chapters.
`pNumberOfChapters
`[out] Retrieved number of chapters for the specified title.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qij[.jjj,M M!i.11119 Topic Contents
`
`i@l§lllMM
`
`IDvdl nfo: :GetPlayerPa renta I Level
`
`IDvdinfo Interface
`
`Retrieves the current parental level and country code settings for the DVD player.
`
`HRESULT GetPlayerParentallevel(
`ULONG *pParenta/Level,
`ULONG *pCountryCode
`);
`
`Parameters
`
`740
`
`
`
`DirectShow COM Interfaces
`
`Page 350 of 658
`
`pParenta/Level
`[out] Pointer to a value indicating the current parental level.
`pCountryCode
`[out] Pointer to a value indicating the current country code.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`See Table 3.3.4-1 of the DVD-Video specification for the defined parental levels.
`
`See IS03166 : Alpha-2 Code for the country codes.
`
`Valid Parental Levels are 1 through 8 if parental management is enabled, Oxffffffff if parental
`management is disabled.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+QH"·h' 111.q9
`
`Topic Contents
`
`1@1§111¥+
`
`IDvdlnfo: :GetRoot
`
`IDvdlnfo Interface
`
`Retrieves the root directory that is set in the player.
`
`HRESULT GetRoot(
`LPTSTR pRoot,
`ULONG cbBufSize,
`ULONG *pcbActua/Size
`);
`
`Parameters
`
`pRoot
`[out, size_is(cbBufSize)] Pointer to the buffer to receive the root string.
`cbBufSize
`[in] Size of buffer passed in, in bytes.
`pcbActua/Size
`[out] Pointer to a value containing the size of the actual data returned.
`
`Return Values
`
`741
`
`
`
`DirectShow COM Interfaces
`
`Page 351of658
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`If a valid root was found, this method returns the root string. Otherwise, it returns zero for
`pcbActua/Size, indicating that a valid root directory has not been found or initialized.
`
`© 1997 Microsoft Corporation . All rights reserved . Terms of Use .
`
`MQ<§i[.jjj,M 111.],.(9 Topic Contents
`
`lmll§lllMM
`
`MQi§i!!.llj,i 111.J,,[9 Topic Contents 1@1§111$8
`
`IDvdl nfo: :GetSu bpictu re language
`
`IDvdinfo Interface
`
`Retrieves the language of the specified subpicture stream within the current title.
`
`HRESULT GetSubpicturelanguage(
`ULONG nStream,
`LCID *planguage );
`
`Parameters
`
`nStream
`[in] Stream number.
`pLanguage
`[out] Pointer to the retrieved language.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`This method does not return languages for menus. This method sets the value pointed to by
`planguage to zero if the stream does not include language. Call the Win32 Getlocalelnfo API
`as follows to create a human-readable string name from planguage.
`
`GetLocaleinfo (*pLanguage, LOCALE_SENGLANGUAGE, pszString, cbSize ) ;
`
`742
`
`
`
`DirectShow COM Interfaces
`
`Page 352 of 658
`
`This method returns an error unless the domain is DVD DOMAIN Title.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]1!,+ 1 !1·HM Topic Contents
`
`ifflj[§ii!MM
`
`+Q<@[.]ij,+ 111.1111M Topic Contents 1@1§11!¥+
`
`IDvdinfo::GetTitleAttributes
`
`IDvdinfo Interface
`
`Retrieves attributes of all video, audio, and subpicture streams for the specified title, including
`menus.
`
`HRESULT GetTitleAttributes(
`ULONG nTitle,
`DVD_ATR *pATR );
`
`Parameters
`
`nTitle
`[in] Requested title number. Specify OxFFFFFFFF for the current title.
`
`pATR
`
`[out] Pointer to the retrieved attributes structure (DVD ATR).
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdinfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`© 1997 Microsoft Corooration . All rights reserved. Terms of Use.
`
`+;<§1[.]ij,+ +II.HM Topic Contents
`
`i@faii!MM
`
`IDvdI nfo: :GetTitlePa renta I Levels
`
`IDvdinfo Interface
`
`Retrieves the parental levels that are defined for a particular title.
`
`743
`
`
`
`DirectShow COM Interfaces
`
`Page 353 of 658
`
`HRESULT GetTitleParentallevels(
`ULONG u/Title,
`ULONG *pParenta/Levels
`);
`
`Parameters
`
`u/Title
`[in] Title for which parental levels are requested.
`pParentalLevels
`[out] Logical combination of the parental levels defined for the title. Valid parental levels
`are DVD PARENTAL LEVEL 8, DVD PARENTAL LEVEL 6, and DVD PARENTAL LEVEL 1.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jjj,M l!i.! 11ij
`
`Topic Contents
`
`l@i§lllMM
`
`IDvdI nfo: :GetTota ITitleTi me
`
`IDvdlnfo Interface
`
`Retrieves the total playback time for the current title.
`
`HRESULT GetTotalTitleTime(
`ULONG *pTota/Time );
`
`Parameters
`
`pTota/Time
`[out] Pointer to the total time in DVD TIMECODE format, which includes hours, minutes,
`seconds, and frames.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`This method works only for simple linear movies.
`
`744
`
`
`
`DirectShow COM Interfaces
`
`Page 354 of 658
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`IDvdlnfo: :GetVMGAttributes
`
`IDvdlnfo Interface
`
`Retrieves attributes of all video, audio, and subpicture streams for video manager (VMG)
`menus.
`
`HRESULT GetVMGAttributes(
`DVD_ATR *pATR );
`
`Parameters
`
`pATR
`
`[out] Pointer to the retrieved attributes structure (DVD ATR).
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation of the interface. See
`IDvdlnfo: :GetCurrentDomain for a list of typical return values for the methods exposed by this
`interface.
`
`Remarks
`
`The video manager contains a separate group of streams, such as the DVD MENU Title menus
`and are not associated with any particular title number.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`IEnumFilters Interface
`
`The IFilterGraph:: EnumFilters method returns the enumerator interface. It is based on the
`COM IEnum style of enumerators.
`
`When to Implement
`
`This interface is implemented on the filter graph manager and is not intended for
`implementation by developers.
`
`745
`
`
`
`DirectShow COM Interfaces
`
`Page 355 of 658
`
`When to Use
`
`This interface is used by applications or other filters to determine what filters exist in the filter
`graph.
`
`Methods in Vtable Order
`!Unknown methods Description
`Queryinterface
`Returns pointers to supported interfaces.
`AddRef
`Increments the reference count.
`Release
`Decrements the reference count.
`I En um Filters
`Description
`methods
`Next
`Skip
`Reset
`Clone
`
`Retrieves the specified number of filters in the enumeration sequence.
`Skips a specified number of filters in the enumeration sequence.
`Resets the enumeration sequence to the beginning.
`Retrieves a duplicate enumerator containing the same enumeration
`state as the current one.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`w Q<M [.] +• 111.H5 Topic Contents •=@• 1gnw
`
`MQi§i[.]11,M 11!.HM Topic Contents
`
`l@l§il!MM
`
`IEnumFilters: :Clone
`
`IEnumFilters Interface
`
`Retrieves a duplicate enumerator containing the same enumeration state as the current one.
`
`HRESULT Clone(
`I En um Filters * * ppEnum
`);
`
`Parameters
`
`ppEnum
`[out] Duplicate of the enumerator.
`
`Return Values
`
`No return value.
`
`Remarks
`
`746
`
`
`
`DirectShow COM Interfaces
`
`Page 356 of 658
`
`This method produces two enumerators (the original and the duplicate); both are set at the
`same filter. After they are created, however, they are independent; therefore, calling the
`IEnumFilters:: Next method for one does not affect the other.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+QH"·h' 111.q9 Topic Contents
`
`1@1§111¥+
`
`IEnumFilters::Next
`
`IEnumFilters Interface
`
`Retrieves the specified number of filters in the enumeration sequence.
`
`HRESULT Next(
`ULONG cFilters,
`IBaseFilter ** ppFilter,
`ULONG * pcFetched
`);
`
`Parameters
`
`cFilters
`[in] Number of filters to place.
`ppFilter
`[out] Array in which to place IBaseFilter pointers.
`pcFetched
`[out] Actual number of filters placed in the array.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`Remarks
`
`The interface returned by this method has had its reference count incremented. Be sure to use
`IUnknown:: Release on the interface to decrement the reference count when you have finished
`using the interface.
`
`747
`
`
`
`DirectShow COM Interfaces
`
`Page 357 of 658
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`MQl§i[.jjj,M '!!·HM Topic Contents
`
`'ffl!'+* •um•
`
`IEnumFilters::Reset
`
`IEnumFilters Interface
`
`Resets the enumeration sequence to the beginning.
`
`HRESULT Reset(void);
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E FAIL
`Failure.
`E_ POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_ NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`Remarks
`
`This method affects the return value of the next call to the IEnumFilters:: Next method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jjj,M l!i.l:.15 Topic Contents
`
`l@i§lllMM
`
`MQl§i[.jjj,M 111.],.(5 Topic Contents
`
`l@l§lllMM
`
`IEnumFilters::Skip
`
`IEnumFilters Interface
`
`Skips a specified number of filters in the enumeration sequence.
`
`748
`
`
`
`DirectShow COM Interfaces
`
`Page 358 of 658
`
`HRESULT Skip(
`ULONG cFilter
`);
`
`Parameters
`
`cFilter
`[in] Number of filters to skip.
`
`Return Values
`
`No return value.
`
`Remarks
`
`This method affects the return value of the next call to the IEnumFilters:: Next method.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qi§1[.]i!,+ '!!·HM Topic Contents
`
`i@l§ii!MM
`
`IEnumMediaTypes Interface
`
`The IEnumMediaTypes interface enumerates the preferred formats for a pin.
`
`When to Implement
`
`This interface must be implemented and made available by the I Pin:: EnumMediaTypes
`method. The CBasePin:: EnumMediaTypes member function automatically does this in the
`DirectShow™ class library and uses the CEnumMediaTypes class to create the enumerator
`object.
`
`When to Use
`
`This interface is normally used by a connecting pin to determine the media type when
`negotiating a connection. It can also be passed through to other pins, either upstream or
`downstream of the filter, when intervening filters do not have a list of preferred media types.
`For example, a transform-inplace filter might pass the IEnumMediaTypes interface of a
`downstream input pin to the connecting output pin of the upstream filter, instead of providing
`its own IEnumMediaTypes interface.
`
`Methods in Vtable Order
`!Unknown methods Description
`Querylnterface
`Returns pointers to supported interfaces.
`AddRef
`Increments the reference count.
`Release
`Decrements the reference count.
`
`749
`
`
`
`DirectShow COM Interfaces
`
`Page 359 of 658
`
`I En um MediaTypes
`methods
`Next
`
`Skip
`
`Reset
`Clone
`
`Description
`
`Retrieves the specified number of items in the enumeration
`sequence.
`Skips a specified number of elements in the enumeration
`sequence.
`Resets the enumeration sequence to the beginning.
`Returns another enumerator containing the same enumeration
`state as the current one.
`
`© 1997 Microsoft Corooration. All rights reserved. Terms of Use.
`
`MQ<§i[.]i!:M MB.HS Topic Contents
`
`i@fa111¥M
`
`MQ'41[.]l!:I 11!.HM Topic Contents
`
`i@fai11¥M
`
`IEnumMediaTypes: :Clone
`
`IEnumMediaTypes Interface
`
`Returns another enumerator containing the same enumeration state as the current one.
`
`HRESULT Clone(
`IEnum MediaTypes * * ppEnum
`);
`
`Parameters
`
`ppEnum
`[out] New copy of the enumerator.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQi@[.ji!:M lh.1 1115 Topic Contents
`
`i@fai l!lltiM
`
`750
`
`
`
`DirectShow COM Interfaces
`
`Page 360 of 658
`
`+Qi§1[.]++ 1 !!·HM Topic Contents
`
`i@l§ii!MM
`
`IEnumMediaTypes::Next
`
`IEnumMediaTypes Interface
`
`Retrieves the specified number of items in the enumeration sequence.
`
`HRESULT Next(
`ULONG cMediaTypes,
`AM_MEDIA_TYPE ** ppMediaTypes,
`ULONG * pcFetched
`);
`
`Parameters
`
`cMediaTypes
`[in] Number of media types to place.
`ppMediaTypes
`[out] Array in which to place the pointers to the next media type.
`pcFetched
`[out] Actual count passed.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`Remarks
`
`To use this method, pass an array of pointers to media types. (If you want only a single media
`type, you can pass a pointer to a media type pointer in place of an array of media type
`pointers.) The interface allocates the necessary AM MEDIA TYPE structures and initializes
`them with the variable format block. Free each media type by calling DeleteMediaType, which
`will free the format block and the media type itself.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Qi§i[.]ii,+ '!!·HM Topic Contents
`
`i@l§ii!MM
`
`751
`
`
`
`DirectShow COM Interfaces
`
`Page 361of658
`
`+Qi§1[.]++ 1 !!·HM Topic Contents
`
`i@l§ii!MM
`
`IEnumMediaTypes::Reset
`
`IEnumMediaTypes Interface
`
`Resets the enumerator to the beginning so that the next call to the IEnumMediaTypes:: Next
`method returns, at a minimum, the first media type (if any) in the enumeration.
`
`HRESULT Reset(void);
`
`Return Values
`
`Returns S_OK if successful; otherwise, returns S_FALSE.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`+ Q i§i [.] jj,+ +!!·HM Topic Contents
`
`Mttfjl§ii!MM
`
`IEnumMediaTypes: :Skip
`
`IEnumMediaTypes Interface
`
`Skips a specified number of elements in the enumeration sequence.
`
`HRESULT Skip(
`ULONG cMediaTypes
`);
`
`Parameters
`
`cMediaTypes
`[in] Number of media type elements to skip.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`
`752
`
`
`
`DirectShow COM Interfaces
`
`Page 362 of 658
`
`Meaning
`Value
`Failure.
`E FAIL
`Null pointer argument.
`E_ POINTER
`E INVALIDARG
`Invalid argument.
`Method isn't supported.
`E_ NOTIMPL
`S_OK or NOERROR Success.
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.]11,M '!!·HM
`
`Topic Contents
`
`lml!§lll¥M
`
`MQl§i[.jjj,M '!!·HM
`
`Topic Contents l@i§il/¥8
`
`IEnumPins Interface
`
`The IBaseFilter:: EnumPins method returns this interface. It is based on the IEnumX protocol of
`the Component Object Model (COM).
`
`Note that actions that cause the number of pins to change might cause the enumerator to fail.
`
`When to Implement
`
`This interface must be implemented and made available by the IBaseFilter:: EnumPins method.
`The CBaseFilter:: EnumPins member function automatically does this in the DirectShow™ class
`library and uses the CEnumPins class to create the enumerator object.
`
`When to Use
`
`This interface is normally used by the filter graph manager when connecting filters. It can,
`however, be used by an application that must find the pins associated with filters in the filter
`graph-for example, to add another filter to the graph.
`
`Methods in Vtable Order
`!Unknown methods Description
`Queryinterface
`Returns pointers to supported interfaces.
`AddRef
`Increments the reference count.
`Decrements the reference count.
`Release
`IEnumPins
`Description
`methods
`Next
`Skip
`Reset
`
`Puts pointers to IPin interfaces for the next pins into the specified array.
`Skips the specified number of pins.
`Resets the position to the beginning so that the next call to the
`IEnumPins:: Next method returns, at a minimum, the first pin of the filter.
`Provides another enumerator, which is a duplicate of the current one.
`
`753
`
`
`
`DirectShow COM Interfaces
`
`Page 363 of 658
`
`© 1997 Microsoft Corporation . All rights reserved. Terms of Use.
`
`MQi§i[.jjj,M 11!.HS Topic Contents
`
`lml!§I 11$8
`
`MQl§i[.jjj,M '!!·HM Topic Contents
`
`'ffl!'+* •um•
`
`IEnumPins: :Clone
`
`IEnumPins Interface
`
`Makes a copy of the enumerator. This allows the calling application to retain two positions in
`the list of pins.
`
`HRESULT Clone(
`IEnumPins ** ppEnum
`);
`
`Parameters
`
`ppEnum
`[out] New enumerator, which is a copy of this enumerator.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`MQl@[.jjj,M l!i.l:.15 Topic Contents
`
`l@i§lllMM
`
`MQl§i[.jjj,M 111.],.(5 Topic Contents
`
`l@l§lllMM
`
`IEnumPins::Next
`
`754
`
`
`
`DirectShow COM Interfaces
`
`Page 364 of 658
`
`IEnumPins Interface
`
`Places pointers to IPin interfaces into the specified array.
`
`HRESULT Next(
`ULONG cPins,
`I Pin * * ppPins,
`ULONG * pcFetched
`);
`
`Parameters
`
`cPins
`
`[in] Number of pins to place.
`ppPins
`[out] Array in which to place the interface pointers.
`pcFetched
`[out] Actual number of pins placed in the array.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`Remarks
`
`The interface returned by this method has had its reference count incremented. Be sure to use
`IUnknown:: Release on the interface to decrement the reference count when you have finished
`using the interface.
`
`© 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
`
`IEnumPins::Reset
`
`IEnumPins Interface
`
`755
`
`
`
`DirectShow COM Interfaces
`
`Page 365 of 658
`
`Resets the enumerator to the beginning so that the next call to the IEnumPins: :Next method
`returns, at a minimum, the first pin of the filter.
`
`HRESULT Reset(void);
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`Value
`Meaning
`E_FAIL
`Failure.
`E_POINTER
`Null pointer argument.
`E_INVALIDARG
`Invalid argument.
`E_NOTIMPL
`Method isn't supported.
`S_OK or NOERROR Success.
`
`© 1997 Microsoft Corporation. All rights reserved. Terms of Use.
`
`+Q'41[.]i!,+ 1 !1·HM
`
`Topic Contents
`
`ifflj[§ii!¥M
`
`+Q<@[.]jj,+ 111.11119
`
`Topic Contents 1@1§11!¥+
`
`IEnumPins: :Skip
`
`IEnumPins Interface
`
`Skips the specified number of pins.
`
`HRESULT Skip(
`ULONG cPins
`);
`
`Parameters
`
`cPins
`
`[in] Number of pins to skip.
`
`Return Values
`
`Returns an HRESULT value that depends on the implementation. HRESULT can be one of the
`following standard constants, or other values not listed:
`
`756
`
`
`
`DirectShow COM Interfaces
`
`Page 366 of 658
`
`Meani