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

Createstruct

typedef struct tagCREATESTRUCT { // cs

LPVOID lpCreateParams;

HINSTANCE hInstance;

HMENU hMenu;

HWND hwndParent;

int cy;

int cx;

int y;

int x;

LONG style;

LPCTSTR lpszName;

LPCTSTR lpszClass;

DWORD dwExStyle;

} CREATESTRUCT;

Переменные

  1. lpCreateParams — содержит дополнительную информацию, которая может быть использована для создания окна. Если окно создаётся функциями CreateWindow или CreateWindowEx этот аргумент содержит значение, переданное в аргументе lpParam при вызове данной функции.

  2. Если создаётся окно документа многооконного приложения, то данная переменная содержит указатель на объект структуры MDICREATESTRUCT.

  3. hInstance — дескриптор модуля, которому принадлежит создаваемое окно.

  4. hMenu — дескриптор объекта меню, используемого для нового окна.

  5. hwndParent — дескриптор родительского окна, если создаваемое окно является дочерним окном. Если это окно принадлежит другому окну, то в данной переменной содержится дескриптор окна-владельца. В противном случае эта переменная имеет нулевое значение.

  6. cy — определяет высоту окна в элементах изображения.

  7. cx — определяет ширину окна в элементах изображения.

  8. y — определяет вертикальную координату верхнего левого угла нового окна. Если создаётся дочернее окно, его координаты задаются относительно левого верхнего угла рабочей области родительского окна. В противном случае координаты задаются относительно левого верхнего угла экрана.

  9. x — определяет горизонтальную координату верхнего левого угла нового окна. Если создаётся дочернее окно, его координаты задаются относительно левого верхнего угла рабочей области родительского окна. В противном случае координаты задаются относительно левого верхнего угла экрана.

  10. style — определяет стили создаваемого окна.

  11. lpszName — указатель на заканчивающуюся нулём текстовую строку, которая будет помещена в заголовок окна.

  12. lpszClass — указатель на заканчивающуюся нулём текстовую строку, содержащую имя класса нового окна.

  13. dwExStyle — определяет расширенные стили нового окна.

Примечание

Объект структуры CREATESTRUCT содержит параметры инициализации, передаваемые процедуре окна приложения.

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

Dsbcaps

typedef struct {

DWORD dwSize;

DWORD dwFlags;

DWORD dwBufferBytes;

DWORD dwUnlockTransferRate;

DWORD dwPlayCpuOverhead;

} DSBCAPS, *LPDSBCAPS;

typedef const DSBCAPS *LPCDSBCAPS;

