IQueryCancelAutoPlay::AllowAutoPlay 方法 (shobjidl.h)
确定是否播放用户插入的媒体,如果是,请使用哪些限制。
语法
HRESULT AllowAutoPlay(
[in] LPCWSTR pszPath,
[in] DWORD dwContentType,
[in] LPCWSTR pszLabel,
[in] DWORD dwSerialNumber
);
参数
[in] pszPath
类型: LPCWSTR
格式为 D:\ 的驱动器号
[in] dwContentType
类型:DWORD
由以下标志指定的内容类型。
ARCONTENT_AUTORUNINF (0x00000002)
使用 Autorun.inf 文件。 这是传统的自动运行行为。
ARCONTENT_AUDIOCD (0x00000004)
自动运行音频 CD。
ARCONTENT_DVDMOVIE (0x00000008)
自动运行 DVD。
ARCONTENT_BLANKCD (0x00000010)
自动播放空白 CD-Rs 和 CD-RW。
ARCONTENT_BLANKDVD (0x00000020)
自动播放空白 DVD-Rs 和 DVD-RAM。
ARCONTENT_UNKNOWNCONTENT (0x00000040)
如果媒体已格式化,并且内容不属于其他标志之一所涵盖的类型,则自动运行。
ARCONTENT_AUTOPLAYPIX (0x00000080)
如果内容包含定义为图片的文件类型,例如 .bmp 和 .jpg 文件,则自动播放。
ARCONTENT_AUTOPLAYMUSIC (0x00000100)
如果内容由定义为音乐的文件类型(如 MP3 文件)组成,则自动播放。
ARCONTENT_AUTOPLAYVIDEO (0x00000200)
如果内容包含定义为视频文件的文件类型,则自动播放。
ARCONTENT_VCD (0x00000400)
在 Windows Vista 中引入。 自动播放视频 (VCD) 。
ARCONTENT_SVCD (0x00000800)
在 Windows Vista 中引入。 自动播放超级视频 CD (SVCD) 媒体。
ARCONTENT_DVDAUDIO (0x00001000)
在 Windows Vista 中引入。 自动播放 DVD-Audio 媒体。
ARCONTENT_BLANKBD (0x00002000)
以 BD-R 或 BD-RW () 自动播放 BD-R™ 或 BD-RW 格式的空白可录制高清 DVD 介质。 注意:在 Windows 7 之前,此值定义为以HD DVD格式指定不可录制的媒体。
ARCONTENT_BLURAY (0x00004000)
在 Windows Vista 中引入。 自动播放 Blu-ray 光盘™格式的高清 DVD 媒体。
ARCONTENT_CAMERASTORAGE (0x00008000)
在 Windows 8 中引入。
ARCONTENT_CUSTOMEVENT (0x00010000)
在 Windows 8 中引入。
ARCONTENT_NONE (0x00000000)
在 Windows Vista 中引入。 自动播放空但格式化的媒体。
ARCONTENT_MASK (0x0001FFFE)
在 Windows Vista 中引入。 表示媒体类型的有效 ARCONTENT 标志值的掩码。 此掩码不包括ARCONTENT_PHASE值。
ARCONTENT_PHASE_UNKNOWN (0x00000000)
在 Windows Vista 中引入。 自动播放正在搜索媒体。 搜索 (预探、嗅探或最终) 的阶段未知。
ARCONTENT_PHASE_PRESNIFF (0x10000000)
在 Windows Vista 中引入。 由于媒体类型,在搜索媒体之前,媒体的内容是已知的;例如,音频光盘和 DVD 电影。
ARCONTENT_PHASE_SNIFFING (0x20000000)
在 Windows Vista 中引入。 自动播放当前正在搜索媒体。 在此阶段报告的任何结果都应被视为部分列表,因为可能仍会找到更多内容类型。
ARCONTENT_PHASE_FINAL (0x40000000)
在 Windows Vista 中引入。 自动播放已完成对媒体的搜索。 报告的结果是最终结果。
ARCONTENT_PHASE_MASK (0x70000000)
在 Windows Vista 中引入。 表示有效ARCONTENT_PHASE值的掩码。
[in] pszLabel
类型: LPCWSTR
媒体标签。
[in] dwSerialNumber
类型:DWORD
媒体序列号。
返回值
类型: HRESULT
返回允许自动运行或S_FALSE取消自动运行S_OK。
注解
应用程序在运行的对象表中注册 IQueryCancelAutoPlay 接口的实例 (ROT) 。 在 Shell 启动自动运行或自动播放之前,当用户插入新媒体时,它会检查 ROT 中是否存在实现 IQueryCancelAutoPlay 的组件。 如果找到该实现,Shell 会调用该实现的 IQueryCancelAutoPlay::AllowAutoPlay 方法,以确定它是否应继续,并使用哪些限制。
呈现媒体后,Shell 在 ROT 中搜索实现 IQueryCancelAutoPlay 的组件。 如果找到一个,则会提取该组件名字对象的类标识符 (CLSID) 。 存在 ROT 注册会通知 Shell 组件可能需要取消自动运行或自动播放。 为了进行确认,Shell 还必须在以下位置找到同一 CLSID 的注册表项:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows Current Version Explorer AutoplayHandlers CancelAutoplay CLSID The component's CLSID此值由应用程序或硬件添加,通常在安装时添加。 它未分配数据值。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl.h |
DLL | Shell32.dll |