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 檔案。 這是傳統的 AutoRun 行為。
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 中引進。 自動播放視訊 CD (VCD) 。
ARCONTENT_SVCD (0x00000800)
在 Windows Vista 中引進。 自動播放超級視訊 CD (SVCD) 媒體。
ARCONTENT_DVDAUDIO (0x00001000)
在 Windows Vista 中引進。 自動播放 DVD-Audio 媒體。
ARCONTENT_BLANKBD (0x00002000)
在 BD-R 或 BD-RW) (模糊光片™格式中自動播放可錄製的高畫質 DVD 媒體。 注意:在 Windows 7 之前,此值已定義為以HD DVD格式指定不可錄製的媒體。
ARCONTENT_BLURAY (0x00004000)
在 Windows Vista 中引進。 以模糊光片™格式自動播放高畫質 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 中引進。 AutoPlay 正在搜尋媒體。 搜尋 (預先差異、探查或最終) 的階段不明。
ARCONTENT_PHASE_PRESNIFF (0x10000000)
在 Windows Vista 中引進。 媒體的內容在搜尋媒體之前已知,因為媒體類型;例如,音訊 CD 和 DVD 電影。
ARCONTENT_PHASE_SNIFFING (0x20000000)
在 Windows Vista 中引進。 AutoPlay 目前正在搜尋媒體。 此階段期間回報的任何結果都應該視為部分清單,因為可能仍可能會找到更多內容類型。
ARCONTENT_PHASE_FINAL (0x40000000)
在 Windows Vista 中引進。 自動播放已完成搜尋媒體。 回報的結果是最終結果。
ARCONTENT_PHASE_MASK (0x70000000)
在 Windows Vista 中引進。 代表有效ARCONTENT_PHASE值的遮罩。
[in] pszLabel
類型: LPCWSTR
媒體標籤。
[in] dwSerialNumber
類型: DWORD
媒體序號。
傳回值
類型: HRESULT
傳回S_OK,以允許 AutoRun 或S_FALSE取消自動執行。
備註
應用程式會在執行中的物件資料表中註冊 IQueryCancelAutoPlay 介面的實例, (ROT) 。 在 Shell 啟動 AutoRun 或 AutoPlay 之前,當使用者插入新媒體時,它會檢查 ROT 是否有實作 IQueryCancelAutoPlay的元件。 如果找到它,Shell 會呼叫該實作的 IQueryCancelAutoPlay::AllowAutoPlay 方法,以判斷它是否應該繼續,以及使用哪些限制。
媒體呈現時,Shell 會搜尋 ROT 以尋找實作 IQueryCancelAutoPlay的元件。 如果找到其中一個,則會擷取該元件的 Moniker (CLSID) 類別識別碼。 ROT 註冊的存在會通知殼層,元件可能想要取消 AutoRun 或 AutoPlay。 若要確認,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 |