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);
      }
    }