|
|
1.1 ! root 1: /* ! 2: ! 3: Copyright (c) 1985-91, Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: winmeta.h ! 8: ! 9: Abstract: ! 10: ! 11: Procedure declarations, constant definitions and macros for the ! 12: Metafile functions. ! 13: ! 14: Warning: ! 15: ! 16: This file is TEMPORARY and will be folded into wingdi.h when ! 17: we're allowed to. ! 18: ! 19: --*/ ! 20: ! 21: ! 22: // Metafile constants ! 23: ! 24: #define METAEX_SIGNATURE 0x464D544E // 'NTMF' ! 25: ! 26: #define METAEX_FORMAT_10000 0x10000 // Windows NT format ! 27: #define METAEX_FORMAT_300 0x300 // Windows 3.x format ! 28: ! 29: ! 30: // Metafile type definitions ! 31: ! 32: typedef struct tagMETARECORDEX ! 33: { ! 34: DWORD iType; // Record type MR_XXX ! 35: DWORD nSize; // Record size in bytes ! 36: DWORD dParm[1]; // Parameters ! 37: } METARECORDEX, *PMETARECORDEX, *LPMETARECORDEX; ! 38: ! 39: typedef struct tagMETAHEADEREX ! 40: { ! 41: DWORD iType; // Record type MR_METAFILE ! 42: DWORD nSize; // Record size in bytes ! 43: RECTL rclBounds; // Inclusive-inclusive bounds in device units ! 44: RECTL rclFrame; // Inclusive-inclusive Picture Frame of metafile in .01 mm units ! 45: DWORD dSignature; // Signature. Must be METAEX_SIGNATURE. ! 46: DWORD nVersion; // Version number ! 47: DWORD nBytes; // Size of the metafile in bytes ! 48: DWORD nRecords; // Number of records in the metafile ! 49: USHORT nHandles; // Number of handles in the handle table ! 50: // Handle index zero is reserved. ! 51: USHORT sReserved; // Reserved. Must be zero. ! 52: DWORD offDescription; // Offset to the metafile description record. ! 53: // This is zero if there is no metafile description. ! 54: DWORD nPalEntries; // Number of entries in the metafile palette. ! 55: DWORD offPalEntries; // Offset to the metafile palette record. ! 56: // This is zero if there is no metafile palette. ! 57: SIZEL szlDevice; // Size of the reference device in pels ! 58: SIZEL szlMillimeters; // Size of the reference device in millimeters ! 59: } METAHEADEREX, *PMETAHEADEREX, *LPMETAHEADEREX; ! 60: ! 61: ! 62: // Metafile Function Declarations ! 63: ! 64: HMF APIENTRY CloseMetaFileEx(IN HDC hDC); ! 65: #ifdef UNICODE ! 66: #define CopyMetaFileEx CopyMetaFileExW ! 67: #else ! 68: #define CopyMetaFileEx CopyMetaFileExA ! 69: #endif // !UNICODE ! 70: HMF APIENTRY CopyMetaFileExA(IN HMF,IN LPSTR); ! 71: HMF APIENTRY CopyMetaFileExW(IN HMF,IN LPWSTR); ! 72: ! 73: #ifdef UNICODE ! 74: #define CreateMetaFileEx CreateMetaFileExW ! 75: #else ! 76: #define CreateMetaFileEx CreateMetaFileExA ! 77: #endif // !UNICODE ! 78: HDC APIENTRY CreateMetaFileExA(IN HDC, IN LPSTR, IN LPRECT, IN LPSTR); ! 79: HDC APIENTRY CreateMetaFileExW(IN HDC, IN LPWSTR, IN LPRECT, IN LPWSTR); ! 80: ! 81: BOOL APIENTRY DeleteMetaFileEx(IN HMF); ! 82: #ifdef UNICODE ! 83: #define GetMetaFileEx GetMetaFileExW ! 84: #else ! 85: #define GetMetaFileEx GetMetaFileExA ! 86: #endif // !UNICODE ! 87: HMF APIENTRY GetMetaFileExA(IN LPSTR psz); ! 88: HMF APIENTRY GetMetaFileExW(IN LPWSTR pwsz); ! 89: ! 90: DWORD APIENTRY GetMetaFileBitsEx(IN HMF, IN DWORD, OUT LPBYTE, IN UINT, IN HDC); ! 91: UINT APIENTRY GetMetaFileHeaderEx(IN HMF, IN UINT, OUT LPMETAHEADEREX OPTIONAL); ! 92: ! 93: #ifdef UNICODE ! 94: #define GetMetaFileDescriptionEx GetMetaFileDescriptionExW ! 95: #else ! 96: #define GetMetaFileDescriptionEx GetMetaFileDescriptionExA ! 97: #endif // !UNICODE ! 98: UINT APIENTRY GetMetaFileDescriptionExA(IN HMF, IN UINT, OUT LPSTR OPTIONAL); ! 99: UINT APIENTRY GetMetaFileDescriptionExW(IN HMF, IN UINT, OUT LPWSTR OPTIONAL); ! 100: ! 101: UINT APIENTRY GetMetaFilePaletteEntriesEx(IN HMF, IN UINT, OUT LPPALETTEENTRY OPTIONAL); ! 102: BOOL APIENTRY EnumMetaFileEx(IN HDC hdc, IN HMF hmf, IN PROC pfn, IN LPVOID pv); ! 103: BOOL APIENTRY PlayMetaFileEx(IN HDC hDC, IN HMF hMF); ! 104: BOOL APIENTRY PlayMetaFileRecordEx(IN HDC, IN LPHANDLETABLE, IN LPMETARECORDEX, IN UINT); ! 105: HMF APIENTRY SetMetaFileBitsEx(IN DWORD, IN LPBYTE, IN HDC OPTIONAL, IN LPMETAFILEPICT OPTIONAL); ! 106: ! 107: BOOL APIENTRY GdiComment(IN HDC, IN UINT, IN LPBYTE);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.