Поделиться через


Метод 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
Это значение добавляется приложением или оборудованием, обычно во время установки. Ему не присваивается значение данных.
Примечание Идентификатор CLSID, введенный в качестве значения в этом ключе, не должен быть заключен в фигурные скобки.
 

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shobjidl.h
DLL Shell32.dll