Получив указатель на интерфейс устройства, мы можем установить уровень совместного доступа. Несмотря на то, что DirectInput сам устанавливает уровень доступа по умолчанию, лучше эту функцию все-таки вызвать. Тут есть ряд тонкостей, например при вызове этой функции передается дескриптор окна, который может впоследствии понадобиться при выполнении определенных действий (например, настройка джойстика).
Visual Basic Параметры Следующие комбинации имеют силу:
Ошибки Параметры Приложение должно обязательно определить DISCL_FOREGROUND или DISCL_BACKGROUND и обязательно DISCL_EXCLUSIVE или DISCL_NONEXCLUSIVE.
Возвращаемое значение.
Visual C++
Visual Basic
object.SetCooperativeLevel(hwnd As Long, flags As CONST_DISCLFLAGS)
object
Объектная переменная типа DirectInputDevice
hwnd
Дескриптор окна связанный с устройством.
flags
Флаг совместного доступа:
DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND все
DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND все
DISCL_EXCLUSIVE Or DISCL_BACKGROUND джойстик
DISCL_EXCLUSIVE Or DISC_FOREGROUND все
Если создание не успешно, то будет сгенерирована ошибка и код установлен в Err.Number в одно из следующих значений
DIERR_INVALIDPARAM
DIERR_INVALIDHANDLE
Visual C++
HRESULT SetCooperativeLevel
(
HWND hwnd,
DWORD dwFlags
);
hwnd
Дескриптор окна связанный с устройством.
flags
Флаг совместного доступа:
Если вызов успешный функция возвращает DI_OK. Иначе один из следующих кодов ошибки.
DIERR_INVALIDPARAM
DIERR_NOTINITIALIZED
E_HANDLE