Quote Originally Posted by Eduardo- View Post
I'm using some of your controls in a project so thank you very much.
I want to ask you what's the purpose of having two properties in the ScrollBar control: RightToLeft and RightToLeftLayout that need to be both set to True to set the direction RTL?
It's a complex story. Every control has it's unique treatment.
In general, when a RightToLeft = True then apply WS_EX_RTLREADING and if RightToLeft and RightToLeftLayout = True then apply only WS_EX_LAYOUTRTL.

Here is my internal documentation about the RightToLeft handling for each control:
Code:
> CoolBar
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; CDDS_PREPAINT in NM_CUSTOMDRAW SetTextAlign
  Extra  : RightToLeftLayout property
> LinkLabel
  dwMask : CDDS_PREPAINT in NM_CUSTOMDRAW SetTextAlign
  Extra  : InitReverse .Alignment; ToolTip
> DTPicker
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; EditHandle: WS_EX_RTLREADING
  Extra  : RightToLeftLayout property; Reverse .CalendarRightAligned; 
> MonthView
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property
> Pager  
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property
> ListView
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; WS_EX_RTLREADING
  Extra  : RightToLeftLayout property; ToolTip; HDF_RTLREADING
> ComboBoxW/FontCombo
  dwMask : WS_EX_RTLREADING Or WS_EX_RIGHT Or WS_EX_LEFTSCROLLBAR
  Extra  : Clear ES_RIGHT in .hWndEdit
> ImageCombo
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; WS_EX_RTLREADING Or WS_EX_RIGHT Or WS_EX_LEFTSCROLLBAR
  Extra  : RightToLeftLayout property; Clear ES_RIGHT in .hWndEdit
> ToolBar
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; TB_SETDRAWTEXTFLAGS DT_RTLREADING
  Extra  : RightToLeftLayout property; TPM_RIGHTALIGN+TPM_LAYOUTRTL in ShowButtonMenuItems; ToolTip; Call ReCreateToolBar
> Slider
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property; ToolTip; Call ReCreateSlider
> UpDown
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property
> ProgressBar
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property
> CommandLink
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; WS_EX_RTLREADING
  Extra  : RightToLeftLayout property
> Animation
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL
  Extra  : RightToLeftLayout property; Call ReCreateAnimation
> TreeView
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; TVS_RTLREADING
  Extra  : RightToLeftLayout property
> StatusBar
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; 0
  Extra  : RightToLeftLayout property; ToolTip; DrawPanel SetTextAlign
> TabStrip
  dwMask : RightToLeftLayout = True WS_EX_LAYOUTRTL; WS_EX_RTLREADING
  Extra  : RightToLeftLayout property; MapWindowPoints; ToolTip; Call ReCreateTabStrip
> SpinBox
  dwMask : Edit: WS_EX_RTLREADING; UpDown: 0
  Extra  : InitReverse/Reverse .Alignment; InitReverse/Reverse .TextAlignment; Remove .Orientation
> CheckBoxW
  dwMask : WS_EX_RTLREADING
  Extra  : InitReverse .Alignment; InitReverse/Reverse .TextAlignment; InitReverse/Reverse .ImageListAlignment
> CommandButtonW
  dwMask : WS_EX_RTLREADING
  Extra  : Reverse .Alignment; InitReverse/Reverse .ImageListAlignment; InitReverse/Reverse .SplitButtonAlignment
> LabelW
  dwMask : DT_RTLREADING
  Extra  : InitReverse .Alignment
> ListBoxW
  dwMask : WS_EX_RTLREADING Or WS_EX_RIGHT Or WS_EX_LEFTSCROLLBAR
  Extra  : vbListBoxCheckbox SetTextAlign
> FrameW
  dwMask : WS_EX_RTLREADING
  Extra  : InitReverse/Reverse .Alignment
> TextBoxW
  dwMask : WS_EX_RTLREADING Or WS_EX_LEFTSCROLLBAR
  Extra  : InitReverse .Alignment
> RichTextBox
  dwMask : WS_EX_RTLREADING Or WS_EX_RIGHT Or WS_EX_LEFTSCROLLBAR
  Extra  : Call ReCreateRichTextBox()
> OptionButtonW
  dwMask : WS_EX_RTLREADING
  Extra  : InitReverse .Alignment; InitReverse/Reverse .TextAlignment; InitReverse/Reverse .ImageListAlignment
Quote Originally Posted by Eduardo- View Post
I think it might be because you updated OLEGuids.tlb and I'm using an old version.
Yes, just copy/paste the new OLEGuids.tlb and replace the old one.