Шаг 5 - Функция DirectDrawCreate

Первое что мы должны сделать, это создать объект DirectDraw. В любом языке программирования. Создаем мы объект для получения доступа к интерфейсу DirectDraw. тут один важный нюанс. При создании объекта мы должны указывать GUID драйвера. Но это если мы хотим работать с конкретной версией. Если его оставить NULL то будет выбрана текущая версия, которая установлена у Вас на компьютере. Кроме того данная функция вернет результат. Конечно мы хотим положительный результат. Ниже в зависимости от среды разработки мы создадим функцию InitDirectDraw которая будет производить создания объекта DirectDraw и возвращать успешность этой операции. Если не удалось создать объект DirectDraw, то что дальше то делать. Дальше часто предлагают произвести инсталляцию DirectX.

Visual Basic
Visual C++

Visual Basic

Описание функции
DirectX7.DirectDrawCreate метод создает объект DirectDraw7.

object.DirectDrawCreate(guid As String) As DirectDraw7

Параметры
Object
Объектная переменная к объекту DirectX7.
Guid
Адрес глобально уникального идентификатора (GUID), который представляет драйвер, который будет создан. Это может быть пустая строка, чтобы указать активный драйвер дисплея, или Вы можете передавать один из следующих флажков, чтобы ограничить активное поведение драйвера дисплея для целей отладки:

 
DDCREATE_EMULATIONONLY  	Объект DirectDraw использует эмуляцию для всех свойств, не будут использоваться 
			преимущества  аппаратных средств. 
DDCREATE_HARDWAREONLY   	Объект DirectDraw никогда не будет использовать свойства  не обеспечиваемые 
			аппаратными средствами. При попытке вызывать метод  который не поддерживается, вызов 
			терпит неудачу, возвращая DDERR_UNSUPPORTED.

Возвращаемое значение
Если метод успешен, ссылка к объекту DirectDraw7 возвращена.

Ошибки
Если создание не успешно, то будет сгенерирована ошибка и код установлен в Err.Number

Visual C++

Описание функции
Функция DirectDrawCreate создает образец объекта DirectDraw. Объект DirectDraw, созданный с этой функцией не поддерживает самый новый набор интерфейсов Direct3D. Чтобы создавать объект DirectDraw, способныe к использованию новых свойств Direct3D, используйте функцию DirectDrawCreateEx.

HRESULT WINAPI DirectDrawCreate
(
  GUID FAR *lpGUID,        
  LPDIRECTDRAW FAR *lplpDD,  
  IUnknown FAR *pUnkOuter  
); 

Параметры
lpGUID
Адрес глобально уникального идентификатора (GUID), который представляет драйвер, который будет создан. Может быть NULL, чтобы указать активный драйвер дисплея, или Вы можете передавать один из следующих флажков, чтобы ограничить активное поведение драйвера дисплея для отладки целей:

lplpDD
Адрес переменной, которая будет установлена к допустимому IDirectDraw указателю интерфейса, если вызов функции удачный.
pUnkOuter
Учитывает будущую совместимость с COM свойствами агрегации. Сейчас этот метод возвращает ошибку, если этот параметр не NULL.

Возвращаемое значение.
Если функция успешна, возвращаемое значение - DD_OK.
Если она терпит неудачу, функция может возвращать одно из следующих значений ошибки:

DDERR_DIRECTDRAWALREADYCREATED  
DDERR_GENERIC  
DDERR_INVALIDDIRECTDRAWGUID  
DDERR_INVALIDPARAMS  
DDERR_NODIRECTDRAWHW  
DDERR_OUTOFMEMORY  

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.