次は「SensorsYurexDriver.idl」ファイルです。先ほどのGUID Generatorでまた新しいGUIDを生成して、2カ所のuuidから始まる行を書き換えましょう。併せて、libraryとcoclassの2行も書き換えておきます。
library SensorsYurexDriverLib
coclass SensorsYurexDriver
「SensorsYurexDriver.ctl」を開きます。これは1行しかないファイルです。「internal.h」ファイルに書いたGUIDと同じGUIDを指定します。
47AF43CD-7CF4-4E49-AAC0-CAA12C2C0B6F SensorsYurexDriverTraceControl
やっとここから、ちょっと実装に入れます。「Defines.h」を開いて、HIDのレポートの形式をデバイスで決められたフォーマットに書き換えます。
YUREXの場合、以下のようにしておきます。
typedef struct _OUT_STRUCT {
BYTE command_id;
BYTE datas[7];
} OUT_STRUCT;
typedef struct _IN_STRUCT {
BYTE command_id;
BYTE datas[7];
} IN_STRUCT;
HIDのレポートの形式を変更したので、このままだとビルドエラーが出ます。「SensorDdi.cpp」を開いて不要な行を削ってしまいましょう。とりあえずsend_report.device_idとsend_report.sensor_idを指定している行は必要なさそうです。
ほかには、
if (TRUE == IsEqualPropertyKey(Key, SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL))
から始まるブロックも今回は使いません。あとで機能を拡張するときには、このブロックでいろいろ操作することになります。