Переменные

  1. dwSize —размер структуры в байтах. Эта переменная должна быть инициализирована до первого обращения к объекту структуры.

  2. dwFlags — определяет возможности создаваемого объекта DirectSoundBuffer. Является комбинацией следующих значений:

  • DSBCAPS_CTRL3D — данный буфер представляет собой первичный или вторичный аудио буфер, способный работать с 3-мерным звуком. Для создания первичного аудио буфера переменная dwFlags объекта структуры DSBUFFERDESC должна включать флаг DSBCAPS_PRIMARYBUFFER.

  • DSBCAPS_CTRLFREQUENCY — буфер может изменять частоту дискретизации.

  • DSBCAPS_CTRLPAN — буфер способен панорамировать звук.

  • DSBCAPS_CTRLPOSITIONNOTIFY — буфер способен информировать о позиции своего курсора.

  • DSBCAPS_CTRLVOLUME — буфер позволяет управлять уровнем.

  • DSBCAPS_GETCURRENTPOSITION2 — указывает на то, что метод IDirectSoundBuffer::GetCurrentPosition использует расширенные возможности управления курсором буфера воспроизведения. В объектах DirectSound, создаваемых DirectX версии 1 курсор буфера воспроизведения существенно опережал текущую позицию воспроизводимого аудио сигнала эмулируемых звуковых карт и отставал от курсора буфера записи. Флаг DSBCAPS_GETCURRENTPOSITION2 позволяет приложению получить более корректную информацию о позиции курсора буфера воспроизведения. Если этот флаг не определён, то, для совместимости со старыми приложениями, используется прежний режим отображения позиции курсора. Данный флаг используется только в режиме эмуляции звуковых карт. При наличии драйвера DirectSound позиция курсора буфера воспроизведения корректно отображается во всех версиях DirectX.

  • DSBCAPS_GLOBALFOCUS — используется глобальный аудио буфер. Если данный флаг установлен, то приложение, использующее DirectSound, может продолжать воспроизведение содержимого буфера после передачи фокуса ввода другому приложению даже в том случае, если новое приложение использует DirectSound. Из этого правила существует одно исключение: если новое приложение использует DirectSound с уровнем приоритета DSSCL_EXCLUSIVE или DSSCL_WRITEPRIMARY, то глобальные буфера других приложений заглушаются.

  • DSBCAPS_LOCHARDWARE — буфер располагается в памяти звуковой карты и для него используется аппаратное микширование.

  • DSBCAPS_LOCSOFTWARE —буфер располагается в оперативной памяти и для него используется программное микширование.

  • DSBCAPS_MUTE3DATMAXDISTANCE — для данного буфера установлена предельная продолжительность воспроизведения звука. После превышения этой величины воспроизведение звука из буфера прекращается, что предотвращает чрезмерную загрузку центрального процессора.

  • DSBCAPS_PRIMARYBUFFER — указывает на то, что данный буфер является первичным аудио буфером. Если этот флаг не установлен, данный буфер является вторичным аудио буфером.

  • DSBCAPS_STATIC — указывает на то, что данный буфер используется для хранения статической аудио информации. Обычно такой буфер однократно загружается и многократно воспроизводится. Это обстоятельство делает их первыми кандидатами на размещение в памяти звуковой карты.

  • DSBCAPS_STICKYFOCUS — изменяет поведение аудио буферов при перемещении фокуса ввода приложения. Этот флаг может быть установлен при вызове метода IDirectSound::CreateSoundBuffer. Установка данного флага приводит к тому, что приложение, использующее DirectSound, продолжает воспроизведение своего специальным образом оформленного аудио буфера при передаче пользователем фокуса ввода приложению не использующему DirectSound. Воспроизведение обычных аудио буферов при этом прекращается. Это позволяет прослушивать аудио информацию при работе в таких приложениях как Microsoft Word или Microsoft Excel. Однако в том случае, когда фокус ввода передаётся приложению, использующему DirectSound, прекращается воспроизведение всех буферов старого приложения.

  1. dwBufferBytes — содержит размер буфера в байтах.

  2. dwUnlockTransferRate — определяет скорость передачи данных в буфер при вызове метода IDirectSoundBuffer::Unlock. Данная величина измеряется в килобайтах в секунду. Приложение может использовать данную величину для получения оценки времени, необходимого для выполнения метода IDirectSoundBuffer::Unlock. При использовании программных буферов, расположенных в оперативной памяти компьютера, эта величина может принимать очень большие значения, поскольку этот процесс практически не занимает времени. Для аппаратно реализованных буферов это значение будет меньшим, поскольку информацию следует переписать в память звуковой карты через системную шину, имеющую ограниченную пропускную способность.

  3. dwPlayCpuOverhead — определяет процентную загрузку центрального процессора при микшировании данного аудио буфера. Для аппаратно реализованных буферов эта переменная имеет нулевое значение, поскольку микширование производится в звуковой карте, а для программно реализованных буферов эта величина зависит от формата данных в буфере и от быстродействия центрального процессора.

Примечание

Объект структуры DSBCAPS содержит описание параметров объекта DirectSoundBuffer и используется методом IDirectSound::GetCaps.

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

В переменной dwFlags объекта структуры DSBCAPS могут быть установлены те же флаги, что и в одноимённой переменной объекта структуры DSBUFFERDESC. Единственным различием является то, что в переменной структуры DSBCAPS обязательно будет установлен один из флагов DSBCAPS_LOCHARDWARE или DSBCAPS_LOCSOFTWARE, указывая на физическое расположение данного буфера, а в структуре DSBUFFERDESC эти флаги не являются обязательными и ни один из них может быть не установлен.

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

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