Annotation of mstools/samples/mfedit/mfedit.h, revision 1.1

1.1     ! root        1: /******************************Module*Header*******************************\
        !             2: * Module Name: mfedit.h
        !             3: *
        !             4: * Header file for mfedit
        !             5: *
        !             6: * Created: 28-May-1992 14:57:56
        !             7: * Author: Petrus Wong
        !             8: *
        !             9: * Copyright (c) 1990 Microsoft Corporation
        !            10: *
        !            11: * Contains all the definitions, global variables, structures, etc
        !            12: *
        !            13: * Dependencies:
        !            14: *
        !            15: *   metadef.h
        !            16: *
        !            17: \**************************************************************************/
        !            18: #include <windows.h>
        !            19: #include <string.h>
        !            20: 
        !            21: #define LIGHTGRAY               RGB(192, 192, 192)
        !            22: #define DARKGRAY                RGB(128, 128, 128)
        !            23: #define MAX_POINTS              256
        !            24: #define MAX_POINTS_MF           3
        !            25: #define MAX_POINTS_BMP          3
        !            26: //
        !            27: // Menu ID's
        !            28: //
        !            29: #define MM_LOAD                 7001
        !            30: #define MM_RECORD               7002
        !            31: #define MM_PRINT                7003
        !            32: #define MM_PAGESETUP            7004
        !            33: #define MM_PRINTSETUP           7005
        !            34: #define MM_ABOUT                7006
        !            35: #define MM_CUT                  7007
        !            36: #define MM_COPY                 7008
        !            37: #define MM_PASTE                7009
        !            38: #define MM_DEL                  7010
        !            39: #define MM_LOAD_BMP             7011
        !            40: #define MM_SAVE_BMP             7012
        !            41: #define MM_LOAD_MASKBMP         7013
        !            42: #define MM_REMOVE               7014
        !            43: #define MM_INSERT               7015
        !            44: #define MM_HITTEST              7016
        !            45: #define MM_REPEAT               7017
        !            46: #define MM_INCREASE             7018
        !            47: #define MM_NORMAL               7019
        !            48: #define MM_DECREASE             7020
        !            49: #define MM_PEN                  7021
        !            50: #define MM_BRUSH                7022
        !            51: #define MM_FONT                 7023
        !            52: 
        !            53: #define SIZEOFCAPTIONTEXT      20
        !            54: 
        !            55: #define ACCEL_ID                100
        !            56: #define APPICON                 100
        !            57: 
        !            58: //
        !            59: // Control Panel ID's
        !            60: //
        !            61: #define OD_BTN_CNT              5
        !            62: #define DID_CTRLPANEL           100
        !            63: #define DID_ZERO                1000
        !            64: #define DID_ONE                 1001
        !            65: #define DID_TWO                 1002
        !            66: #define DID_THREE               1003
        !            67: #define DID_FOUR                1004
        !            68: #define DID_FIVE                1005
        !            69: #define DID_SIX                 1006
        !            70: #define DID_SEVEN               1007
        !            71: #define DID_EIGHT               1008
        !            72: #define DID_NINE                1009
        !            73: #define DID_TEN_PLUS            1010
        !            74: #define ID_OD_BTN_BASE          1011
        !            75: #define DID_OPEN                1011
        !            76: #define DID_RECORD              1012
        !            77: #define DID_STOP                1013
        !            78: #define DID_PLAY                1014
        !            79: #define DID_FF                  1015
        !            80: #define DID_CLEAR               1016
        !            81: #define DID_COUNTER             1017
        !            82: 
        !            83: //
        !            84: // Control Panel's Owner draw bitmaps
        !            85: //
        !            86: #define BMID_BASED              1011
        !            87: #define BMID_OPEND              1011
        !            88: #define BMID_RECORDD            1012
        !            89: #define BMID_STOPD              1013
        !            90: #define BMID_PLAYD              1014
        !            91: #define BMID_FFD                1015
        !            92: #define BMID_BASEU              2011
        !            93: #define BMID_OPENU              2011
        !            94: #define BMID_RECORDU            2012
        !            95: #define BMID_STOPU              2013
        !            96: #define BMID_PLAYU              2014
        !            97: #define BMID_FFU                2015
        !            98: 
        !            99: //
        !           100: // Tools ID's
        !           101: //
        !           102: #define OD_TOOL_CNT             10
        !           103: #define ID_OD_TOOL_BASE         3001
        !           104: #define DID_PEN                 3001
        !           105: #define DID_TEXT                3002
        !           106: #define DID_RECT                3003
        !           107: #define DID_FILLRECT            3004
        !           108: #define DID_ELLIPSE             3005
        !           109: #define DID_FILLELLIPSE         3006
        !           110: #define DID_LINE                3007
        !           111: #define DID_BEZIER              3008
        !           112: #define DID_BMPOBJ              3009
        !           113: #define DID_METAF               3010
        !           114: 
        !           115: //
        !           116: // Tools Owner Draw bitmaps
        !           117: //
        !           118: #define BMID_TOOLBASED          3001
        !           119: #define BMID_PEND               3001
        !           120: #define BMID_TEXTD              3002
        !           121: #define BMID_RECTD              3003
        !           122: #define BMID_FILLRECTD          3004
        !           123: #define BMID_ELLIPSED           3005
        !           124: #define BMID_FILLELLIPSED       3006
        !           125: #define BMID_LINED              3007
        !           126: #define BMID_BEZIERD            3008
        !           127: #define BMID_BMPOBJD            3009
        !           128: #define BMID_METAFD             3010
        !           129: #define BMID_TOOLBASEU          4001
        !           130: #define BMID_PENU               4001
        !           131: #define BMID_TEXTU              4002
        !           132: #define BMID_RECTU              4003
        !           133: #define BMID_FILLRECTU          4004
        !           134: #define BMID_ELLIPSEU           4005
        !           135: #define BMID_FILLELLIPSEU       4006
        !           136: #define BMID_LINEU              4007
        !           137: #define BMID_BEZIERU            4008
        !           138: #define BMID_BMPOBJU            4009
        !           139: #define BMID_METAFU             4010
        !           140: 
        !           141: #define MR_MIN                     1
        !           142: 
        !           143: #define MR_METAFILE                1
        !           144: #define MR_POLYBEZIER              2
        !           145: #define MR_POLYGON                 3
        !           146: #define MR_POLYLINE                4
        !           147: #define MR_POLYBEZIERTO                    5
        !           148: #define MR_POLYLINETO              6
        !           149: #define MR_POLYPOLYLINE                    7
        !           150: #define MR_POLYPOLYGON             8
        !           151: #define MR_SETWINDOWEXTEX          9
        !           152: #define MR_SETWINDOWORGEX          10
        !           153: #define MR_SETVIEWPORTEXTEX        11
        !           154: #define MR_SETVIEWPORTORGEX        12
        !           155: #define MR_SETBRUSHORGEX           13
        !           156: #define MR_EOF                     14
        !           157: #define MR_SETPIXELV               15
        !           158: #define MR_SETMAPPERFLAGS          16
        !           159: #define MR_SETMAPMODE              17
        !           160: #define MR_SETBKMODE               18
        !           161: #define MR_SETPOLYFILLMODE         19
        !           162: #define MR_SETROP2                 20
        !           163: #define MR_SETSTRETCHBLTMODE       21
        !           164: #define MR_SETTEXTALIGN                    22
        !           165: 
        !           166: #define MR_SETTEXTCOLOR                    24
        !           167: #define MR_SETBKCOLOR              25
        !           168: #define MR_OFFSETCLIPRGN           26
        !           169: #define MR_MOVETOEX                27
        !           170: #define MR_SETMETARGN              28
        !           171: #define MR_EXCLUDECLIPRECT         29
        !           172: #define MR_INTERSECTCLIPRECT       30
        !           173: #define MR_SCALEVIEWPORTEXTEX      31
        !           174: #define MR_SCALEWINDOWEXTEX        32
        !           175: #define MR_SAVEDC                  33
        !           176: #define MR_RESTOREDC               34
        !           177: #define MR_SETWORLDTRANSFORM       35
        !           178: #define MR_MODIFYWORLDTRANSFORM            36
        !           179: #define MR_SELECTOBJECT                    37
        !           180: #define MR_CREATEPEN               38
        !           181: #define MR_CREATEBRUSHINDIRECT     39
        !           182: #define MR_DELETEOBJECT                    40
        !           183: #define MR_ANGLEARC                41
        !           184: #define MR_ELLIPSE                 42
        !           185: #define MR_RECTANGLE               43
        !           186: #define MR_ROUNDRECT               44
        !           187: #define MR_ARC                     45
        !           188: #define MR_CHORD                   46
        !           189: #define MR_PIE                     47
        !           190: #define MR_SELECTPALETTE           48
        !           191: #define MR_CREATEPALETTE           49
        !           192: #define MR_SETPALETTEENTRIES       50
        !           193: #define MR_RESIZEPALETTE           51
        !           194: #define MR_REALIZEPALETTE          52
        !           195: #define MR_EXTFLOODFILL                    53
        !           196: #define MR_LINETO                  54
        !           197: #define MR_ARCTO                   55
        !           198: #define MR_POLYDRAW                56
        !           199: #define MR_SETARCDIRECTION         57
        !           200: #define MR_SETMITERLIMIT           58
        !           201: #define MR_BEGINPATH               59
        !           202: #define MR_ENDPATH                 60
        !           203: #define MR_CLOSEFIGURE             61
        !           204: #define MR_FILLPATH                62
        !           205: #define MR_STROKEANDFILLPATH       63
        !           206: #define MR_STROKEPATH              64
        !           207: #define MR_FLATTENPATH             65
        !           208: #define MR_WIDENPATH               66
        !           209: #define MR_SELECTCLIPPATH          67
        !           210: #define MR_ABORTPATH               68
        !           211: 
        !           212: #define MR_GDICOMMENT              70
        !           213: #define MR_FILLRGN                 71
        !           214: #define MR_FRAMERGN                72
        !           215: #define MR_INVERTRGN               73
        !           216: #define MR_PAINTRGN                74
        !           217: #define MR_EXTSELECTCLIPRGN        75
        !           218: #define MR_BITBLT                  76
        !           219: #define MR_STRETCHBLT              77
        !           220: #define MR_MASKBLT                 78
        !           221: #define MR_PLGBLT                  79
        !           222: #define MR_SETDIBITSTODEVICE       80
        !           223: #define MR_STRETCHDIBITS           81
        !           224: #define MR_EXTCREATEFONTINDIRECTW   82
        !           225: #define MR_EXTTEXTOUTA             83
        !           226: #define MR_EXTTEXTOUTW             84
        !           227: #define MR_POLYBEZIER16                    85
        !           228: #define MR_POLYGON16               86
        !           229: #define MR_POLYLINE16              87
        !           230: #define MR_POLYBEZIERTO16          88
        !           231: #define MR_POLYLINETO16                    89
        !           232: #define MR_POLYPOLYLINE16          90
        !           233: #define MR_POLYPOLYGON16           91
        !           234: #define MR_POLYDRAW16              92
        !           235: #define MR_CREATEMONOBRUSH         93
        !           236: #define MR_CREATEDIBPATTERNBRUSHPT  94
        !           237: #define MR_EXTCREATEPEN                    95
        !           238: #define MR_MAX                     95
        !           239: 
        !           240: 
        !           241: //
        !           242: // some handy macros
        !           243: //
        !           244: #define GET_WM_CTLCOLOR_HDC(wp, lp, msg)        (HDC)(wp)
        !           245: #define GET_WM_CTLCOLOR_HWND(wp, lp, msg)       (HWND)(lp)
        !           246: #define GET_WM_CTLCOLOR_TYPE(wp, lp, msg)       (WORD)(msg - WM_CTLCOLORMSGBOX)
        !           247: 
        !           248: typedef struct _playinfo {
        !           249:     int iRecord;
        !           250:     BOOL bPlayContinuous;
        !           251: } PLAYINFO;
        !           252: 
        !           253: typedef struct _metalookup {
        !           254:     LPSTR   szGDIName;
        !           255:     int     iMRNumber;
        !           256: } METALOOKUP;
        !           257: 
        !           258: typedef struct _htdata {
        !           259:     POINT   point;
        !           260:     int     iRecord;
        !           261: } HTDATA;
        !           262: 
        !           263: METALOOKUP rgMetaName[] =
        !           264: {
        !           265:    { "                          ", 0                         },
        !           266:    { "METAFILE                  ", MR_METAFILE               },
        !           267:    { "POLYBEZIER                ", MR_POLYBEZIER             },
        !           268:    { "POLYGON                   ", MR_POLYGON                },
        !           269:    { "POLYLINE                  ", MR_POLYLINE               },
        !           270:    { "POLYBEZIERTO              ", MR_POLYBEZIERTO           },
        !           271:    { "POLYLINETO                ", MR_POLYLINETO             },
        !           272:    { "POLYPOLYLINE              ", MR_POLYPOLYLINE           },
        !           273:    { "POLYPOLYGON               ", MR_POLYPOLYGON            },
        !           274:    { "SETWINDOWEXTEX            ", MR_SETWINDOWEXTEX         },
        !           275:    { "SETWINDOWORGEX            ", MR_SETWINDOWORGEX         },
        !           276:    { "SETVIEWPORTEXTEX          ", MR_SETVIEWPORTEXTEX       },
        !           277:    { "SETVIEWPORTORGEX          ", MR_SETVIEWPORTORGEX       },
        !           278:    { "SETBRUSHORGEX             ", MR_SETBRUSHORGEX          },
        !           279:    { "EOF                       ", MR_EOF                    },
        !           280:    { "SETPIXELV                 ", MR_SETPIXELV              },
        !           281:    { "SETMAPPERFLAGS            ", MR_SETMAPPERFLAGS         },
        !           282:    { "SETMAPMODE                ", MR_SETMAPMODE             },
        !           283:    { "SETBKMODE                 ", MR_SETBKMODE              },
        !           284:    { "SETPOLYFILLMODE           ", MR_SETPOLYFILLMODE        },
        !           285:    { "SETROP2                   ", MR_SETROP2                },
        !           286:    { "SETSTRETCHBLTMODE         ", MR_SETSTRETCHBLTMODE      },
        !           287:    { "SETTEXTALIGN              ", MR_SETTEXTALIGN           },
        !           288:    { "UNKNOWN                   ", 23                        },
        !           289:    { "SETTEXTCOLOR              ", MR_SETTEXTCOLOR           },
        !           290:    { "SETBKCOLOR                ", MR_SETBKCOLOR             },
        !           291:    { "OFFSETCLIPRGN             ", MR_OFFSETCLIPRGN          },
        !           292:    { "MOVETOEX                  ", MR_MOVETOEX               },
        !           293:    { "SETMETARGN                ", MR_SETMETARGN             },
        !           294:    { "EXCLUDECLIPRECT           ", MR_EXCLUDECLIPRECT        },
        !           295:    { "INTERSECTCLIPRECT         ", MR_INTERSECTCLIPRECT      },
        !           296:    { "SCALEVIEWPORTEXTEX        ", MR_SCALEVIEWPORTEXTEX     },
        !           297:    { "SCALEWINDOWEXTEX          ", MR_SCALEWINDOWEXTEX       },
        !           298:    { "SAVEDC                    ", MR_SAVEDC                 },
        !           299:    { "RESTOREDC                 ", MR_RESTOREDC              },
        !           300:    { "SETWORLDTRANSFORM         ", MR_SETWORLDTRANSFORM      },
        !           301:    { "MODIFYWORLDTRANSFORM      ", MR_MODIFYWORLDTRANSFORM   },
        !           302:    { "SELECTOBJECT              ", MR_SELECTOBJECT           },
        !           303:    { "CREATEPEN                 ", MR_CREATEPEN              },
        !           304:    { "CREATEBRUSHINDIRECT       ", MR_CREATEBRUSHINDIRECT    },
        !           305:    { "DELETEOBJECT              ", MR_DELETEOBJECT           },
        !           306:    { "ANGLEARC                  ", MR_ANGLEARC               },
        !           307:    { "ELLIPSE                   ", MR_ELLIPSE                },
        !           308:    { "RECTANGLE                 ", MR_RECTANGLE              },
        !           309:    { "ROUNDRECT                 ", MR_ROUNDRECT              },
        !           310:    { "ARC                       ", MR_ARC                    },
        !           311:    { "CHORD                     ", MR_CHORD                  },
        !           312:    { "PIE                       ", MR_PIE                    },
        !           313:    { "SELECTPALETTE             ", MR_SELECTPALETTE          },
        !           314:    { "CREATEPALETTE             ", MR_CREATEPALETTE          },
        !           315:    { "SETPALETTEENTRIES         ", MR_SETPALETTEENTRIES      },
        !           316:    { "RESIZEPALETTE             ", MR_RESIZEPALETTE          },
        !           317:    { "REALIZEPALETTE            ", MR_REALIZEPALETTE         },
        !           318:    { "EXTFLOODFILL              ", MR_EXTFLOODFILL           },
        !           319:    { "LINETO                    ", MR_LINETO                 },
        !           320:    { "ARCTO                     ", MR_ARCTO                  },
        !           321:    { "POLYDRAW                  ", MR_POLYDRAW               },
        !           322:    { "SETARCDIRECTION           ", MR_SETARCDIRECTION        },
        !           323:    { "SETMITERLIMIT             ", MR_SETMITERLIMIT          },
        !           324:    { "BEGINPATH                 ", MR_BEGINPATH              },
        !           325:    { "ENDPATH                   ", MR_ENDPATH                },
        !           326:    { "CLOSEFIGURE               ", MR_CLOSEFIGURE            },
        !           327:    { "FILLPATH                  ", MR_FILLPATH               },
        !           328:    { "STROKEANDFILLPATH         ", MR_STROKEANDFILLPATH      },
        !           329:    { "STROKEPATH                ", MR_STROKEPATH             },
        !           330:    { "FLATTENPATH               ", MR_FLATTENPATH            },
        !           331:    { "WIDENPATH                 ", MR_WIDENPATH              },
        !           332:    { "SELECTCLIPPATH            ", MR_SELECTCLIPPATH         },
        !           333:    { "ABORTPATH                 ", MR_ABORTPATH              },
        !           334:    { "UNKNOWN                   ", 69                        },
        !           335:    { "GDICOMMENT                ", MR_GDICOMMENT             },
        !           336:    { "FILLRGN                   ", MR_FILLRGN                },
        !           337:    { "FRAMERGN                  ", MR_FRAMERGN               },
        !           338:    { "INVERTRGN                 ", MR_INVERTRGN              },
        !           339:    { "PAINTRGN                  ", MR_PAINTRGN               },
        !           340:    { "EXTSELECTCLIPRGN          ", MR_EXTSELECTCLIPRGN       },
        !           341:    { "BITBLT                    ", MR_BITBLT                 },
        !           342:    { "STRETCHBLT                ", MR_STRETCHBLT             },
        !           343:    { "MASKBLT                   ", MR_MASKBLT                },
        !           344:    { "PLGBLT                    ", MR_PLGBLT                 },
        !           345:    { "SETDIBITSTODEVICE         ", MR_SETDIBITSTODEVICE      },
        !           346:    { "STRETCHDIBITS             ", MR_STRETCHDIBITS          },
        !           347:    { "EXTCREATEFONTINDIRECTW    ", MR_EXTCREATEFONTINDIRECTW },
        !           348:    { "EXTTEXTOUTA               ", MR_EXTTEXTOUTA            },
        !           349:    { "EXTTEXTOUTW               ", MR_EXTTEXTOUTW            },
        !           350:    { "POLYBEZIER16              ", MR_POLYBEZIER16           },
        !           351:    { "POLYGON16                 ", MR_POLYGON16              },
        !           352:    { "POLYLINE16                ", MR_POLYLINE16             },
        !           353:    { "POLYBEZIERTO16            ", MR_POLYBEZIERTO16         },
        !           354:    { "POLYLINETO16              ", MR_POLYLINETO16           },
        !           355:    { "POLYPOLYLINE16            ", MR_POLYPOLYLINE16         },
        !           356:    { "POLYPOLYGON16             ", MR_POLYPOLYGON16          },
        !           357:    { "POLYDRAW16                ", MR_POLYDRAW16             },
        !           358:    { "CREATEMONOBRUSH           ", MR_CREATEMONOBRUSH        },
        !           359:    { "CREATEDIBPATTERNBRUSHPT   ", MR_CREATEDIBPATTERNBRUSHPT},
        !           360:    { "EXTCREATEPEN              ", MR_EXTCREATEPEN           },
        !           361:    };
        !           362: 
        !           363: HANDLE  ghModule;
        !           364: HWND    ghwndMain   = NULL;
        !           365: HWND    ghwndClient = NULL;
        !           366: HWND    ghwndDrawSurf = NULL;
        !           367: HWND    ghwndCtrlPanel = NULL;
        !           368: HWND    ghwndTools = NULL;
        !           369: HWND    ghTextWnd = NULL;
        !           370: 
        !           371: LONG    glcyStatus;
        !           372: BOOL    gbRecording = FALSE;
        !           373: BOOL    gbHitTest = FALSE;
        !           374: 
        !           375: #if 0   // STRICT doesn't like this
        !           376: HWND    grHwndCtrlBtn[OD_BTN_CNT];
        !           377: HWND    grHwndToolBtn[OD_TOOL_CNT];
        !           378: #endif
        !           379: PVOID   grHwndCtrlBtn[OD_BTN_CNT];
        !           380: PVOID   grHwndToolBtn[OD_TOOL_CNT];
        !           381: 
        !           382: DWORD   gdwCurCtrl = DID_STOP;
        !           383: DWORD   gdwCurTool = DID_PEN;
        !           384: 
        !           385: HFONT    ghCurFont;
        !           386: LOGFONT  glf;
        !           387: COLORREF gCrText=0;                         // Black
        !           388: 
        !           389: HMENU   hMenu,      hMenuWindow;
        !           390: HMENU   hChildMenu, hChildMenuWindow;
        !           391: HDC     ghDCMem;
        !           392: HDC     ghDCMetaf = (HDC) NULL;
        !           393: HANDLE  ghMetaf = NULL;
        !           394: HBITMAP ghBmp = NULL, ghBmpMask = NULL;
        !           395: 
        !           396: #if 0   // STRICT doesn't like this
        !           397: HBITMAP ghBmpDn[OD_BTN_CNT], ghBmpUp[OD_BTN_CNT];
        !           398: HBITMAP ghToolBmpDn[OD_TOOL_CNT], ghToolBmpUp[OD_TOOL_CNT];
        !           399: #endif
        !           400: PVOID   ghBmpDn[OD_BTN_CNT], ghBmpUp[OD_BTN_CNT];
        !           401: PVOID   ghToolBmpDn[OD_TOOL_CNT], ghToolBmpUp[OD_TOOL_CNT];
        !           402: 
        !           403: HBRUSH  ghbrRed;
        !           404: HBRUSH  ghbrCur;
        !           405: HPEN    ghpnCur;
        !           406: HBRUSH  ghbrAppBkgd;
        !           407: HPEN    ghpnWide;

unix.superglobalmegacorp.com

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