Esempio n. 1
0
 internal int GetPropertyDataSize(uint propertyId, Edsdk.EdsDataType expectedDataType)
 {
     return(this.ExecuteGetter(() =>
     {
         int dataSize;
         Edsdk.EdsDataType dataType;
         Util.Assert(Edsdk.EdsGetPropertySize(this.Handle, propertyId, 0, out dataType, out dataSize),
                     "Failed to get property size.", propertyId);
         //Util.AssertIf(expectedDataType != dataType, "DataType mismatch: Expected <{0}>, Actual <{1}>", expectedDataType, dataType);
         return dataSize;
     }));
 }
Esempio n. 2
0
 internal T GetPropertyStruct <T>(uint propertyId, Edsdk.EdsDataType expectedDataType) where T : struct
 {
     return(this.ExecuteGetter(() =>
     {
         var dataSize = this.GetPropertyDataSize(propertyId, expectedDataType);
         var ptr = Marshal.AllocHGlobal(dataSize);
         try
         {
             Util.Assert(Edsdk.EdsGetPropertyData(this.Handle, propertyId, 0, dataSize, ptr),
                         "Failed to get required struct.", propertyId);
             return (T)Marshal.PtrToStructure(ptr, typeof(T));
         }
         finally
         {
             Marshal.FreeHGlobal(ptr);
         }
     }));
 }