IDvdControl2::SetDVDDirectory 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 SetDVDDirectory 设置 DVD 导航器 筛选器将从中读取的 DVD 驱动器。

语法

HRESULT SetDVDDirectory(
  [in] LPCWSTR pszwPath
);

参数

[in] pszwPath

指向宽字符字符串的指针,该字符串指定根目录的路径。

返回值

返回以下值之一。

返回代码 说明
S_OK
成功。
E_INVALIDARG
pszwPath 参数指向无效的 DVD 路径,或者在枚举时找不到 DVD 驱动器。
E_UNEXPECTED
DVD 导航器未初始化。
VFW_E_DVD_INVALIDDOMAIN
域无效。 有关详细信息,请参阅“备注”。

注解

如果 pszwPathNULL,则 DVD 导航器会尝试选择任何可用驱动器上的 DVD 卷。 启动时,DVD 导航器会自动查找从驱动器 C 开始的驱动器,根文件夹中有一个VIDEO_TS文件夹。 因此,仅当计算机上有多个 DVD 驱动器,或者 DVD 驱动器号为 A 或 B 时,才需要调用 SetDVDDirectory 。指定路径时,请包含 video_ts 文件夹。

C++
SetDVDDirectory(L"e:\\video_ts");
某些 DVD 卷的视频可能位于名为“video_ts”以外的目录中。 一般思路是, (一组 额外的“DVD 卷”。Ifo。VOB 和 。通常存储在 VIDEO_TS 目录中的 BUP 文件) 可以放置在光盘上的子目录中。通过将根更改为指向此目录,MSWebDVD 将在此单独的 DVD 卷上运行。 一组新的菜单、标题等将可用,与VIDEO_TS根目录中的标题无关,这些标题将不再可访问。 此类目录称为“隐藏目录”。 以下示例演示如何将隐藏目录设置为根目录,其中“hidden”是光盘作者为目录提供的任何名称的占位符。
C++
SetDVDDirectory(L"d:\\webdvd\\hidden");
如果筛选器图正在运行,并且 DVD 导航器在 pszwPath 指定的目录中找到了 DVD,则 DVD 导航器将自动开始播放光盘。这符合 DVD 规范,并确保正确初始化新光盘。 如果不希望新光盘在返回后 SetDVDDirectory 自动播放,则必须在 IDvdControl2::SetOption 中将DVD_ResetOnStop标志设置为 TRUE ,并通过调用筛选器关系图管理器上的 IMediaControl::Stop 停止筛选图。 如果DVD_ResetOnStop设置为 FALSE,则 SetDVDDirectory 返回VFW_E_DVD_INVALIDDOMAIN。

此方法在 CDvdCore::SetDirectory 中的 DVDSample 应用程序中演示。

下表显示了此方法名称对应的 Annex J 命令名称,以及此方法有效的域。

附件 J 命令名称 有效域
DVD_DOMAIN_Stop

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

DVD 应用程序

错误和成功代码

IDvdControl2 接口