⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cal.htm

📁 各种文件格式说明及程序描述
💻 HTM
字号:
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>new page 2</title>
<meta name="generator" content="microsoft frontpage 3.0">
</head>

<body background="../jpg/di1.JPG">

<p align="center"><font size="6" color="#0000ff">.cal calendar file format</font></p>
<div align="center"><center>

<table border="0" width="88%">
<tr>
<td width="100%"><br>
<br>
this topic describes the binary file format used by microsoft windows calendar
(calendar.exe). a calendar binary file <br>
contains information about file content, dates, days, and appointments. <br>
<br>
calendar-file header<br>
<br>
the first 8 bytes of a calendar file are a character array identifying the file as a
calendar file. following are the contents of the <br>
array: <br>
<br>
<br>
<br>
'c' + 'r' = b5<br>
'a' + 'a' = a2<br>
'l' + 'd' = b0<br>
'e' + 'n' = b3<br>
'n' + 'e' = b3<br>
'd' + 'l' = b0<br>
'a' + 'a' = a2<br>
'r' + 'c' = b5<br>
<br>
the next 2 bytes (cdatedescriptors) contain the integer count of dates described in the
file. <br>
the next 12 bytes contain six 2-byte fields of information that is global to the entire
file. these variables are normally set by the <br>
user through the alarm controls and options day dialog boxes. the header information has
the following form: <br>
<br>
<br>
<br>
word minearlyring<br>
bool fsound<br>
int interval<br>
int mininterval<br>
bool f24hourformat<br>
int starttime<br>
<br>
following are the members in the header structure: <br>
<br>
minearlyring&nbsp;&nbsp;&nbsp; specifies an early ring, in minutes. <br>
fsound&nbsp;&nbsp;&nbsp; specifies whether alarms should be audible. <br>
interval&nbsp;&nbsp;&nbsp; specifies the interval between appointments: 0 = 15 minutes, 1
= 30 minutes, 2 = 60 minutes. <br>
mininterval&nbsp;&nbsp;&nbsp; specifies the interval, in minutes. <br>
f24hourformat&nbsp;&nbsp;&nbsp; specifies the time format: nonzero=24-hour format. <br>
starttime&nbsp;&nbsp;&nbsp; specifies the starting time in day mode--that is, the time
that normally appears first in the display, in minutes <br>
past midnight. <br>
<br>
the rest of the first 64 bytes are reserved. <br>
<br>
date descriptors<br>
<br>
a date-descriptor array appears next. each entry in the array describes one day. the
number of entries in the array is <br>
cdatedescriptors (described in the preceding section). each element in the array consists
of 12 bytes, in six 2-byte fields. <br>
the date-descriptor array has the following form: <br>
<br>
<br>
<br>
unsigned date<br>
int fmarked<br>
int calarms<br>
unsigned fileblockoffset<br>
int reserved<br>
unsigned reserved<br>
<br>
following are the members in the date-descriptor array: <br>
<br>
date&nbsp;&nbsp;&nbsp; specifies the date, in days past 1/1/1980. <br>
fmarked&nbsp;&nbsp;&nbsp; specifies which mark(s) are set for the date: box = 128,
parentheses = 256, circle = 512, cross = 1024, <br>
underscore = 2048. <br>
calarms&nbsp;&nbsp;&nbsp; specifies the number of alarms set for the day. <br>
fileblockoffset&nbsp;&nbsp;&nbsp; specifies the file offset, in 64-byte blocks, to the
day's information. only the low 15 bits are used (the high bit <br>
will be zero). thus, if this offset is 6, the day's information is stored at byte 6*64 in
the file. <br>
reserved&nbsp;&nbsp;&nbsp; reserved; must be 0xfff. <br>
reserved&nbsp;&nbsp;&nbsp; reserved; must be 0xfff. <br>
<br>
day-specific information<br>
<br>
all day information is stored after the date-descriptor array, on even 64-byte boundaries.
the day-information structure has the <br>
following form: <br>
<br>
<br>
<br>
unsigned reserved<br>
unsigned date<br>
unsigned reserved<br>
unsigned cbnotes<br>
unsigned cbappointment<br>
char notes[cbnotes]<br>
byte apptinfo[]<br>
<br>
following are the members in the day-information structure: <br>
<br>
reserved&nbsp;&nbsp;&nbsp; reserved; must be zero. <br>
date&nbsp;&nbsp;&nbsp; specifies the date, in days past 1/1/1980. <br>
reserved&nbsp;&nbsp;&nbsp; reserved; must be 1. <br>
cbnotes&nbsp;&nbsp;&nbsp; specifies the number of bytes of note information, including
null bytes. this information appears in the note <br>
array below the appointment list. <br>
cbappointment&nbsp;&nbsp;&nbsp; specifies the count of bytes of appointment information. <br>
notes&nbsp;&nbsp;&nbsp; contains the text of the note. <br>
apptinfo&nbsp;&nbsp;&nbsp; contains the block of appointments. <br>
<br>
appointment-specific information<br>
<br>
the information in the appointment block is stored as a list of single appointments. each
appointment consists of a structure <br>
similar to the following: <br>
<br>
<br>
<br>
struct {<br>
char cb;<br>
char flags;<br>
int time;<br>
char szapptdesc[];<br>
};<br>
<br>
following are the members in each appointment structure: <br>
<br>
cb&nbsp;&nbsp;&nbsp; specifies the size, in bytes, of the structure containing the
appointment. the structure address of the next <br>
appointment is the current appointment plus the value of the cb member. <br>
flags&nbsp;&nbsp;&nbsp; contains various flags. this member can have one or more of the
following values: <br>
<br>
value&nbsp;&nbsp;&nbsp; meaning<br>
<br>
1&nbsp;&nbsp;&nbsp; alarm will go off at the specified time of the appointment. <br>
2&nbsp;&nbsp;&nbsp; appointment is a special time. <br>
<br>
time&nbsp;&nbsp;&nbsp; specifies the number of minutes past midnight. <br>
szapptdesc&nbsp;&nbsp;&nbsp; contains a null-terminated string consisting of text
associated with an appointment. <br>
<br>
<br>
&#26;</td>
</tr>
</table>
</center></div>
<p align="center"><a href="../index.htm">返回</a></p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -