Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

описание структуры IDirectSound

257
19 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
очень нужно описание этой структуры.
339
20 ноября 2006 года
verybadbug
619 / / 12.09.2005
IDirectSound8 Interface
The IDirectSound8 interface is used to create buffer objects, manage devices, and set up the environment. This interface supersedes IDirectSound and adds new methods.

Obtain this interface by using the DirectSoundCreate8 or DirectSoundFullDuplexCreate8 function, or by using CoCreateInstance or CoCreateInstanceEx to create an object of class CLSID_DirectSound8.

In addition to the methods inherited from IUnknown, the IDirectSound8 interface exposes the following methods.

Method Description
Compact No effect.
CreateSoundBuffer Creates a sound buffer object to manage audio samples.
DuplicateSoundBuffer Creates a new secondary buffer that shares the original buffer's memory.
GetCaps Retrieves the capabilities of the hardware device.
GetSpeakerConfig Retrieves the speaker configuration.
Initialize Initializes a device object that was created by using the CoCreateInstance function.
SetCooperativeLevel Sets the cooperative level of the application for this sound device.
SetSpeakerConfig Specifies the speaker configuration of the device.
VerifyCertification Ascertains whether the device driver is certified for DirectX.


The LPDIRECTSOUND8 type is defined as a pointer to the IDirectSound8 interface:

typedef struct IDirectSound8 *LPDIRECTSOUND8;

Remarks

Only objects of class CLSID_DirectSound8 support this interface. All device objects created by DirectSoundCreate8 and DirectSoundFullDuplexCreate8 fall into this category. Objects of class CLSID_DirectSound, which include all those created by using the earlier DirectSoundCreate function, support only the earlier IDirectSound interface.

The behavior of CLSID_DirectSound8 objects is somewhat different from that of CLSID_DirectSound objects. These differences are found in the IDirectSound interface as well as the IDirectSound8 interface. Specific differences in the behavior of the newer object include the following:

In calls to IDirectSound::CreateSoundBuffer and IDirectSound8::CreateSoundBuffer, DSBCAPS_CTRL3D cannot be set on a buffer with a non-mono format, and DSBCAPS_CTRL3D cannot be combined with DSBCAPS_CTRLPAN.
New buffer creation flags are supported.
Buffers are not filled with silence on creation.
The IDirectSoundBuffer interface returned by CreateSoundBuffer can be queried for the IDirectSoundBuffer8 interface.
WAV formats in the DSBUFFERDESC structure that have the WAVE_FORMAT_EXTENSIBLE format tag are checked more strictly for validity.
Requirements

Header: Declared in dsound.h.

See Also

DirectSound Interfaces
257
20 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
у меня тоже msdn есть. тогда спрошу по другому: что мне надо написать в своей программе, чтобы можно было записать var DS:IDirectSound и дальше работать с DS? мне, что вот как-то так надо делать:
Код:
CLSID_DirectSound: TGUID = (
    D1:$47d4d946;D2:$62e8;D3:$11cf;D4:($93,$bc,$44,$45,$53,$54,$0,$0));
IDirectSound = interface(IUnknown)['{47D4D946-62E8-11cf-93BC-444553540000}']
...
var
  IDS: IUnknown;
begin
  Coinitialize(nil);
  if CoCreateInstance(CLSID_DirectSound, nil, 1 or
    4, IUnknown, IDS) <> 0 then
  begin
//а здесь допустим использовать вот так
...
myfunc((IDS as IDirectSound));
...
  end;
CoUninitialize;
end;

или это вообще не то? помогите плиз.
547
20 ноября 2006 года
Hydra
488 / / 20.06.2006
Гхм... а тут смотрел?
Кстати, может DirectMusic'а хватит? - он проще гораздо.
302
20 ноября 2006 года
Sagittarius
648 / / 12.04.2003
[QUOTE=kosfiz]или это вообще не то? помогите плиз.[/QUOTE]
Если IDirectSound - двойственный интерфейс, то можно сделать так.
 
Код:
Var
  ds: Variant;
begin
  ds := CreateOleObject( 'DirectSound8' ); // За имя класса не ручаюсь
  ds.Метод(параметры);
  ds := Unassigned;
end;

Имя класса точно не знаю, можно выкопать в реестре.
257
20 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
[quote=Hydra]Гхм... а тут смотрел?[/quote]
а там, что файлы скачать нельзя?
[quote=Hydra]Кстати, может DirectMusic'а хватит? - он проще гораздо.[/quote]
нет. написано следующее:"A pointer to an IDirectSound structure."
Sagittarius
всмысле потом ds передавать функции? а то я попробовал - она не переваривает этот параметр и прога падает.
547
21 ноября 2006 года
Hydra
488 / / 20.06.2006
Цитата:

а там, что файлы скачать нельзя?


Там все можно. Только зарегистрироваться надо.

257
21 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
Hydra
там в uses стоит directsound, а в примерах его нет, у меня его есстественно тоже нет, потому как если бы был, то и тему бы эту не создавал.
547
21 ноября 2006 года
Hydra
488 / / 20.06.2006
Дык а гугль?
[url=http://www.delphifr.com/codes/FEUX-ARTIFICES_11799.aspx]вот есть[url] (проавда все на каком-то польском или чешском) Но внизу страницы файлы есть. Тока опять-же неадо регистрироваться :)
257
21 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
Hydra
просто не очень хочется из-за одного IDirectSound'а, что-то еще подключать.
кстати, спасибо всем кто принял участие в решении проблемы. с IDirectSound'ом я разобрался и добился того, что нужная функция проглатывает переменную определенную как var ids:IDirectSound и выдает необходимый результат, а IDirectSound я все же описал через interface.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог