public bool capDriverGetCaps(IntPtr hwnd, ref CAPDRIVERCAPS capDriverCaps, int sizeOfCapDriverCapsIs44Bytes) { if (true == IsWindow(hwnd)) { int sizeOfCAPDRIVERCAPSInBytes = 44; if (IntPtr.Zero == mPersistingUnmanagedMemoryForCapDriverCapsResult) { mPersistingUnmanagedMemoryForCapDriverCapsResult = System.Runtime.InteropServices.Marshal.AllocHGlobal(sizeOfCAPDRIVERCAPSInBytes); } int result = 0; result = SendMessage(hwnd, WM_CAP_DRIVER_GET_CAPS, sizeOfCAPDRIVERCAPSInBytes, mPersistingUnmanagedMemoryForCapDriverCapsResult.ToInt32( )); if (0 == result) { return(false); } // Copy the raw byte data to a CAPDRIVERCAPS structure if (IntPtr.Zero != mPersistingUnmanagedMemoryForCapDriverCapsResult) { System.Runtime.InteropServices.Marshal.PtrToStructure ( mPersistingUnmanagedMemoryForCapDriverCapsResult, (object)capDriverCaps ); } return(true); } return(false); }
public static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, ref CAPDRIVERCAPS lParam);
public static bool capDriverGetCaps(IntPtr lwnd, ref CAPDRIVERCAPS psCaps, int wSize) { return SendMessage(lwnd, WM_CAP_DRIVER_GET_CAPS, wSize, ref psCaps); }