windows-nt/Source/XPSP1/NT/shell/cpls/utc/worldmap.h
2020-09-26 16:20:57 +08:00

146 lines
1.8 KiB
C

/*++
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