public void Set(Guid* pguid, IntPtr dib, DIDFT didft, DIDOI flags) { this.dwOfs = (int)dib; this.dwType = (int)didft; this.dwFlags = (int)flags; if (null == pguid) { FreeGuid(); } else { AllocGuid(); *(this.pguid) = *pguid; } }
public List<DIDEVICEOBJECTINSTANCE> EnumObjects(DIDFT flags) { List<DIDEVICEOBJECTINSTANCE> result = new List<DIDEVICEOBJECTINSTANCE>(); // DIEnumDeviceObjectsCallback callback = new DIEnumDeviceObjectsCallback(EnumObjectsCallback); GCHandle hCallback = GCHandle.Alloc(callback); GCHandle hResult = GCHandle.Alloc(result); try { IntPtr pfn = Marshal.GetFunctionPointerForDelegate(callback); this.pInputDevice.EnumObjects(pfn, GCHandle.ToIntPtr(hResult), flags); } finally { hCallback.Free(); hResult.Free(); } // return result; }
public void Set(ref Guid guid, IntPtr dib, DIDFT didft, DIDOI flags) { fixed (Guid* pguid = &guid) { Set(pguid, dib, didft, flags); } }