コード例 #1
0
 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;
         }
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 public void Set(ref Guid guid, IntPtr dib, DIDFT didft, DIDOI flags)
 {
     fixed (Guid* pguid = &guid)
         {
         Set(pguid, dib, didft, flags);
         }
 }