- Timestamp:
- Dec 16, 1999, 5:53:59 PM (26 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/Makefile
r2084 r2093 1 # $Id: Makefile,v 1.4 8 1999-12-16 00:11:45 sandervlExp $1 # $Id: Makefile,v 1.49 1999-12-16 16:53:56 cbratschi Exp $ 2 2 3 3 # … … 42 42 winprop.obj wingdi.obj oslibgdi.obj winaccel.obj win32wbasepos.obj \ 43 43 oslibres.obj dummy.obj oslibmenu.obj dc.obj timer.obj \ 44 caret.obj resource.obj winproc.obj \44 caret.obj resource.obj winproc.obj text.obj \ 45 45 windlgmsg.obj windlg.obj win32wdesktop.obj 46 46 … … 52 52 !ifdef DEBUG 53 53 !ifdef NODEBUGINFO 54 54 ilink /nodeb /map /noe /NOD /NoLogo /NOFREE @$(TARGET).lrf 55 55 !else 56 56 ilink /de /map /noe /NOD /dbgpack /NoLogo /NOFREE @$(TARGET).lrf 57 57 !endif 58 58 !else 59 59 ilink /map /noe /NOD /NoLogo /FREE @$(TARGET).lrf 60 60 !endif 61 61 $(CP) $@ $(PDWIN32_BIN) … … 64 64 @echo Creating file <<$(@B).lrf 65 65 $(OBJS) 66 $(PDWIN32_LIB)/pmwinx.lib 67 $(PDWIN32_LIB)/gdi32.lib 68 $(PDWIN32_LIB)/kernel32.lib 66 $(PDWIN32_LIB)/pmwinx.lib 67 $(PDWIN32_LIB)/gdi32.lib 68 $(PDWIN32_LIB)/kernel32.lib 69 69 $(PDWIN32_LIB)/libuls.lib 70 $(PDWIN32_LIB)/odincrt.lib 70 $(PDWIN32_LIB)/odincrt.lib 71 71 OS2386.LIB 72 72 $(RTLLIB_O) … … 82 82 83 83 84 resource.asm: user32.rc 85 $(RC) $(RCFLAGS) -o resource.asm user32.rc 84 resource.asm: user32.rc 85 $(RC) $(RCFLAGS) -o resource.asm user32.rc 86 86 87 87 resource.obj: resource.asm … … 148 148 timer.obj: timer.cpp win32wbase.h timer.h 149 149 caret.obj: caret.cpp win32wbase.h caret.h dcdata.h 150 text.obj: text.cpp 150 151 151 152 clipboard.obj: clipboard.cpp -
trunk/src/user32/edit.cpp
r1960 r2093 1 /* $Id: edit.cpp,v 1.2 2 1999-12-03 17:30:15cbratschi Exp $ */1 /* $Id: edit.cpp,v 1.23 1999-12-16 16:53:56 cbratschi Exp $ */ 2 2 /* 3 3 * Edit control … … 12 12 * 13 13 * Status: complete 14 * Version: 5.00 (without undocumented specs)14 * Version: 5.00 15 15 */ 16 16 … … 20 20 new in Win98, Win2k: for single line too 21 21 - WinNT/Win2k: higher size limits (single: 0x7FFFFFFE, multi: none) 22 - problems with selection update: perhaps an Open32 bug23 TextOutA: draws at wrong position24 I've removed the workarounds, it makes no sense to fix GDI32 bugs here25 -> rewrite TextOut and TabbedTextOut26 22 */ 27 23 … … 1150 1146 1151 1147 if (IntersectRect(&rcUpdate, &rcWnd, &rcLine)) 1152 InvalidateRect(hwnd, &rcUpdate, FALSE);1148 InvalidateRect(hwnd, &rcUpdate, TRUE); 1153 1149 } else { 1154 1150 EDIT_GetLineRect(hwnd, es, sl, sc, … … 1157 1153 &rcLine); 1158 1154 if (IntersectRect(&rcUpdate, &rcWnd, &rcLine)) 1159 InvalidateRect(hwnd, &rcUpdate, FALSE);1155 InvalidateRect(hwnd, &rcUpdate, TRUE); 1160 1156 for (l = sl + 1 ; l < el ; l++) { 1161 1157 EDIT_GetLineRect(hwnd, es, l, 0, … … 1164 1160 &rcLine); 1165 1161 if (IntersectRect(&rcUpdate, &rcWnd, &rcLine)) 1166 InvalidateRect(hwnd, &rcUpdate, FALSE);1162 InvalidateRect(hwnd, &rcUpdate, TRUE); 1167 1163 } 1168 1164 EDIT_GetLineRect(hwnd, es, el, 0, ec, &rcLine); 1169 1165 if (IntersectRect(&rcUpdate, &rcWnd, &rcLine)) 1170 InvalidateRect(hwnd, &rcUpdate, FALSE);1166 InvalidateRect(hwnd, &rcUpdate, TRUE); 1171 1167 } 1172 1168 ShowCaret(hwnd); … … 1574 1570 e = MIN(li + ll, MAX(li, e)); 1575 1571 1576 if (rev && (s != e) && 1577 ((es->flags & EF_FOCUSED) || (es->style & ES_NOHIDESEL))) 1572 if (rev && (s != e) && ((es->flags & EF_FOCUSED) || (es->style & ES_NOHIDESEL))) 1578 1573 { 1579 x += EDIT_PaintText(hwnd, es, dc, x, y, line, 0, s - li, FALSE); 1580 x += EDIT_PaintText(hwnd, es, dc, x, y, line, s - li, e - s, TRUE); 1581 x += EDIT_PaintText(hwnd, es, dc, x, y, line, e - li, li + ll - e, FALSE); 1574 HRGN oldRgn,newRgn,combRgn; 1575 RECT rect; 1576 //CB: OS/2 has problems with relative string positions (i.e. Communicator) 1577 // fix: always calculate string from starting point, tab bugs fixed too 1578 // otherwise we have 'dancing characters' 1579 1580 if (!(es->style & ES_MULTILINE)) 1581 { 1582 SIZE size; 1583 1584 rect.top = y; 1585 rect.bottom = y+es->line_height; 1586 GetTextExtentPoint32A(dc,es->text+li,s-li,&size); 1587 rect.left = x+size.cx; 1588 GetTextExtentPoint32A(dc,es->text+li,e-li,&size); 1589 rect.right = x+size.cx; 1590 1591 oldRgn = CreateRectRgnIndirect(&rect); //dummy parameter 1592 GetClipRgn(dc,oldRgn); 1593 newRgn = CreateRectRgnIndirect(&rect); 1594 combRgn = CreateRectRgnIndirect(&rect); //dummy parameter 1595 CombineRgn(combRgn,oldRgn,newRgn,RGN_XOR); 1596 SelectClipRgn(dc,combRgn); 1597 EDIT_PaintText(hwnd,es,dc,x,y,line,0,ll,FALSE); 1598 CombineRgn(combRgn,oldRgn,newRgn,RGN_AND); 1599 SelectClipRgn(dc,combRgn); 1600 EDIT_PaintText(hwnd,es,dc,x,y,line,0,e-li,TRUE); 1601 DeleteObject(oldRgn); 1602 DeleteObject(newRgn); 1603 DeleteObject(combRgn); 1604 } else 1605 { 1606 rect.top = y; 1607 rect.bottom = y+es->line_height; 1608 rect.left = x+LOWORD(TabbedTextOutA(dc,x,y,es->text+li,s-li,es->tabs_count,es->tabs,es->format_rect.left-es->x_offset)); 1609 rect.right = x+LOWORD(TabbedTextOutA(dc,x,y,es->text+li,e-li,es->tabs_count,es->tabs,es->format_rect.left-es->x_offset)); 1610 1611 oldRgn = CreateRectRgnIndirect(&rect); //dummy parameter 1612 GetClipRgn(dc,oldRgn); 1613 newRgn = CreateRectRgnIndirect(&rect); 1614 combRgn = CreateRectRgnIndirect(&rect); //dummy parameter 1615 CombineRgn(combRgn,oldRgn,newRgn,RGN_XOR); 1616 SelectClipRgn(dc,combRgn); 1617 EDIT_PaintText(hwnd,es,dc,x,y,line,0,ll,FALSE); 1618 CombineRgn(combRgn,oldRgn,newRgn,RGN_AND); 1619 SelectClipRgn(dc,combRgn); 1620 EDIT_PaintText(hwnd,es,dc,x,y,line,0,e-li,TRUE); 1621 SelectClipRgn(dc,oldRgn); 1622 DeleteObject(oldRgn); 1623 DeleteObject(newRgn); 1624 DeleteObject(combRgn); 1625 } 1582 1626 } else EDIT_PaintText(hwnd, es, dc, x, y, line, 0, ll, FALSE); 1583 1627 } … … 1600 1644 BkColor = GetBkColor(dc); 1601 1645 TextColor = GetTextColor(dc); 1602 if (rev) { 1646 if (rev) 1647 { 1603 1648 SetBkColor(dc, GetSysColor(COLOR_HIGHLIGHT)); 1604 1649 SetTextColor(dc, GetSysColor(COLOR_HIGHLIGHTTEXT)); 1605 1650 } 1606 1651 li = EDIT_EM_LineIndex(hwnd, es, line); 1607 if (es->style & ES_MULTILINE) { 1652 if (es->style & ES_MULTILINE) 1653 { 1608 1654 ret = (INT)LOWORD(TabbedTextOutA(dc, x, y, es->text + li + col, count, 1609 1655 es->tabs_count, es->tabs, es->format_rect.left - es->x_offset)); … … 1624 1670 HeapFree(es->heap, 0, text); 1625 1671 } 1626 if (rev) { 1672 if (rev) 1673 { 1627 1674 SetBkColor(dc, BkColor); 1628 1675 SetTextColor(dc, TextColor); -
trunk/src/user32/scroll.cpp
r1960 r2093 1 /* $Id: scroll.cpp,v 1.2 7 1999-12-03 17:30:17 cbratschi Exp $ */1 /* $Id: scroll.cpp,v 1.28 1999-12-16 16:53:57 cbratschi Exp $ */ 2 2 /* 3 3 * Scrollbar control … … 638 638 HDC hdc; 639 639 640 hdc = GetDCEx( hwnd, 0, DCX_CACHE | ((nBar == SB_CTL) ? 0 : DCX_WINDOW)); 640 641 hdc = GetDC(hwnd); 641 642 642 643 if (!hdc) return; … … 810 811 if (SCROLL_FocusWin == hwnd && SCROLL_Highlighted) 811 812 { 812 hdc = GetDC Ex(hwnd,0,DCX_CACHE);813 hdc = GetDC(hwnd); 813 814 SCROLL_DrawScrollBar(hwnd,hdc,nBar,FALSE,TRUE); 814 815 ReleaseDC(hwnd,hdc); … … 866 867 { 867 868 SCROLL_Highlighted = FALSE; 868 hdc = GetDC Ex(hwnd,0,DCX_CACHE);869 hdc = GetDC(hwnd); 869 870 SCROLL_DrawScrollBar(hwnd,hdc,nBar,FALSE,TRUE); 870 871 ReleaseDC(hwnd,hdc); … … 885 886 if (!SCROLL_Scrolling) 886 887 { 887 hdc = GetDC Ex(hwnd,0,DCX_CACHE);888 hdc = GetDC(hwnd); 888 889 SCROLL_DrawScrollBar(hwnd,hdc,nBar,FALSE,TRUE); 889 890 ReleaseDC(hwnd,hdc); … … 896 897 } 897 898 898 hdc = GetDC Ex(hwnd,0,DCX_CACHE | ((nBar == SB_CTL) ? 0:DCX_WINDOW));899 hdc = GetDC(hwnd); 899 900 900 901 switch(SCROLL_trackHitTest) -
trunk/src/user32/uitools.cpp
r1781 r2093 1 /* $Id: uitools.cpp,v 1.1 7 1999-11-19 17:59:35cbratschi Exp $ */1 /* $Id: uitools.cpp,v 1.18 1999-12-16 16:53:57 cbratschi Exp $ */ 2 2 /* 3 3 * User Interface Functions … … 1358 1358 return FALSE; 1359 1359 } 1360 1361 1362 /*****************************************************************************1363 * Name : int WIN32API DrawTextExA1364 * Purpose : The DrawTextEx function draw the text in the rectangle1365 * Parameters:1366 * Variables :1367 * Result : If the function succeeds, the return value is the height of the1368 * text, otherwise zero.1369 * Remark : TODO: Returned number of characters is always the entire string1370 * since there is no way to know the real answer this way.1371 * Status : PARTIALLY IMPLEMENTED AND TESTED1372 *1373 * Author : Rene Pronk [Thu, 1999/07/29 15:03]1374 * Christoph Bratschi: implemented DT_END_ELLIPSIS (Header control)1375 *****************************************************************************/1376 1377 int WIN32API DrawTextExA (HDC hdc, LPCSTR lpchText, int cchText, LPRECT lprc,1378 UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams) {1379 1380 int result;1381 UINT oldDTFormat;1382 1383 dprintf(("USER32:DrawTextExA (%08xh,%s,%08xh,%08xh,%08xh,%08xh).\n",1384 hdc, lpchText, cchText, lprc, dwDTFormat, lpDTParams));1385 1386 if (lpDTParams != NULL) {1387 // 'create' margins1388 lprc->left += lpDTParams->iLeftMargin;1389 lprc->right -= lpDTParams->iRightMargin;1390 1391 // just assume all the text has been drawn1392 if (cchText != -1)1393 lpDTParams->uiLengthDrawn = cchText;1394 else {1395 // determine string length1396 int size = 0;1397 while ((BYTE) *(lpchText + size) != 0)1398 size ++;1399 lpDTParams->uiLengthDrawn = size;1400 }1401 }1402 1403 oldDTFormat = dwDTFormat & ~(DT_END_ELLIPSIS | DT_PATH_ELLIPSIS | DT_MODIFYSTRING | DT_EXPANDTABS);1404 if (dwDTFormat & DT_END_ELLIPSIS && lpchText && (cchText != 0))1405 {1406 int textWidth,width;1407 RECT rect;1408 1409 if (cchText == -1) cchText = lstrlenA(lpchText);1410 SetRectEmpty(&rect);1411 DrawTextA(hdc,lpchText,cchText,&rect,oldDTFormat | DT_CALCRECT);1412 width = lprc->right-lprc->left;1413 textWidth = rect.right-rect.left;1414 if (textWidth > width && width > 0)1415 {1416 char* newText;1417 int endWidth,newTextLen;1418 1419 DrawTextA(hdc,"...",3,&rect,DT_CALCRECT | DT_SINGLELINE | DT_LEFT);1420 endWidth = rect.right-rect.left;1421 newText = (char*)malloc(cchText+3);1422 lstrcpyA(newText,lpchText);1423 newTextLen = cchText+1;1424 do1425 {1426 newTextLen--;1427 DrawTextA(hdc,newText,newTextLen,&rect,oldDTFormat | DT_CALCRECT);1428 textWidth = rect.right-rect.left;1429 } while (textWidth+endWidth > width && newTextLen > 1);1430 1431 lstrcpyA(&newText[newTextLen],"...");1432 result = DrawTextA(hdc,newText,-1,lprc,oldDTFormat);;1433 1434 if (dwDTFormat & DT_MODIFYSTRING) lstrcpynA((LPSTR)lpchText,newText,cchText);1435 free(newText);1436 } else result = DrawTextA(hdc,lpchText,cchText,lprc,oldDTFormat);1437 } else1438 result = DrawTextA (hdc, lpchText, cchText, lprc, oldDTFormat);1439 1440 if (lpDTParams != NULL) {1441 // don't forget to restore the margins1442 lprc->left -= lpDTParams->iLeftMargin;1443 lprc->right += lpDTParams->iRightMargin;1444 }1445 1446 return result;1447 }1448 1449 1450 1451 /*****************************************************************************1452 * Name : int WIN32API DrawTextExW1453 * Purpose : The DrawTextEx function draw the text in the rectangle1454 * Parameters:1455 * Variables :1456 * Result : If the function succeeds, the return value is the height of the1457 * text, otherwise zero.1458 * Remark : TODO: Returned number of characters is always the entire string1459 * since there is no way to know the real answer this way.1460 * Status : PARTIALLY IMPLEMENTED AND TESTED1461 *1462 * Author : Rene Pronk [Thu, 1999/07/29 15:03]1463 *****************************************************************************/1464 1465 int WIN32API DrawTextExW (HDC hdc, LPWSTR lpchText, int cchText, LPRECT lprc,1466 UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams) {1467 1468 char *astring = UnicodeToAsciiString((LPWSTR)lpchText);1469 int rc;1470 1471 dprintf(("USER32:DrawTextExW (%08xh,%s,%08xh,%08xh,%08xh,%08xh).\n",1472 hdc, astring, cchText, lprc, dwDTFormat, lpDTParams));1473 1474 rc = DrawTextExA (hdc, astring, cchText, lprc, dwDTFormat, lpDTParams);1475 if (dwDTFormat & DT_MODIFYSTRING) AsciiToUnicode(astring,lpchText);1476 FreeAsciiString(astring);1477 return(rc);1478 }1479 1480 1481 1360 /****************************************************************************** 1482 1361 * … … 1900 1779 return O32_DrawMenuBar(window->getOS2FrameWindowHandle()); 1901 1780 } 1902 //******************************************************************************1903 //******************************************************************************1904 int WIN32API DrawTextW( HDC hDC, LPCWSTR lpString, int nCount, PRECT lpRect, UINT nFormat)1905 {1906 char *astring = UnicodeToAsciiString((LPWSTR)lpString);1907 int rc;1908 1909 #ifdef DEBUG1910 WriteLog("USER32: DrawTextW %s\n", astring);1911 #endif1912 rc = O32_DrawText(hDC,astring,nCount,lpRect,nFormat);1913 FreeAsciiString(astring);1914 return(rc);1915 }1916 //******************************************************************************1917 //******************************************************************************1918 int WIN32API DrawTextA(HDC hDC, LPCSTR lpString, int nCount, PRECT lpRect, UINT nFormat)1919 {1920 #ifdef DEBUG1921 WriteLog("USER32: DrawTextA %s %d", lpString,nCount);1922 #endif1923 return O32_DrawText(hDC,lpString,nCount,lpRect,nFormat);1924 }1925 1781 /***************************************************************************** 1926 1782 * Name : BOOL WIN32API DrawAnimatedRects -
trunk/src/user32/user32.cpp
r2084 r2093 1 /* $Id: user32.cpp,v 1. 59 1999-12-16 00:11:45 sandervlExp $ */1 /* $Id: user32.cpp,v 1.60 1999-12-16 16:53:58 cbratschi Exp $ */ 2 2 3 3 /* … … 1645 1645 } 1646 1646 //****************************************************************************** 1647 //TODO: Not complete1648 //******************************************************************************1649 BOOL WIN32API GrayStringA(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc,1650 LPARAM lpData, int nCount, int X, int Y, int nWidth,1651 int nHeight)1652 {1653 BOOL rc;1654 COLORREF curclr;1655 1656 #ifdef DEBUG1657 WriteLog("USER32: GrayStringA, not completely implemented\n");1658 #endif1659 if(lpOutputFunc == NULL && lpData == NULL) {1660 #ifdef DEBUG1661 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n");1662 #endif1663 return(FALSE);1664 }1665 if(lpOutputFunc) {1666 return(lpOutputFunc(hdc, lpData, nCount));1667 }1668 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));1669 rc = TextOutA(hdc, X, Y, (char *)lpData, nCount);1670 SetTextColor(hdc, curclr);1671 1672 return(rc);1673 }1674 //******************************************************************************1675 //******************************************************************************1676 BOOL WIN32API GrayStringW(HDC hdc, HBRUSH hBrush, GRAYSTRINGPROC lpOutputFunc,1677 LPARAM lpData, int nCount, int X, int Y, int nWidth,1678 int nHeight)1679 {1680 BOOL rc;1681 char *astring;1682 COLORREF curclr;1683 1684 #ifdef DEBUG1685 WriteLog("USER32: GrayStringW, not completely implemented\n");1686 #endif1687 1688 if(lpOutputFunc == NULL && lpData == NULL) {1689 #ifdef DEBUG1690 WriteLog("USER32: lpOutputFunc == NULL && lpData == NULL\n");1691 #endif1692 return(FALSE);1693 }1694 if(nCount == 0)1695 nCount = UniStrlen((UniChar*)lpData);1696 1697 if(lpOutputFunc) {1698 return(lpOutputFunc(hdc, lpData, nCount));1699 }1700 astring = UnicodeToAsciiString((LPWSTR)lpData);1701 1702 curclr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));1703 rc = TextOutA(hdc, X, Y, astring, nCount);1704 SetTextColor(hdc, curclr);1705 1706 FreeAsciiString(astring);1707 return(rc);1708 }1709 //******************************************************************************1710 1647 //****************************************************************************** 1711 1648 #if 0 … … 1855 1792 /* Message and Message Queue Functions */ 1856 1793 1857 1858 /* Font and Text Functions */1859 1860 DWORD WIN32API GetTabbedTextExtentA( HDC hDC, LPCSTR lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions)1861 {1862 dprintf2(("USER32: GetTabbedTextExtentA %x %s", hDC, lpString));1863 return O32_GetTabbedTextExtent(hDC,lpString,nCount,nTabPositions,lpnTabStopPositions);1864 }1865 //******************************************************************************1866 //******************************************************************************1867 DWORD WIN32API GetTabbedTextExtentW( HDC hDC, LPCWSTR lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions)1868 {1869 char *astring = UnicodeToAsciiString((LPWSTR)lpString);1870 DWORD rc;1871 1872 dprintf2(("USER32: GetTabbedTextExtentW %x %s", hDC, astring));1873 rc = O32_GetTabbedTextExtent(hDC,astring,nCount,nTabPositions,lpnTabStopPositions);1874 FreeAsciiString(astring);1875 return rc;1876 }1877 //******************************************************************************1878 //******************************************************************************1879 LONG WIN32API TabbedTextOutA( HDC hdc, int x, int y, LPCSTR lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin)1880 {1881 #ifdef DEBUG1882 WriteLog("USER32: TabbedTextOutA\n");1883 #endif1884 return O32_TabbedTextOut(hdc,x,y,lpString,nCount,nTabPositions,lpnTabStopPositions,nTabOrigin);1885 }1886 //******************************************************************************1887 //******************************************************************************1888 LONG WIN32API TabbedTextOutW( HDC hdc, int x, int y, LPCWSTR lpString, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin)1889 {1890 char *astring = UnicodeToAsciiString((LPWSTR)lpString);1891 LONG rc;1892 1893 #ifdef DEBUG1894 WriteLog("USER32: TabbedTextOutW\n");1895 #endif1896 rc = O32_TabbedTextOut(hdc,x,y,astring,nCount,nTabPositions,lpnTabStopPositions,nTabOrigin);1897 FreeAsciiString(astring);1898 return rc;1899 }1900 1794 1901 1795 /* Device Context Functions */ -
trunk/src/user32/win32wdesktop.cpp
r1837 r2093 1 /* $Id: win32wdesktop.cpp,v 1. 7 1999-11-24 20:28:21 sandervlExp $ */1 /* $Id: win32wdesktop.cpp,v 1.8 1999-12-16 16:53:59 cbratschi Exp $ */ 2 2 /* 3 3 * Win32 Desktop Window for OS/2 … … 25 25 windowDesktop = new Win32Desktop(); 26 26 if(windowDesktop == NULL) { 27 28 27 dprintf(("Unable to create desktop window!!!")); 28 return FALSE; 29 29 } 30 30 return TRUE; … … 35 35 { 36 36 if(windowDesktop) { 37 38 37 delete windowDesktop; 38 windowDesktop = 0; 39 39 } 40 40 } … … 77 77 LRESULT WIN32API DesktopWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) 78 78 { 79 return 0; 79 switch (message) 80 { 81 case WM_GETTEXT: 82 if (!lParam || !wParam) return 0; 83 ((LPSTR)lParam)[0] = 0; 84 return 0; 85 } 86 87 return 0; 80 88 } 81 89 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.