Beispiel #1
0
 internal static extern bool GetWindowInfo(HandleRef hwnd, out WINDOWINFO pwi);
      private bool FileDialogEnumWindowCallBack(IntPtr hwnd, int lParam)
      {
        StringBuilder className = new StringBuilder(256);
        NativeMethods.GetClassName(new HandleRef(this, hwnd), className, className.Capacity);
        int controlID = NativeMethods.GetDlgCtrlID(hwnd);
        WINDOWINFO windowInfo;
        NativeMethods.GetWindowInfo(new HandleRef(this, hwnd), out windowInfo);

        // Dialog Window
        if (className.ToString().StartsWith("#32770"))
        {
          _BaseDialogNative = new MSFileDialogWrapper(_CustomControl);
          _BaseDialogNative.AssignHandle(hwnd);
          return true;
        }

        switch ((ControlsId)controlID)
        {
          case ControlsId.DefaultView:
            _CustomControl._hListViewPtr = hwnd;
            NativeMethods.GetWindowInfo(new HandleRef(this, hwnd), out _ListViewInfo);
            _CustomControl.UpdateListView();
            break;
          case ControlsId.ComboFolder:
            _ComboFolders = hwnd;
            _ComboFoldersInfo = windowInfo;
            break;
          case ControlsId.ComboFileType:
            _hComboExtensions = hwnd;
            _ComboExtensionsInfo = windowInfo;
            break;
          case ControlsId.ComboFileName:
            //if (className.ToString().ToLower() == "comboboxex32")
            //{
            _hComboFileName = hwnd;
            _ComboFileNameInfo = windowInfo;
            _CustomControl._hFileName = hwnd;
            //}
            break;
          case ControlsId.GroupFolder:
            _hGroupButtons = hwnd;
            _GroupButtonsInfo = windowInfo;
            break;
          case ControlsId.LeftToolBar:
            _hToolBarFolders = hwnd;
            _ToolBarFoldersInfo = windowInfo;
            break;
          case ControlsId.ButtonOk:
            _hOKButton = hwnd;
            _OKButtonInfo = windowInfo;
            _CustomControl._hOKButton = hwnd;
            //Win32Types.NativeMethods.EnableWindow(_hOKButton, false);
            break;
          case ControlsId.ButtonCancel:
            _hCancelButton = hwnd;
            _CancelButtonInfo = windowInfo;
            break;
          case ControlsId.ButtonHelp:
            _hHelpButton = hwnd;
            _HelpButtonInfo = windowInfo;
            break;
          case ControlsId.CheckBoxReadOnly:
            _hChkReadOnly = hwnd;
            _ChkReadOnlyInfo = windowInfo;
            break;
          case ControlsId.LabelFileName:
            _hLabelFileName = hwnd;
            _LabelFileNameInfo = windowInfo;
            break;
          case ControlsId.LabelFileType:
            _hLabelFileType = hwnd;
            _LabelFileTypeInfo = windowInfo;
            break;
        }

        return true;
      }