TNB Library
TnbUsbHidFinder.h
[詳解]
1#pragma once
11#include "TnbUsbGuidFinder.h"
12#include "TnbUsbHidPathName.h"
13#include "TnbVector.h"
14
15
16
17//TNB Library
18namespace TNB
19{
20
21
22
36{
37 DEFSUPER(CAbstractUsbGuidFinder);
38 CUsbHidPathName m_hidName;
39protected:
46 virtual DWORD OnFound(LPCTSTR lpszDevicePath)
47 {
48 return m_hidName.SetPathName(lpszDevicePath);
49 }
54 virtual void OnClosed(void)
55 {
56 m_hidName.Empty();
57 }
58
59public:
60
62 CUsbHidFinder(void) : m_hidName()
63 {
64 }
65
71 bool Find(void)
72 {
73 GUID g;
75 return _super::Find(g);
76 }
77
83 bool FindMouseHid(void)
84 {
85 GUID g = { 0x378de44c, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd };
86 return _super::Find(g);
87 }
88
95 const CUsbHidPathName& Get(void) const
96 {
97 if ( ! _super::IsFinding() )
98 {
99 throw CEmptyException();
100 }
101 return m_hidName;
102 }
103
110 {
112 CUsbHidFinder fh;
113 if ( fh.Find() )
114 {
115 do
116 {
117 v.Add(fh.Get());
118 } while ( fh.Next() );
119 }
120 return v;
121 }
122
130 static CVectorT<CUsbHidPathName> FindPathNames(int iVendorId, int iProductId)
131 {
133 CUsbHidFinder fh;
134 if ( fh.Find() )
135 {
136 do
137 {
138 if ( fh.Get().GetVendorId() == iVendorId && fh.Get().GetProductId() == iProductId )
139 {
140 v.Add(fh.Get());
141 }
142 } while ( fh.Next() );
143 }
144 return v;
145 }
146};
147
148
149
150}; // TNB
DEVICE の検索関係のヘッダ
USB HIDのパスネーム情報管理関係のヘッダ
配列型情報管理関係のヘッダ
DEVICE 検索クラス
bool Next(void)
[検索] 次検索
取得要素(空き)無し例外
Definition: TnbException.h:107
hid.dll アクセスクラス
void HidD_GetHidGuid(LPGUID pHidGuid) const
[取得] HID GUID 取得.
USB-HID検索クラス
virtual DWORD OnFound(LPCTSTR lpszDevicePath)
[通知] 発見.
bool FindMouseHid(void)
[検索] 検索開始(Mouse指定)
bool Find(void)
[検索] 検索開始
CUsbHidFinder(void)
コンストラクタ
static CVectorT< CUsbHidPathName > FindPathNames(int iVendorId, int iProductId)
[取得] 指定 USB-HID パスネーム情報一覧.
const CUsbHidPathName & Get(void) const
[取得] 検索結果情報取得
static CVectorT< CUsbHidPathName > EnumPathNames(void)
[取得] USB-HID パスネーム情報一覧.
virtual void OnClosed(void)
[通知] クローズ.
USB-HIDパスネーム情報管理クラス
DWORD SetPathName(LPCTSTR lpszPathName)
[設定] パスネーム設定.
WORD GetProductId(void) const
[取得] プロダクトID取得
WORD GetVendorId(void) const
[取得] ベンダID取得
void Empty(void)
[設定] 情報なし
配列型情報管理テンプレート
Definition: TnbVector.h:75
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
Definition: TnbVector.h:383
TNB Library
Definition: TnbDoxyTitle.txt:2