Annotation of mstools/mfc/samples/showfont/dialogs.cpp, revision 1.1

1.1     ! root        1: // dialogs.cpp : Several simple dialogs for the ShowFont main window.
        !             2: //
        !             3: // This is a part of the Microsoft Foundation Classes C++ library. 
        !             4: // Copyright (C) 1992 Microsoft Corporation 
        !             5: // All rights reserved. 
        !             6: //  
        !             7: // This source code is only intended as a supplement to the 
        !             8: // Microsoft Foundation Classes Reference and Microsoft 
        !             9: // QuickHelp documentation provided with the library. 
        !            10: // See these sources for detailed information regarding the 
        !            11: // Microsoft Foundation Classes product.
        !            12: 
        !            13: #include "showfont.h"
        !            14: 
        !            15: static int CurrentFont = 0;
        !            16: static int CurrentSize = 0;
        !            17: static char FontList[MAXFONT][32];
        !            18: static BYTE CharSet[MAXFONT];
        !            19: static BYTE PitchAndFamily[MAXFONT];
        !            20: static int FontIndex = 0;
        !            21: static int SizeList[MAXSIZE];
        !            22: static int SizeIndex = 0;
        !            23: 
        !            24: static CStringList fontList;        // list of added fonts
        !            25: 
        !            26: /////////////////////////////////////////////////////////////////////////////
        !            27: // forward declarations
        !            28: 
        !            29: static void GetSizes(CWnd* wnd, int iCurrentFont);
        !            30: 
        !            31: static CString SeparateFile(char* pszDestPath, const char* pszSrcFileName);
        !            32: 
        !            33: /////////////////////////////////////////////////////////////////////////////
        !            34: // About dialog
        !            35: 
        !            36: void CMainWindow::OnAbout()
        !            37: {
        !            38:        CModalDialog about("AboutBox", this);
        !            39:        about.DoModal();
        !            40: }
        !            41: 
        !            42: /////////////////////////////////////////////////////////////////////////////
        !            43: // Select Font dialog
        !            44: 
        !            45: class CSelFtDlg : public CModalDialog
        !            46: {
        !            47: public:
        !            48:        CSelFtDlg() : CModalDialog("SelectFont")
        !            49:                { }
        !            50: 
        !            51:        CListBox&   TypefaceList()
        !            52:                                        { return *((CListBox*) GetDlgItem(ID_TYPEFACE)); } 
        !            53:        CListBox&   TypesizeList()
        !            54:                                        { return *((CListBox*) GetDlgItem(ID_SIZE)); } 
        !            55: 
        !            56:        BOOL OnInitDialog()
        !            57:        {
        !            58:                CListBox& facesList = TypefaceList();
        !            59:                CListBox& sizesList = TypesizeList();
        !            60: 
        !            61:                for (int i = 0; i < FontIndex; i++)
        !            62:                {
        !            63:                        // Display available fonts.
        !            64:                        //
        !            65:                        facesList.AddString(FontList[i]);
        !            66:                        facesList.SetCurSel(0);
        !            67:                }
        !            68:                GetSizes(this, 0);
        !            69:                for (i = 0; i < SizeIndex; i++)
        !            70:                {
        !            71:                        // Display font sizes.
        !            72:                        //
        !            73:                        char buf[LF_FACESIZE];
        !            74:                        sprintf(buf, "%d", SizeList[i]);
        !            75:                        sizesList.AddString(buf);
        !            76:                        sizesList.SetCurSel(0);
        !            77:                }
        !            78:                return TRUE;
        !            79:        }
        !            80: 
        !            81:        afx_msg void OnOK()
        !            82:        {
        !            83:                int index;
        !            84:                if ((index = TypefaceList().GetCurSel()) == LB_ERR)
        !            85:                {
        !            86:                        MessageBox("No font selected",
        !            87:                                "Select Font", MB_OK | MB_ICONEXCLAMATION);
        !            88:                        return;
        !            89:                }
        !            90:                CurrentFont = index;
        !            91: 
        !            92:                if ((index = TypesizeList().GetCurSel()) == LB_ERR)
        !            93:                {
        !            94:                        MessageBox("No size selected",
        !            95:                                "Select Font", MB_OK | MB_ICONEXCLAMATION);
        !            96:                        return;
        !            97:                }
        !            98:                CurrentSize = index;
        !            99:                EndDialog(IDOK);
        !           100:        }
        !           101: 
        !           102:        afx_msg void OnTypeFaceChange()
        !           103:        {
        !           104:                int index = TypefaceList().GetCurSel();
        !           105:                if (index == LB_ERR)
        !           106:                        return;
        !           107:                TypesizeList().ResetContent();
        !           108:                GetSizes(this, index);
        !           109: 
        !           110:                CListBox& sizesList = TypesizeList();
        !           111:                for (int i = 0; i < SizeIndex; i++)
        !           112:                {
        !           113:                        char buf[LF_FACESIZE];
        !           114:                        sprintf(buf, "%d", SizeList[i]);
        !           115:                        sizesList.AddString(buf);
        !           116:                        sizesList.SetCurSel(0);
        !           117:                }
        !           118:        }
        !           119: 
        !           120:        DECLARE_MESSAGE_MAP()
        !           121: };
        !           122: 
        !           123: BEGIN_MESSAGE_MAP(CSelFtDlg, CModalDialog)
        !           124:        ON_LBN_SELCHANGE(ID_TYPEFACE, OnTypeFaceChange)
        !           125: 
        !           126:        // Double-click on the listboxes act like clicking OK.  No extra code!
        !           127:        ON_LBN_DBLCLK(ID_TYPEFACE, OnOK)
        !           128:        ON_LBN_DBLCLK(ID_SIZE, OnOK)
        !           129: END_MESSAGE_MAP()
        !           130: 
        !           131: void CMainWindow::OnSelectFont()
        !           132: {
        !           133:        CSelFtDlg dlg;
        !           134:        if (dlg.DoModal() != IDOK)
        !           135:                return;     // cancelled
        !           136: 
        !           137:        // change the font
        !           138:        myFont->DeleteObject();
        !           139:        myFont->CreateFont(SizeList[CurrentSize],
        !           140:                0, 0, 0, FW_NORMAL,
        !           141:                FALSE, FALSE, FALSE,
        !           142:                CharSet[CurrentFont],
        !           143:                OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
        !           144:                PitchAndFamily[CurrentFont],
        !           145:                FontList[CurrentFont]);
        !           146:        pTheFont = myFont;
        !           147:        SetFaceName();
        !           148: }
        !           149: 
        !           150: /////////////////////////////////////////////////////////////////////////////
        !           151: // TextMetrics modeless dialog
        !           152: 
        !           153: class CMetricDlg : public CDialog   // modeless
        !           154: {
        !           155: private:
        !           156:        const TEXTMETRIC& textMetric;
        !           157: 
        !           158: public:
        !           159:        CMetricDlg(TEXTMETRIC& rtextMetric) : textMetric(rtextMetric)
        !           160:        {
        !           161:                VERIFY(Create("MetricBox"));
        !           162:        }
        !           163: 
        !           164:        afx_msg void OnClose()
        !           165:        {
        !           166:                delete this;    // Note this does the DestroyWindow automatically.
        !           167:        }
        !           168: 
        !           169:        BOOL OnInitDialog();
        !           170: 
        !           171:        DECLARE_MESSAGE_MAP()
        !           172: };
        !           173: 
        !           174: BEGIN_MESSAGE_MAP(CMetricDlg, CDialog)
        !           175:        ON_WM_CLOSE()
        !           176: END_MESSAGE_MAP()
        !           177: 
        !           178: BOOL CMetricDlg::OnInitDialog()
        !           179: {
        !           180:        // fill in the dialog with statistics
        !           181:        SetDlgItemInt(IDMB_HEIGHT, textMetric.tmHeight, FALSE);
        !           182:        SetDlgItemInt(IDMB_ASCENT, textMetric.tmAscent, FALSE);
        !           183:        SetDlgItemInt(IDMB_DESCENT, textMetric.tmDescent, FALSE);
        !           184:        SetDlgItemInt(IDMB_INTERNALLEADING, textMetric.tmInternalLeading, FALSE);
        !           185:        SetDlgItemInt(IDMB_EXTERNALLEADING, textMetric.tmExternalLeading, FALSE);
        !           186:        SetDlgItemInt(IDMB_AVECHARWIDTH, textMetric.tmAveCharWidth, FALSE);
        !           187:        SetDlgItemInt(IDMB_MAXCHARWIDTH, textMetric.tmMaxCharWidth, FALSE);
        !           188:        SetDlgItemInt(IDMB_WEIGHT, textMetric.tmWeight, FALSE);
        !           189:        SetDlgItemInt(IDMB_ITALIC, textMetric.tmItalic, FALSE);
        !           190:        SetDlgItemInt(IDMB_UNDERLINED, textMetric.tmUnderlined, FALSE);
        !           191:        SetDlgItemInt(IDMB_STRUCKOUT, textMetric.tmStruckOut, FALSE);
        !           192:        SetDlgItemInt(IDMB_FIRSTCHAR, textMetric.tmFirstChar, FALSE);
        !           193:        SetDlgItemInt(IDMB_LASTCHAR, textMetric.tmLastChar, FALSE);
        !           194:        SetDlgItemInt(IDMB_DEFAULTCHAR, textMetric.tmDefaultChar, FALSE);
        !           195:        SetDlgItemInt(IDMB_BREAKCHAR, textMetric.tmBreakChar, FALSE);
        !           196:        SetDlgItemInt(IDMB_PITCHANDFAMILY, textMetric.tmPitchAndFamily, FALSE);
        !           197:        SetDlgItemInt(IDMB_CHARSET, textMetric.tmCharSet, FALSE);
        !           198:        SetDlgItemInt(IDMB_OVERHANG, textMetric.tmOverhang, FALSE);
        !           199:        SetDlgItemInt(IDMB_DIGITIZEDASPECTX, textMetric.tmDigitizedAspectX, FALSE);
        !           200:        SetDlgItemInt(IDMB_DIGITIZEDASPECTY, textMetric.tmDigitizedAspectY, FALSE);
        !           201:        return TRUE;
        !           202: }
        !           203: 
        !           204: 
        !           205: void CMainWindow::OnShowTextMetric()
        !           206: {
        !           207:        CClientDC dc(this);
        !           208:        CFont* oldFont = dc.SelectObject(pTheFont);
        !           209:        if (oldFont == NULL)
        !           210:                return;
        !           211: 
        !           212:        TEXTMETRIC textMetric;
        !           213:        dc.GetTextMetrics(&textMetric);
        !           214: 
        !           215:        CMetricDlg* pDlg;
        !           216:        pDlg = new CMetricDlg(textMetric);
        !           217: 
        !           218:        char szDialogTitle[100];
        !           219:        char buf[80];
        !           220:        strcpy(szDialogTitle, "Metric Font: ");
        !           221:        dc.GetTextFace(80, buf);
        !           222:        strcat(szDialogTitle, buf);
        !           223:        pDlg->SetWindowText(szDialogTitle);
        !           224: 
        !           225:        dc.SelectObject(oldFont);
        !           226: }
        !           227: 
        !           228: /////////////////////////////////////////////////////////////////////////////
        !           229: // Show LogicalFont modeless dialog
        !           230: 
        !           231: class CLogFontDlg : public CDialog  // modeless
        !           232: {
        !           233: private:
        !           234:        const LOGFONT& logFont;  // just needed for init
        !           235: 
        !           236: public:
        !           237:        CLogFontDlg(const LOGFONT& rLogFont) : logFont(rLogFont)
        !           238:                {
        !           239:                        VERIFY(Create("LogBox"));
        !           240:                }
        !           241: 
        !           242:        afx_msg void OnClose()
        !           243:                {
        !           244:                        delete this;  // Does DestroyWindow for us.
        !           245:                }
        !           246: 
        !           247:        BOOL OnInitDialog();
        !           248: 
        !           249:        DECLARE_MESSAGE_MAP()
        !           250: };
        !           251: 
        !           252: BEGIN_MESSAGE_MAP(CLogFontDlg, CDialog)
        !           253:        ON_WM_CLOSE()
        !           254: END_MESSAGE_MAP()
        !           255: 
        !           256: BOOL CLogFontDlg::OnInitDialog()
        !           257: {
        !           258:        // Fill in the dialog with statistics.
        !           259:        SetDlgItemInt(IDMI_HEIGHT, logFont.lfHeight, FALSE);
        !           260:        SetDlgItemInt(IDMI_WIDTH, logFont.lfWidth, FALSE);
        !           261:        SetDlgItemInt(IDMI_ESCAPEMENT, logFont.lfEscapement, FALSE);
        !           262:        SetDlgItemInt(IDMI_ORIENTATION, logFont.lfOrientation, FALSE);
        !           263:        SetDlgItemInt(IDMI_WEIGHT, logFont.lfWeight, FALSE);
        !           264:        SetDlgItemInt(IDMI_ITALIC, logFont.lfItalic, FALSE);
        !           265:        SetDlgItemInt(IDMI_UNDERLINED, logFont.lfUnderline, FALSE);
        !           266:        SetDlgItemInt(IDMI_STRIKEOUT, logFont.lfStrikeOut, FALSE);
        !           267:        SetDlgItemInt(IDMI_CHARSET, logFont.lfCharSet, FALSE);
        !           268:        SetDlgItemInt(IDMI_OUTPRECISION, logFont.lfOutPrecision, FALSE);
        !           269:        SetDlgItemInt(IDMI_CLIPPRECISION, logFont.lfClipPrecision, FALSE);
        !           270:        SetDlgItemInt(IDMI_QUALITY, logFont.lfQuality, FALSE);
        !           271:        SetDlgItemInt(IDMI_PITCHANDFAMILY, logFont.lfPitchAndFamily, FALSE);
        !           272:        return TRUE;
        !           273: }
        !           274: 
        !           275: void CMainWindow::OnShowLogFont()
        !           276: {
        !           277:        CClientDC dc(this);
        !           278:        CFont* oldFont = dc.SelectObject(&systemFont);
        !           279:        if (oldFont == NULL)
        !           280:                return;
        !           281: 
        !           282:        TEXTMETRIC TextMetric;
        !           283: 
        !           284:        dc.GetTextMetrics(&TextMetric);
        !           285:        nLineSpace = TextMetric.tmHeight + TextMetric.tmExternalLeading;
        !           286:        LOGFONT logFont;
        !           287:        pTheFont->GetObject(sizeof(LOGFONT), &logFont);
        !           288: 
        !           289:        CLogFontDlg* pDlg;
        !           290:        pDlg = new CLogFontDlg(logFont);    // logFont just needed for init
        !           291:        char szDialogTitle[100];
        !           292:        strcpy(szDialogTitle, "Log Font: ");
        !           293:        strcat(szDialogTitle, (const char*)logFont.lfFaceName);
        !           294:        pDlg->SetWindowText(szDialogTitle);
        !           295: 
        !           296:        dc.SelectObject(oldFont);
        !           297: }
        !           298: 
        !           299: /////////////////////////////////////////////////////////////////////////////
        !           300: // Add Font dialog
        !           301: 
        !           302: class CAddFontDlg : public CModalDialog
        !           303: {
        !           304: public:
        !           305:        CAddFontDlg() : CModalDialog("Add")
        !           306:                { }
        !           307: 
        !           308: // Attributes
        !           309:        char m_szPath[256]; // not a CString since we use it
        !           310:                                                //  as parameter to DlgDirSelect
        !           311: 
        !           312: // Implementation
        !           313:        BOOL OnInitDialog();
        !           314:        afx_msg void OnOK();
        !           315:        afx_msg void OnFileChange();
        !           316:        DECLARE_MESSAGE_MAP()
        !           317: };
        !           318: 
        !           319: BOOL CAddFontDlg::OnInitDialog()
        !           320: {
        !           321:        SetWindowText("Add Font Resource");
        !           322:        DlgDirList(m_szPath, ID_LISTBOX, ID_PATH, 0x4010);
        !           323:        return TRUE;
        !           324: }
        !           325: 
        !           326: BEGIN_MESSAGE_MAP(CAddFontDlg, CModalDialog)
        !           327:        ON_LBN_SELCHANGE(ID_LISTBOX, OnFileChange)
        !           328:        ON_LBN_DBLCLK(ID_LISTBOX, OnOK)
        !           329: END_MESSAGE_MAP()
        !           330: 
        !           331: void CAddFontDlg::OnFileChange()
        !           332: {
        !           333:        // If item is a directory name, append "*.fon".
        !           334:        //
        !           335:        if (DlgDirSelect(m_szPath, ID_LISTBOX))
        !           336:                strcat(m_szPath, "*.fon");
        !           337:        DlgDirList(m_szPath, ID_LISTBOX, ID_PATH, 0x4010);
        !           338: }
        !           339: 
        !           340: void CAddFontDlg::OnOK()
        !           341: {
        !           342:        // Get the filename from the edit control.
        !           343:        //
        !           344:        m_szPath[0] = '\0';
        !           345:        if (DlgDirSelect(m_szPath, ID_LISTBOX) ||
        !           346:                m_szPath[0] == '\0')
        !           347:        {
        !           348:                // It's still a directory, or something is wrong.
        !           349:                //
        !           350:                MessageBox("Not a file", "Add Font", MB_OK | MB_ICONQUESTION);
        !           351:                return;
        !           352:        }
        !           353: 
        !           354:        // Assume the file is worth trying.
        !           355:        //
        !           356:        EndDialog(IDOK);
        !           357: }
        !           358: 
        !           359: void CMainWindow::OnAddFont()
        !           360: {
        !           361:        // Spawn dialog to get the filename.
        !           362:        //
        !           363:        CAddFontDlg dlg;
        !           364: 
        !           365:        strcpy(dlg.m_szPath, "*.fon");
        !           366:        if (dlg.DoModal() != IDOK)
        !           367:                return;     // cancelled
        !           368: 
        !           369:        // Check to see if it is a new font name.
        !           370:        //
        !           371:        for (POSITION pos = fontList.GetHeadPosition(); pos != NULL; )
        !           372:                if (fontList.GetNext(pos) == dlg.m_szPath)
        !           373:                {
        !           374:                        MessageBox("Font already exists", "Add Font",
        !           375:                                           MB_OK | MB_ICONQUESTION);
        !           376:                        return;
        !           377:                }
        !           378: 
        !           379:        // Tell Windows to add the font resource.
        !           380:        //
        !           381:        if (AddFontResource(dlg.m_szPath) == 0)
        !           382:        {
        !           383:                MessageBox("No font loaded", "Add Font", MB_OK | MB_ICONQUESTION);
        !           384:                return;
        !           385:        }
        !           386: 
        !           387:        // Let all applications know there is a new font resource.
        !           388:        //
        !           389:        ::SendMessage((HWND) 0xFFFF, WM_FONTCHANGE, NULL, (LONG) NULL);
        !           390: 
        !           391:        // Add it to our font list.
        !           392:        //
        !           393:        fontList.AddTail(dlg.m_szPath);         // save copy of string
        !           394: }
        !           395: 
        !           396: /////////////////////////////////////////////////////////////////////////////
        !           397: // Remove Font dialog
        !           398: 
        !           399: class CRmvFtDlg : public CModalDialog
        !           400: {
        !           401: public:
        !           402:        int m_iFont;  // font index (from global fontList)
        !           403: 
        !           404:        CRmvFtDlg() : CModalDialog("Remove")
        !           405:                { }
        !           406: 
        !           407:        CListBox&   FileList()
        !           408:                {
        !           409:                        return *((CListBox*) GetDlgItem(ID_LISTBOX));
        !           410:                }
        !           411: 
        !           412:        BOOL OnInitDialog();
        !           413:        afx_msg void OnOK();
        !           414: 
        !           415:        DECLARE_MESSAGE_MAP()
        !           416: };
        !           417: 
        !           418: BOOL CRmvFtDlg::OnInitDialog()
        !           419: {
        !           420:        SetWindowText("Remove Font Resource");
        !           421: 
        !           422:        for (POSITION pos = fontList.GetHeadPosition(); pos != NULL; )
        !           423:                FileList().AddString(fontList.GetNext(pos));
        !           424:        return TRUE;
        !           425: }
        !           426: 
        !           427: BEGIN_MESSAGE_MAP(CRmvFtDlg, CModalDialog)
        !           428:        // A double-click on the listbox aliases for clicking the OK.
        !           429:        ON_LBN_DBLCLK(ID_LISTBOX, OnOK)
        !           430: END_MESSAGE_MAP()
        !           431: 
        !           432: void CRmvFtDlg::OnOK()
        !           433: {
        !           434:        // Get the filename from the edit control.
        !           435:        //
        !           436:        m_iFont = FileList().GetCurSel();
        !           437: 
        !           438:        EndDialog(IDOK);
        !           439: }
        !           440: 
        !           441: void CMainWindow::OnDeleteFont()
        !           442: {
        !           443:        if (fontList.IsEmpty())
        !           444:        {
        !           445:                MessageBox("No fonts to delete",
        !           446:                        "Remove Font", MB_OK | MB_ICONQUESTION);
        !           447:                return;
        !           448:        }
        !           449: 
        !           450:        // Invoke dialog to let user select one font from list.
        !           451:        //
        !           452:        CRmvFtDlg   dlg;
        !           453:        if (dlg.DoModal() != IDOK || dlg.m_iFont == -1)
        !           454:                return;     // cancelled or no selection
        !           455: 
        !           456:        POSITION posFont = fontList.FindIndex(dlg.m_iFont);
        !           457:        ASSERT(posFont != NULL);
        !           458: 
        !           459:        // Remove it.  Tell all the apps.
        !           460:        //
        !           461:        RemoveFontResource((LPSTR)(LPCSTR)fontList.GetAt(posFont));
        !           462:        ::SendMessage((HWND) 0xFFFF, WM_FONTCHANGE, NULL, (LONG) NULL);
        !           463: 
        !           464:        // Remove that element in the list.
        !           465:        //
        !           466:        fontList.RemoveAt(posFont);
        !           467: }
        !           468: 
        !           469: /////////////////////////////////////////////////////////////////////////////
        !           470: // Cleanup on exit
        !           471: 
        !           472: void CMainWindow::OnDestroy()
        !           473: {
        !           474:        // Remove any fonts that were added.
        !           475:        //
        !           476:        while (!fontList.IsEmpty())
        !           477:                RemoveFontResource((LPSTR)(LPCSTR)fontList.RemoveHead());
        !           478: 
        !           479:        // Notify any other applications that the fonts have been deleted.
        !           480:        //
        !           481:        ::SendMessage((HWND) 0xFFFF, WM_FONTCHANGE, NULL, (LONG) NULL);
        !           482: 
        !           483:        // Terminate ourselves.
        !           484:        //
        !           485:        PostQuitMessage(0);
        !           486: }
        !           487: 
        !           488: /////////////////////////////////////////////////////////////////////////////
        !           489: // Routines that must enumerate all fonts.
        !           490: // (These keep the font names and sizes in global variables.)
        !           491: 
        !           492: int FAR PASCAL _export EnumFunc(LPLOGFONT lpLogFont, LPTEXTMETRIC, short, 
        !           493:                LPSTR lpData)
        !           494: {
        !           495:        switch (LOWORD((DWORD)lpData))
        !           496:        {
        !           497:                case 0:
        !           498:                        if (FontIndex >= MAXFONT)
        !           499:                                return (0);
        !           500:                        _fstrcpy(FontList[FontIndex], (PSTR)lpLogFont->lfFaceName);
        !           501:                        CharSet[FontIndex] = lpLogFont->lfCharSet;
        !           502:                        PitchAndFamily[FontIndex] = lpLogFont->lfPitchAndFamily;
        !           503:                        return (++FontIndex);
        !           504: 
        !           505:                case 1:
        !           506:                        if (SizeIndex >= MAXSIZE)
        !           507:                                return (0);
        !           508:                        SizeList[SizeIndex] = lpLogFont->lfHeight;
        !           509:                        return (++SizeIndex);
        !           510:        }
        !           511:        ASSERT(FALSE);
        !           512:        return 0;
        !           513: }
        !           514: 
        !           515: void CMainWindow::OnFontChange()
        !           516: {
        !           517:        FontIndex = 0;
        !           518:        SizeIndex = 0;
        !           519:        CClientDC dc(this);
        !           520: #ifdef _NTWIN
        !           521:        ::EnumFonts(dc.m_hDC, NULL, (FONTENUMPROC)EnumFunc, NULL);
        !           522: #else
        !           523:        ::EnumFonts(dc.m_hDC, NULL, (OLDFONTENUMPROC)EnumFunc, NULL);
        !           524: #endif
        !           525: }
        !           526: 
        !           527: static void GetSizes(CWnd* wnd, int iCurrentFont)
        !           528: {
        !           529:        SizeIndex = 0;
        !           530:        CClientDC dc(wnd);
        !           531: 
        !           532: #ifdef _NTWIN
        !           533: #ifdef STRICT
        !           534:        ::EnumFonts(dc.m_hDC, FontList[iCurrentFont], (FONTENUMPROC)EnumFunc, (LPARAM)1L);
        !           535: #else
        !           536:        ::EnumFonts(dc.m_hDC, FontList[iCurrentFont], (FONTENUMPROC)EnumFunc, (LPARAM)1L);
        !           537: #endif // STRICT
        !           538: #else
        !           539: #ifdef STRICT
        !           540:        ::EnumFonts(dc.m_hDC, FontList[iCurrentFont], (OLDFONTENUMPROC)EnumFunc, 1L);
        !           541: #else
        !           542:        ::EnumFonts(dc.m_hDC, FontList[iCurrentFont], (OLDFONTENUMPROC)EnumFunc, (LPSTR)1L);
        !           543: #endif // STRICT
        !           544: #endif // NTWIN
        !           545: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.