Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Struktur DIJOYTYPEINFO berisi informasi tentang jenis joystick.
Sintaks
typedef struct DIJOYTYPEINFO {
DWORD dwSize;
JOYREGHWSETTINGS hws;
CLSID clsidConfig;
WCHAR wszDisplayName[MAX_JOYSTRING];
WCHAR wszCallout[MAX_JOYSTICKOEMVXDNAME];
WCHAR wszHardwareId[MAX_JOYSTRING];
DWORD dwFlags1;
DWORD dwFlags2;
WCHAR wszMapFile[MAX_JOYSTRING];
} DIJOYTYPEINFO, *LPDIJOYTYPEINFO;
Anggota
dwSize
Menentukan ukuran struktur dalam byte. Anggota ini harus diinisialisasi sebelum struktur digunakan.
hws
Pengaturan perangkat keras Joystick.
clsidConfig
Menentukan CLSID untuk objek konfigurasi jenis joystick. Teruskan CLSID ini ke CoCreateInstance untuk membuat objek konfigurasi. Bidang ini nol jika jenis tidak memiliki konfigurasi kustom.
wszDisplayName[MAX_JOYSTRING]
Nama tampilan untuk jenis joystick. Nama tampilan adalah nama yang harus digunakan untuk menampilkan nama jenis joystick kepada pengguna akhir.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
Perangkat yang bertanggung jawab untuk menangani polling untuk perangkat jenis ini. Ini adalah string null jika callout polling global akan digunakan.
wszHardwareId[MAX_JOYSTRING]
ID perangkat keras untuk jenis joystick. ID perangkat keras digunakan oleh Plug and Play pada Windows 2000 dan Windows 98 (hanya DirectX 7.0) untuk menemukan driver untuk joystick.
dwFlags1
Bendera jenis Joystick. Anggota ini dapat diatur ke kombinasi bendera berikut.
JOYTYPE_ZEROGAMEENUMOEMDATA
Bidang data OEM Zero GameEnum.
JOYTYPE_NOAUTODETECTGAMEPORT
Perangkat tidak mendukung olahraga permainan Autodetect.
JOYTYPE_NOHIDDIRECT
Jangan gunakan HID secara langsung untuk perangkat ini. (Hanya Windows 98.)
JOYTYPE_DEFAULTPROPSHEET
CPL mengambil alih lembar properti kustom.
dwFlags2
Kombinasi pemfilteran perangkat dan bendera penimpaan jenis/subjenis perangkat. Bendera pemfilteran perangkat harus ditempatkan di WORD tinggi dwFlags2. Jenis perangkat dan subjenis masing-masing harus ditempatkan di WORD anggota yang rendah dan tinggi.
Bendera Pemfilteran Perangkat
Sembunyikan perangkat yang tidak diklasifikasikan.
JOYTYPE_MOUSEHIDE
Sembunyikan tikus.
JOYTYPE_KEYBHIDE
Sembunyikan keyboard.
JOYTYPE_GAMEHIDE
Sembunyikan pengontrol permainan.
JOYTYPE_HIDEACTIVE
Sembunyikan bendera aktif. Bendera ini harus disertakan jika ada bendera sembunyikan lainnya yang ditentukan.
Jenis Perangkat dan Bendera Penimpaan Subjenis
| Jenis Perangkat | Subjenis Perangkat |
|---|---|
| DI8DEVTYPE_1STPERSON | DI8DEVTYPE1STPERSON_LIMITED |
| DI8DEVTYPE1STPERSON_UNKNOWN | |
| DI8DEVTYPE1STPERSON_SIXDOF | |
| DI8DEVTYPE1STPERSON_SHOOTER | |
| DI8DEVTYPE_DEVICE | n/a |
| DI8DEVTYPE_DEVICECTRL | DI8DEVTYPEDEVICECTRL_UNKNOWN |
| DI8DEVTYPEDEVICECTRL_COMMSSELECTION | |
| DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED | |
| DI8DEVTYPE_DRIVING | DI8DEVTYPEDRIVING_LIMITED |
| DI8DEVTYPEDRIVING_COMBINEDPEDALS | |
| DI8DEVTYPEDRIVING_DUALPEDALS | |
| DI8DEVTYPEDRIVING_THREEPEDALS | |
| DI8DEVTYPEDRIVING_HANDHELD | |
| DI8DEVTYPE_FLIGHT | DI8DEVTYPEFLIGHT_LIMITED |
| DI8DEVTYPEFLIGHT_STICK | |
| DI8DEVTYPEFLIGHT_YOKE | |
| DI8DEVTYPEFLIGHT_RC | |
| DI8DEVTYPE_GAMEPAD | DI8DEVTYPEGAMEPAD_LIMITED |
| DI8DEVTYPEGAMEPAD_STANDARD | |
| DI8DEVTYPEGAMEPAD_TILT | |
| DI8DEVTYPE_JOYSTICK | DI8DEVTYPEJOYSTICK_LIMITED |
| DI8DEVTYPEJOYSTICK_STANDARD | |
| DI8DEVTYPEJOYSTICK_ENHANCED | |
| DI8DEVTYPE_KEYBOARD | DI8DEVTYPEKEYBOARD_UNKNOWN |
| DI8DEVTYPEKEYBOARD_PCXT | |
| DI8DEVTYPEKEYBOARD_OLIVETTI | |
| DI8DEVTYPEKEYBOARD_PCAT | |
| DI8DEVTYPEKEYBOARD_PCENH | |
| DI8DEVTYPEKEYBOARD_NOKIA1050 | |
| DI8DEVTYPEKEYBOARD_NOKIA9140 | |
| DI8DEVTYPEKEYBOARD_NEC98 | |
| DI8DEVTYPEKEYBOARD_NEC98LAPTOP | |
| DI8DEVTYPEKEYBOARD_NEC98106 | |
| DI8DEVTYPEKEYBOARD_JAPAN106 | |
| DI8DEVTYPEKEYBOARD_JAPANAX | |
| DI8DEVTYPEKEYBOARD_J3100 | |
| DI8DEVTYPE_MOUSE | DI8DEVTYPEMOUSE_UNKNOWN |
| DI8DEVTYPEMOUSE_TRADITIONAL | |
| DI8DEVTYPEMOUSE_FINGERSTICK | |
| DI8DEVTYPEMOUSE_TOUCHPAD | |
| DI8DEVTYPEMOUSE_TRACKBALL | |
| DI8DEVTYPEMOUSE_ABSOLUTE | |
| DI8DEVTYPE_REMOTE | DI8DEVTYPEREMOTE_UNKNOWN |
| DI8DEVTYPE_SCREENPOINTER | DI8DEVTYPESCREENPTR_UNKNOWN |
| DI8DEVTYPESCREENPTR_LIGHTGUN | |
| DI8DEVTYPESCREENPTR_LIGHTPEN | |
| DI8DEVTYPESCREENPTR_TOUCH | |
| DI8DEVTYPE_SUPPLEMENTAL | DI8DEVTYPESUPPLEMENTAL_UNKNOWN |
| DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER | |
| DI8DEVTYPESUPPLEMENTAL_HEADTRACKER | |
| DI8DEVTYPESUPPLEMENTAL_HANDTRACKER | |
| DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE | |
| DI8DEVTYPESUPPLEMENTAL_SHIFTER | |
| DI8DEVTYPESUPPLEMENTAL_THROTTLE | |
| DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE | |
| DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS | |
| DI8DEVTYPESUPPLEMENTAL_DUALPEDALS | |
| DI8DEVTYPESUPPLEMENTAL_THREEPEDALS | |
| DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS |
wszMapFile[MAX_JOYSTRING]
Keterangan
"Jenis joystick" menjelaskan bagaimana DirectInput harus berkomunikasi dengan perangkat dan bagaimana seharusnya melaporkan data perangkat. Misalnya, "Frobozz Industries SuperStick 5X adalah joystick tiga sumbu, lima tombol dengan sumbu ketiga yang dilaporkan sebagai bit pertama pada port kedua."
DirectInput dilengkapi dengan jenis joystick yang telah ditentukan sebelumnya berikut, semuanya dengan sumbu di lokasi defaultnya:
- Dua sumbu, dua tombol joystick.
- Pad permainan dua tombol.
- Dua tombol penerbangan yoke.
- Penerbangan dua tombol yoke dengan pembatasan.
- Tiga sumbu, dua tombol joystick.
- Tiga sumbu, empat tombol joystick.
- Pad permainan empat tombol.
- Empat tombol kuk penerbangan.
- Penerbangan empat tombol yoke dengan pembatasan.
Baru di DirectX 8.0
Anggota dwFlags2 ditambahkan ke struktur DIJOYCONFIG. Anggota ini membawa informasi yang mengontrol bagaimana DirectInput menghitung perangkat ke aplikasi. Anggota dwFlags2 membawa bendera penimpaan jenis perangkat dan subjenis dalam kata rendah, dan bendera "menyembunyikan" enumerasi perangkat dalam kata tinggi. Jenis perangkat dan bendera penimpaan subjenis mengontrol bagaimana DirectInput memerankan perangkat Anda ke aplikasi yang menggunakan DirectInput. Ini adalah bendera yang sama dengan yang diterima aplikasi dari DirectInput selama enumerasi perangkat. Misalnya, jika perangkat Anda dijelaskan dalam firmware-nya sebagai perangkat telepon, biasanya tidak akan dijumlahkan ke game karena perangkat telepon tidak dianggap relevan dengan game. Namun, jika Anda menggunakan DI8DEVTYPE_DEVICECTRL dan DI8DEVTYPEDEVICECONTROL_COMMSSELECTION untuk menggambarkan perangkat ini, DirectInput mengambil alih data yang diambilnya dari firmware dan menghitung perangkat ke game.
Kata tinggi dwFlags2 dapat diatur untuk berisi bendera yang mencakup bagaimana DirectInput menghitung perangkat ke aplikasi DirectInput. Misalnya, beberapa perangkat mendeklarasikan beberapa koleksi HID tingkat atas. Perangkat semacam itu mungkin menyatakan bahwa perangkat dapat bertindak sebagai keyboard, mouse, dan joystick semuanya dalam satu. Umumnya, satu atau beberapa koleksi tingkat atas ini hanyalah perangkat phantom, yang seharusnya tidak dijumlahkan ke game. Untuk perangkat ini, kata tinggi dwFlags2 dapat diatur ke kombinasi bendera JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE, dan JOYTYPE_KEYBHIDE. Bendera JOYTYPE_HIDEACTIVE menunjukkan bahwa DirectInput tidak boleh menghitung perangkat berdasarkan semua jenisnya. Bendera JOYTYPE_MOUSEHIDE dan JOYTYPE_KEYBHIDE juga ada dalam kata tinggi menunjukkan kepada DirectInput bahwa enumerasi mouse dan keyboard phantom pada perangkat harus ditekan. Perhatikan bahwa aplikasi dapat menyertakan bendera DIEDFL_INCLUDEHIDDEN (dijelaskan dalam dokumentasi Microsoft Windows SDK) untuk menghitung perangkat, meskipun disembunyikan.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Header | dinputd.h |