|
|
/*++
Copyright (c) 1994-1998, Microsoft Corporation All rights reserved.
Module Name:
worldmap.h
Abstract:
This module contains the information for the world map for the Date/Time applet.
Revision History:
--*/
#ifndef _WORLDMAP_H
#define _WORLDMAP_H
//
// Constant Declarations.
//
#define WORLDMAP_MAX_DIRTY_SPANS 4
#define WORLDMAP_MAX_COLORS 256
//
// Typedef Declarations.
//
typedef struct { HDC dc; HBITMAP bitmap; HBITMAP defbitmap;
} CDC, *LPCDC;
typedef struct dirtyspan { int left; int right; struct dirtyspan *next;
} DIRTYSPAN;
typedef struct { int first; int last; DIRTYSPAN *spans; DIRTYSPAN *freespans; RGBQUAD colors[WORLDMAP_MAX_COLORS];
} DIRTYSTUFF;
typedef struct tagWORLDMAP { CDC original; CDC prepared; SIZE size; BYTE *bits; LONG scanbytes; int rotation; HDC source; DIRTYSTUFF dirty; // keep at end (>1k)
} WORLDMAP, *LPWORLDMAP;
//
// Function Prototypes.
//
typedef void (*ENUMSPANPROC)(LPARAM data, int left, int right);
BOOL LoadWorldMap( LPWORLDMAP map, HINSTANCE instance, LPCTSTR resource);
void FreeWorldMap( LPWORLDMAP map);
void SetWorldMapRotation( LPWORLDMAP map, int rotation);
void RotateWorldMap( LPWORLDMAP map, int delta);
int WorldMapGetDisplayedLocation( LPWORLDMAP map, int pos);
void EnumWorldMapDirtySpans( LPWORLDMAP map, ENUMSPANPROC proc, LPARAM data, BOOL rotate);
void ChangeWorldMapColor( LPWORLDMAP map, int index, const RGBQUAD *color, int x, int cx);
int GetWorldMapColorIndex( LPWORLDMAP map, int x, int y);
void DrawWorldMap( HDC dc, int xdst, int ydst, int cx, int cy, LPWORLDMAP map, int xmap, int ymap, DWORD rop);
#endif // _WORLDMAP_H
|