private bool GetMenuTitle(out DD_CAM_MENU_TITLE MenuTitle) { MenuTitle = new DD_CAM_MENU_TITLE(); IKsControl pControl = CiFilter as IKsControl; if (pControl == null) { return(false); } KSMETHOD KsProperty = new KSMETHOD(KSPROPERTYSET_DD_COMMON_INTERFACE, (Int32)KSPROPERTY_DD_COMMON_INTERFACE.KSPROPERTY_DD_CAM_MENU_TITLE, KSPROPERTY_TYPE_GET); Int32 ulMenuSize = Marshal.SizeOf(MenuTitle); Int32 dwReturned = 0; // Initialize unmanged memory to hold the struct. IntPtr pTitle = Marshal.AllocHGlobal(Marshal.SizeOf(MenuTitle)); try { Int32 hr = pControl.KsProperty(ref KsProperty, Marshal.SizeOf(KsProperty), pTitle, ulMenuSize, ref dwReturned ); if (hr != 0 || dwReturned != ulMenuSize) { return(false); } MenuTitle = (DD_CAM_MENU_TITLE)Marshal.PtrToStructure(pTitle, typeof(DD_CAM_MENU_TITLE)); return(true); } finally { // Free the unmanaged memory. Marshal.FreeHGlobal(pTitle); } }
private bool GetMenuTitle(out DD_CAM_MENU_TITLE MenuTitle) { MenuTitle = new DD_CAM_MENU_TITLE(); IKsControl pControl = CiFilter as IKsControl; if (pControl == null) return false; KSMETHOD KsProperty = new KSMETHOD(KSPROPERTYSET_DD_COMMON_INTERFACE, (Int32)KSPROPERTY_DD_COMMON_INTERFACE.KSPROPERTY_DD_CAM_MENU_TITLE, KSPROPERTY_TYPE_GET); Int32 ulMenuSize = Marshal.SizeOf(MenuTitle); Int32 dwReturned = 0; // Initialize unmanged memory to hold the struct. IntPtr pTitle = Marshal.AllocHGlobal(Marshal.SizeOf(MenuTitle)); try { Int32 hr = pControl.KsProperty(ref KsProperty, Marshal.SizeOf(KsProperty), pTitle, ulMenuSize, ref dwReturned ); if (hr != 0 || dwReturned != ulMenuSize) return false; MenuTitle = (DD_CAM_MENU_TITLE)Marshal.PtrToStructure(pTitle, typeof (DD_CAM_MENU_TITLE)); return true; } finally { // Free the unmanaged memory. Marshal.FreeHGlobal(pTitle); } }