Как восстановить свёрнутые и развёрнутые окна программно?

 
Есть окно кидаем скрипт. Разворачиваются свёрнутые и восстанавливаются развёрнутые окна. Как это сделать? Спасибо.
 
//Script Restore all Window
#import "user32.dll"
int GetParent(int hWnd);
int SendMessageW(int hWnd,int Msg,int wParam,int lParam);
#import

//+------------------------------------------------------------------+
//| Restore Window size                                              |
//+------------------------------------------------------------------+
int WindowRestore(int hwnd)
  {
   int Parent=GetParent(hwnd);
   return SendMessageW(GetParent(Parent), 0x0223, Parent, 0);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   long currChart=ChartFirst();

   while(true)
     {
      int hWnd=ChartWindowsHandle(currChart);
      WindowRestore(hWnd);
      ChartRedraw(currChart);
      if(ChartNext(currChart)<0)
         break;
      else
        {
         currChart=ChartNext(currChart);
        }
     }
     Comment("Script Complete");
  }
//+------------------------------------------------------------------+
//| Get Handle from ID Chart                                         |
//+------------------------------------------------------------------+
int ChartWindowsHandle(const long chart_ID=0)
  {
//--- prepare the variable to get the property value
   long result=-1;
//--- reset the error value
   ResetLastError();
//--- receive the property value
   if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result))
     {
      //--- display the error message in Experts journal
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- return the value of the chart property
   return((int)result);
  }

Вроде бы родил что-то. Кажись работает.

Скрипт восстанавливает все окна. Спасибо всем за внимание.

Можно закрывать вопрос.

Файлы:
 
Роман:
Есть окно кидаем скрипт. Разворачиваются свёрнутые и восстанавливаются развёрнутые окна. Как это сделать? Спасибо.

CHART_IS_MAXIMIZED

Окно графика развернуто

bool

CHART_IS_MINIMIZED

Окно графика свернуто

bool

 
Vitaly Muzichenko:

CHART_IS_MAXIMIZED

Окно графика развернуто

bool

CHART_IS_MINIMIZED

Окно графика свернуто

bool

Виталий, а разворачивать будет? Там же ведь функция которая определяет свёрнуто или развёрнуто окно. Или может я что-то не понял???

Вот простая функция, которая восстанавливает. Кому нужно.

#import "user32.dll"
int GetParent(int hWnd);
int SendMessageW(int hWnd,int Msg,int wParam,int lParam);
#import
//+------------------------------------------------------------------+
//| Restore Window size                                              |
//+------------------------------------------------------------------+
int WindowRestore(long ID_Chart)
  {
     long result=-1;
     
     if(!ChartGetInteger(ID_Chart,CHART_WINDOW_HANDLE,0,result))
     {
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
     
   int Parent=GetParent((int)result);
   return SendMessageW(GetParent(Parent), 0x0223, Parent, 0);
  }