[DllImport("hid.dll", CharSet=CharSet.Auto, SetLastError=true)]
static extern Boolean HidD_GetManufacturerString(
SafeFileHandle HidDeviceObject,
StringBuilder Buffer,
Int32 BufferLength);
Declare Function HidD_GetManufacturerString Lib "hid.dll" (TODO) As TODO
None.
Do you know one? Please contribute it!
Note the use of CharSet.Auto in the DLL template.
Use of StringBuilder to create a variable to obtain the Manufacturer string instead of using MarshalAs. This approach is cleaner and doesn't require defining a Struct.
StringBuilder manufacturerString = new StringBuilder(128);
bool returnStatus = HidD_GetManufacturerString(hidHandle, manufacturerString, manufacturerString.Capacity);
if (returnStatus)
{
Console.WriteLine("Manufacturer name is {0}", manufacturerString.ToString());
}