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
此值由应用程序或硬件添加,通常在安装时添加。 它未分配数据值。
注意 作为此键下的值输入的 CLSID 不应用大括号括起来。
 

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shobjidl.h
DLL Shell32.dll