Changeset 377 for trunk/dll/common.c


Ignore:
Timestamp:
Jul 27, 2006, 8:28:31 AM (19 years ago)
Author:
root
Message:

Validate WinCreateWindow

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/common.c

    r348 r377  
    5151                                     ULONG msg,
    5252                                     MPARAM mp1,
    53                                      MPARAM mp2) {
    54 
     53                                     MPARAM mp2)
     54{
    5555  PFNWP oldproc = (PFNWP)WinQueryWindowPtr(hwnd,0);
    5656
     
    145145                                 ULONG msg,
    146146                                 MPARAM mp1,
    147                                  MPARAM mp2) {
    148 
     147                                 MPARAM mp2)
     148{
    149149  switch(msg) {
    150150    case WM_CREATE:
     
    172172
    173173
    174 void CommonTextPaint (HWND hwnd,HPS hps) {
    175 
     174void CommonTextPaint (HWND hwnd,HPS hps)
     175{
    176176  int x;
    177177  USHORT ids[]   = {DIR_FOLDERICON,DIR_TOTALS,DIR_SELECTED,DIR_VIEW,
     
    187187
    188188
    189 void CommonCreateTextChildren (HWND hwnd,char *class,USHORT *ids) {
    190 
     189void CommonCreateTextChildren (HWND hwnd,char *class,USHORT *ids)
     190{
    191191  int   x;
    192192  CHAR  s[33];
    193193  ULONG attrs;
    194 
    195   if(!hwnd || !class || !ids)
     194  HWND hwndTmp;
     195
     196  if (!hwnd || !class || !ids) {
     197    Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT);
    196198    return;
     199  }
    197200
    198201  for(x = 0;ids[x];x++) {
     
    213216        break;
    214217    }
    215     WinCreateWindow(hwnd,class,s,attrs,0,0,0,0,hwnd,
    216                     HWND_TOP,ids[x],NULL,NULL);
    217   }
     218    hwndTmp = WinCreateWindow(hwnd,class,s,attrs,0,0,0,0,hwnd,
     219                              HWND_TOP,ids[x],NULL,NULL);
     220    if (!hwndTmp)
     221      Win_Error2(hwnd,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     222  } // for
    218223}
    219224
    220225
    221 void CommonDriveCmd (HWND hwnd,char *drive,USHORT cmd) {
    222 
     226void CommonDriveCmd (HWND hwnd,char *drive,USHORT cmd)
     227{
    223228  char dv[CCHMAXPATH];
    224229
     
    390395
    391396
    392 void CommonCreateMainChildren (HWND hwnd,SWP *swp) {
    393 
    394   hwndStatus = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     397void CommonCreateMainChildren (HWND hwnd,SWP *swp)
     398{
     399  HWND hwndFrame = WinQueryWindow(hwnd,QW_PARENT);
     400  HWND hwndTmp;
     401  PFNWP oldproc;
     402
     403  // Create a children of frame window
     404  hwndStatus = WinCreateWindow(hwndFrame,
    395405                               GetPString(IDS_WCSTATUS),
    396406                               "Status",
     
    407417                                                  SV_CXSIZEBORDER) * 2),
    408418                               20,
    409                                WinQueryWindow(hwnd,QW_PARENT),
     419                               hwndFrame,
    410420                               HWND_TOP,
    411421                               MAIN_STATUS,
    412422                               NULL,
    413423                               NULL);
    414   hwndStatus2 = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     424  if (!hwndStatus)
     425    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     426
     427  hwndStatus2 = WinCreateWindow(hwndFrame,
    415428                                GetPString(IDS_WCSTATUS),
    416429                                "Status2",
     
    427440                                                   SV_CXSIZEBORDER) * 2),
    428441                                20,
    429                                 WinQueryWindow(hwnd,QW_PARENT),
     442                                hwndFrame,
    430443                                HWND_TOP,
    431444                                MAIN_STATUS2,
    432445                                NULL,
    433446                                NULL);
    434 
    435   hwndAttr = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     447  if (!hwndStatus2)
     448    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     449
     450  hwndAttr = WinCreateWindow(hwndFrame,
    436451                             GetPString(IDS_WCSTATUS),
    437452                             "Attr",
     
    448463                                                SV_CXSIZEBORDER) * 2),
    449464                             20,
    450                              WinQueryWindow(hwnd,QW_PARENT),
     465                             hwndFrame,
    451466                             HWND_TOP,
    452467                             IDM_ATTRS,
    453468                             NULL,
    454469                             NULL);
    455   hwndDate = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     470  if (!hwndAttr)
     471    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     472
     473  hwndDate = WinCreateWindow(hwndFrame,
    456474                             GetPString(IDS_WCSTATUS),
    457475                             "Date",
     
    468486                                                SV_CXSIZEBORDER) * 2),
    469487                             20,
    470                              WinQueryWindow(hwnd,QW_PARENT),
     488                             hwndFrame,
    471489                             HWND_TOP,
    472490                             IDM_INFO,
    473491                             NULL,
    474492                             NULL);
    475   hwndName = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     493  if (!hwndDate)
     494    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     495
     496  hwndName = WinCreateWindow(hwndFrame,
    476497                             GetPString(IDS_WCSTATUS),
    477498                             "Name",
     
    488509                                                SV_CXSIZEBORDER) * 2),
    489510                             20,
    490                              WinQueryWindow(hwnd,QW_PARENT),
     511                             hwndFrame,
    491512                             HWND_TOP,
    492513                             IDM_RENAME,
    493514                             NULL,
    494515                             NULL);
    495 
    496   WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     516  if (!hwndName)
     517    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     518
     519  hwndTmp = WinCreateWindow(hwndFrame,
    497520                  GetPString(IDS_WCTOOLBACK),
    498521                  NullStr,
     
    508531                                     SV_CXSIZEBORDER) * 2),
    509532                  30,
    510                   WinQueryWindow(hwnd,QW_PARENT),
     533                  hwndFrame,
    511534                  HWND_TOP,
    512535                  MAIN_TOOLS,
    513536                  NULL,
    514537                  NULL);
    515   hwndBack = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     538  if (!hwndTmp)
     539    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     540
     541  hwndBack = WinCreateWindow(hwndFrame,
    516542                             GetPString(IDS_WCDRIVEBACK),
    517543                             NullStr,
     
    527553                                                SV_CXSIZEBORDER) * 2),
    528554                             30,
    529                              WinQueryWindow(hwnd,QW_PARENT),
     555                             hwndFrame,
    530556                             HWND_TOP,
    531557                             MAIN_DRIVES,
     
    533559                             NULL);
    534560
    535   hwndLED = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     561  if (!hwndBack)
     562    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     563
     564  hwndLED = WinCreateWindow(hwndFrame,
    536565                            GetPString(IDS_WCLED),
    537566                            "#920",
     
    541570                            12,
    542571                            12,
    543                             WinQueryWindow(hwnd,QW_PARENT),
     572                            hwndFrame,
    544573                            HWND_TOP,
    545574                            MAIN_LED,
    546575                            NULL,
    547576                            NULL);
    548   hwndLEDHdr = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     577  if (!hwndLED)
     578    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     579
     580  hwndLEDHdr = WinCreateWindow(hwndFrame,
    549581                               GetPString(IDS_WCLED),
    550582                               "0",
     
    555587                               12,
    556588                               12,
    557                                WinQueryWindow(hwnd,QW_PARENT),
     589                               hwndFrame,
    558590                               HWND_TOP,
    559591                               MAIN_LEDHDR,
    560592                               NULL,
    561593                               NULL);
    562   hwndAutoview = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
     594  if (!hwndLEDHdr)
     595    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     596
     597  hwndAutoview = WinCreateWindow(hwndFrame,
    563598                                 GetPString(IDS_WCAUTOVIEW),
    564599                                 NullStr,
     
    575610                                                    SV_CXSIZEBORDER) * 2),
    576611                                 48,
    577                                  WinQueryWindow(hwnd,QW_PARENT),
     612                                 hwndFrame,
    578613                                 HWND_TOP,
    579614                                 MAIN_AUTOVIEW,
    580615                                 NULL,
    581616                                 NULL);
    582   hwndAutoMLE = WinCreateWindow(WinQueryWindow(hwnd,QW_PARENT),
    583 //                                GetPString(IDS_WCAUTOVIEW),
     617  if (!hwndAutoview)
     618    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     619
     620  hwndAutoMLE = WinCreateWindow(hwndFrame,
     621                                // GetPString(IDS_WCAUTOVIEW),
    584622                                WC_MLE,
    585623                                NullStr,
     
    596634                                                   SV_CXSIZEBORDER) * 2),
    597635                                48,
    598                                 WinQueryWindow(hwnd,QW_PARENT),
     636                                hwndFrame,
    599637                                HWND_TOP,
    600638                                MAIN_AUTOVIEWMLE,
    601639                                NULL,
    602640                                NULL);
    603   {
    604     PFNWP oldproc;
    605 
    606     oldproc = WinSubclassWindow(hwndAutoMLE,(PFNWP)AutoViewProc);
    607     WinSetWindowPtr(hwndAutoMLE,0,(PVOID)oldproc);
    608     PostMsg(hwndAutoMLE,
    609             UM_SETUP,
    610             MPVOID,
    611             MPVOID);
    612   }
     641  if (!hwndAutoMLE)
     642    Win_Error2(hwndFrame,hwnd,pszSrcFile,__LINE__,IDS_WINCREATEWINDOW);
     643
     644  oldproc = WinSubclassWindow(hwndAutoMLE,AutoViewProc);
     645  WinSetWindowPtr(hwndAutoMLE,0,(PVOID)oldproc);
     646  PostMsg(hwndAutoMLE,UM_SETUP,MPVOID,MPVOID);
    613647}
    614648
    615 
    616 MRESULT EXPENTRY CommonMainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    617 
     649MRESULT EXPENTRY CommonMainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     650{
    618651  switch(msg) {
    619652    case UM_THREADUSE:
    620       if(hbmLEDon &&
    621          hbmLEDoff) {
    622 
    623                                 static LONG threaduse = 0;
    624                                 CHAR                            ts[33];
     653      if (hbmLEDon && hbmLEDoff) {
     654        static LONG threaduse = 0;
     655        CHAR ts[33];
    625656
    626657        if(mp1) {
    627                                         threaduse++;
    628                                         if(threaduse == 1)
     658          threaduse++;
     659          if (threaduse == 1)
    629660            WinSendMsg(hwndLED,
    630661                       SM_SETHANDLE,
    631662                       MPFROMLONG(hbmLEDon),
    632663                       MPVOID);
    633                                 }
    634                                 else {
    635                                         threaduse--;
    636                                         if(threaduse <= 0) {
    637                                                 threaduse = 0;
     664          }
     665          else {
     666            threaduse--;
     667            if(threaduse <= 0) {
     668              threaduse = 0;
    638669            WinSendMsg(hwndLED,
    639670                       SM_SETHANDLE,
    640671                       MPFROMLONG(hbmLEDoff),
    641672                       MPVOID);
    642                                         }
    643                                 }
     673          }
     674        }
    644675        ltoa(threaduse,
    645676             ts,
     
    647678        WinSetWindowText(hwndLEDHdr,
    648679                         ts);
    649                         }
    650                         return 0;
     680      }
     681      return 0;
    651682
    652683    case UM_LOADFILE:
     
    692723
    693724
    694 MRESULT EXPENTRY CommonTextButton (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    695 
     725MRESULT EXPENTRY CommonTextButton (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     726{
    696727  static HWND  hwndLast = (HWND)0;
    697728  static ULONG lastclick = 0;
     
    807838
    808839
    809 MRESULT EXPENTRY CommonCnrProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2) {
    810 
     840MRESULT EXPENTRY CommonCnrProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
     841{
    811842  DIRCNRDATA *dcd = WinQueryWindowPtr(hwnd,0);
    812843
     
    894925
    895926HWND OpenDirCnr (HWND hwnd,HWND hwndParent,HWND hwndRestore,
    896                  BOOL noautotile,char *directory) {
    897 
     927                 BOOL noautotile,char *directory)
     928{
    898929  SWP  swp;
    899930  HWND hwndDir;
Note: See TracChangeset for help on using the changeset viewer.