Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

ZeroMemory

VOID ZeroMemory( PVOID Destination, DWORD Length );

Аргументы

  1. Destination — указатель на начальный адрес заполняемого нулями блока памяти.

  2. Length — размер заполняемого блока в байтах.

Примечание

Функция ZeroMemory заполняет нулями блок памяти.

Описание данной функции содержится в файле заголовка winbase.h.

Интерфейсы

IDirectSound

Методы интерфейса IDirectSound используются приложениями для создания объектов DirectSound и настройки звукового оборудования. Для создания данного интерфейса используется метод DirectSoundCreate. Как и все другие интерфейсы COM, IDirectSound наследует методы интерфейса IUnknown.

В качестве указателя на интерфейс IDirectSound определён тип LPDIRECTSOUND:

typedef struct IDirectSound *LPDIRECTSOUND;

Описание данного интерфейса содержится в файле заголовка dsound.h.. При работе с данным интерфейсом следует включить в проект библиотеку dsound.lib.

IDirectSound::Compact

HRESULT Compact();

Возвращаемое значение

В случае успешного завершения возвращает значение DS_OK. В противном случае возвращаемое значение может принимать одно из следующих значений:

  • DSERR_INVALIDPARAM — один или несколько аргументов метода имеют недопустимые значения.

  • DSERR_PRIOLEVELNEEDED — вызывающее приложение имеет недостаточно высокий уровень приоритета для вызова данной функции.

  • DSERR_UNINITIALIZED — перед вызовом данной функции не был вызван метод IDirectSound::Initialize или его выполнение завершилось с ошибкой.

Примечание

Метод IDirectSound::Compact объединяет неиспользуемые области памяти, расположенной на звуковой карте в единый блок.

Для вызова данного метода приложение должно иметь как минимум исключительный уровень приоритета (для этого необходимо передать в качестве второго аргумента метода IDirectSound::SetCooperativeLevel значение DSSCL_EXCLUSIVE). Этот метод возвращает ошибку, если во время его вызова производится любая операция.

IDirectSound::CreateSoundBuffer

HRESULT CreateSoundBuffer( LPCDSBUFFERDESC lpcDSBufferDesc, LPLPDIRECTSOUNDBUFFER lplpDirectSoundBuffer, IUnknown FAR * pUnkOuter );

Возвращаемое значение

В случае успешного завершения возвращает значение DS_OK. В противном случае возвращаемое значение может принимать одно из следующих значений:

  • DSERR_ALLOCATED — ресурс, например, уровень приоритета, уже предоставлен по другому запросу.

  • DSERR_BADFORMAT — указанный формат не поддерживается.

  • DSERR_INVALIDPARAM — один или несколько аргументов метода имеют недопустимые значения.

  • DSERR_NOAGGREGATION — данный объект не может быть агрегирован.

  • DSERR_OUTOFMEMORY — недостаточно памяти для выполнения требуемой операции.

  • DSERR_UNINITIALIZED — перед вызовом данной функции не был вызван метод IDirectSound::Initialize или его выполнение завершилось с ошибкой.

  • DSERR_UNSUPPORTED — вызываемая функция в данный момент недоступна.

Аргументы

  1. lpcDSBufferDesc — указатель на объект структуры DSBUFFERDESC, содержащей описание создаваемого аудио буфера.

  2. lplpDirectSoundBuffer — указатель на новый объект DirectSoundBuffer или NULL, если данный объект не может быть создан.

  3. pUnkOuter — используется при агрегировании. Должен иметь нулевое значение.

Примечание

Метод IDirectSound::CreateSoundBuffer создаёт объект DirectSoundBuffer для хранения аудио информации.

Перед воспроизведением любого аудио буфера приложение должно задать уровень приоритета объекта DirectSound с использованием метода IDirectSound::SetCooperativeLevel.

Аргумент lpDSBufferDesc представляет собой указатель на объект структуры, содержащей описание типа создаваемого буфера, включая его формат, размер и возможности. Если приложение не указало требуемые возможности, они не будут предоставлены. Например, если при создании объекта DirectSoundBuffer приложение не установило флаг DSBCAPS_CTRLFREQUENCY, оно не сможет вызывать метод IDirectSoundBuffer::SetFrequency. Установка флага DSBCAPS_STATIC позволяет объекту DirectSound размещать свои буфера в памяти звуковой карты, если таковая имеется, используя при этом преимущества аппаратного микширования. Для использования аппаратного микширования приложение должно установить флаг DSBCAPS_LOCHARDWARE, а для использования программного микширования — флаг DSBCAPS_LOCSOFTWARE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]