Метод 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)
Автоматический запуск звуковых компакт-файлов.
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. Автозапуск мультимедиа Super Video CD (SVCD).
ARCONTENT_DVDAUDIO (0x00001000)
Представлено в Windows Vista. Автозапуск DVD-Audio мультимедиа.
ARCONTENT_BLANKBD (0x00002000)
Автозапуск пустого записываемого DVD-носителя высокого разрешения в формате Blu-ray (™ BD-R или BD-RW). Примечание. До Windows 7 это значение было определено для указания нефиксируемых носителей в формате HD DVD.
ARCONTENT_BLURAY (0x00004000)
Представлено в Windows Vista. Автозапуск DVD-носителя высокого разрешения в формате Blu-ray Disc™.
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. Автозапуск выполняет поиск мультимедиа. Этап поиска (presniff, sniffing или окончательный) неизвестен.
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_OK, чтобы разрешить автозапуск или S_FALSE отменить автозапуск.
Комментарии
Приложения регистрируют экземпляр интерфейса IQueryCancelAutoPlay в таблице выполняющихся объектов (ROT). Перед запуском автозапуска или автозапуска оболочка, когда пользователь вставляет новый носитель, она проверяет rot на наличие компонента, реализуя IQueryCancelAutoPlay. Если он найден, оболочка вызывает метод IQueryCancelAutoPlay::AllowAutoPlay этой реализации, чтобы определить, следует ли продолжить и какие ограничения.
При представлении носителя оболочка ищет в ROT компонент, реализующий IQueryCancelAutoPlay. Если он найден, извлекается идентификатор класса (CLSID) моникера этого компонента. Наличие регистрации ROT сообщает оболочке о том, что компоненту может потребоваться отменить автозапуск или автозапуск. Для подтверждения оболочка также должна найти раздел реестра для того же идентификатора CLSID в следующем расположении:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows Current Version Explorer AutoplayHandlers CancelAutoplay CLSID The component's CLSIDЭто значение добавляется приложением или оборудованием, обычно во время установки. Ему не присваивается значение данных.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl.h |
DLL | Shell32.dll |