第 十 四 章 使 用 N N T P 控 件
NNT P 是 N e tw ork ing N e w s T ra n s fe r P ro toc o l的 缩 写 意 为 网 络 新 闻 传 输 协 议C+ + Bu ild e r 3 从 N e t M a n a g e 公 司 引 进 的 NNT P 控 件 可 以 方 便 地 登 录 到 NNT P 新闻 服 务 器 下 载 可 用 的 新 闻 组 列 表 选 择 新 闻 组 读 取 新 闻 组 中 的 文 章 或者 张 贴 自 己 的 文 章
因 为 In te rn e t上 的 新 闻 组 很 多 每 个 新 闻 组 的 文 章 也 很 多 NNT P 控 件 具 有 很强 的 检 索 功 能 可 以 让 用 户 有 选 择 地 下 载 所 需 要 的 文 章 或 者 最 新 的 文 章 以 提 高 工 作 效 率
1 4. 1 NN TP 控 件 的 特 性
A tta c h F ile P a th 特 性
声 明 p ro p e r ty A tta c h F ile P a th : s tr in g ;
这 个 特 性 指 定 存 放 附 件 的 路 径 如 果 这 个 特 性 设 为 空 表 示 是 当 前 目 录
A tta c h m e n ts 特 性
声 明 p ro p e r ty A tta c h m e n ts : T S trin g L is t;
调 用 了 G e t A r tic le 函 数 后 这 个 特 性 返 回 一 个 列 表 列 表 中 包 含 附 件 的 名 称程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 A r tic le ( T O b je c t ∗ Se n d e r )
{
M e m o 1 -> T e x t = NM NNT P 1 -> A tta c h m e n ts -> T e x t ; M e m o2-> T e x t = N M N N T P 1 -> B o dy -> T e x t;
}
Bo d y 特 性
声 明 prope r ty B ody : T E x S tr ingL is t;
调 用 了 G e t A r tic le 函 数 或 G e tA r tic le B o d y 函 数 后 这 个 特 性 返 回 文 章 的 正 文
B y te s R ecv d 特 性
声 明 prope r ty B y te s R e c vd: long in t;
这 个 特 性 返 回 已 经 接 收 到 的 数 据 长 度 与 B y te s T o ta l特 性 配 合 使 用 可 以 显 示传 输 进 度
By te s S e n t 特 性
声 明 prope r ty B y te s S e n t: long in t;
这 个 特 性 返 回 已 经 向 新 闻 服 务 器 发 送 的 数 据 长 度
B y te s Tota l 特 性
声 明 prope r ty B y te s T o ta l : long in t;
这 个 特 性 返 回 总 共 要 传 输 多 少 个 字 节 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 P a c k e t R e c v d ( T O b je c t∗ Se n d e r )
{
S ta tu s B a r1 -> S im p le T e x t = In t T o S tr(N M N N T P 1 -> B y te s R e c v d )+ " b y te s o f " + In tT o S tr ( N M N N T P 1 -> B y te s T o tal)+ " receiv e d " ;
}
C a ch e M o d e 特 性
声 明 prope r ty C a c h e M ode : T C a c he M ode ;
如 果 这 个 特 性 设 为 cm R e m o te 表 示 只 从 新 闻 服 务 器 中 检 索 文 章 如 果 这 个特 性 设 为 c m L o cal 表 示 只 从 本 地 缓 存 中 检 索 文 章 如 果 这 个 特 性 设 为cm M ix e d 表 示 既 可 以 从 新 闻 服 务 器 中 检 索 文 章 也 可 以 从 本 地 缓 存 中 检 索 文章 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t * S e n d e r )
{
NM NNT P 1 -> T im e O u t = 2 0 0 0 0 ;
N M N N T P 1 -> N e w s D ir = " E :\\N e w s \\" ;
N M N N T P 1 -> A tta c h F ile P a th = " E :\\N e w s \\" ; NM NNT P 1 -> H o s t = " fo ru m s .b o r la n d . c o m " ; NM NNT P 1 -> P o r t = 1 1 9 ;
if ( E d it3 -> T e x t != " " )
{
NM NNT P 1 -> U s e r Id = E d i t 3 -> T e x t ;
NM NNT P 1 -> P a s s w o rd = E d i t 4 -> T e x t ;
}
if ( R a d io B u tto n 1 -> C h e c k e d )
N M N N T P 1 -> C a ch eM o d e = cm L o cal; if ( R a d io B u tto n 2 -> C h e c k e d )
N M N N T P 1 -> C a ch eM o d e = cm M ix e d ; if ( R a d io B u tto n 3 -> C h e c k e d )
N M N N T P 1 -> C a ch eM o d e = cm R e m o te ; if (C h e c k B o x 1 -> C h e c k e d )
NM NNT P 1 -> P a rs e A t ta c h m e n ts = tru e ;
els e
NM NNT P 1 -> P a rs e A t ta c h m e n ts = fa ls e ;
NM NNT P 1 -> C o n n e c t( ) ;
}
C o n n ecte d 特 性
声 明 prope r ty C onne c te d : boo le a n ;
如 果 当 前 与 新 闻 服 务 器 处 于 连 接 状 态 这 个 特 性 就 返 回 T ru e 程 序 示 例 如下
vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t ∗ Se n d e r )
{
if ( N M N N T P 1 -> C o nne c te d != true ) NM NNT P 1 -> C o n n e c t( ) ;
}
C u rren t A rtic le 特 性
声 明 p ro p e r ty C u r re n t A rtic le : in te g e r ;
这 个 特 性 返 回 当 前 文 章 的 编 号 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::B itB tn 2 C lic k ( T O b je c t ∗ Se n d e r )
{
S c re e n -> C u rs o r = c r H o u rg la s s ;
N M N N T P 1 -> G e tA rtic le ( N M N N T P 1 -> C u r re n tA rtic le + 1 ) ; S tr ing G r id1-> R ow = S tr ing G r id 1 -> R o w + 1
S c re e n -> C u rs o r = c r D e fa u l t ;
}
G ro upL is t 特 性
声 明 prope r ty G roupL is t: T S tr ingL is t;
调 用 了 G e t G roupL is t函 数 后 这 个 特 性 返 回 一 个 列 表 列 表 中 包 含 了 所 有 的新 闻 组 名 称 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::B itB tn 6 C lic k ( T O b je c t ∗ Se n d e r )
{
NM NNT P 1 -> G e t G ro u p L is t( ) ;
M e m o3-> L in e s -> A s s ign ( N M N N T P 1 -> G rou pL is t) ; S how M e s sa g e (" N e w s g ro up up da te c o m p le te " ) ;
}
H e a d e r 特 性
声 明 p ro p e r ty H e a d e r : T E x S trin g L is t;
调 用 了 G e t A r tic le 函 数 或 G e t A r tic le H ead er 函 数 后 这 个 特 性 返 回 当 前 文 章 的标 题
H iM e s s ag e 特 性
声 明 prope r ty H i M e s s a ge : in te ge r ;
调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 中 最 大 的 文 章 编号
H o s t 特 性
声 明 prope r ty H o s t: S tr ing;
这 个 特 性 用 于 指 定 要 连 接 的 NN T P 服 务 器 的 主 机 名 或 IP 地 址 默 认 值 是
ne w s
Lo c a l I P 特 性
声 明 prope r ty L o c a l IP : s tr ing ;
这 个 特 性 返 回 客 户 计 算 机 的 IP 地 址 如 果 计 算 机 有 多 个 IP 地 址 这 个 特 性 返回 其 中 第 一 个 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : B u tton9C l ic k ( TO b je c t∗ Se n d e r )
{
S h o w M e s sag e(" Y o u r lo c a l IP A d d ress is " + N M N N T P 1 -> L o cal IP ) ;
}
L o M e s s ag e 特 性
声 明 prope r ty L o M e s s a g e : in te ge r ;
调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 中 最 小 的 文 章 编号 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 G roupS e le c t( T O b je c t ∗ Se n d e r )
{
F o rm 1-> C a p t ion = " N N T P D e m o - [" + N M N N T P 1 -> S e le c te d G ro u p+ " L o :" +
In t T o S tr(N M N N T P 1 -> L o M e s s a g e )+ " H i :" + In t T o S tr(N M N N T P 1 -> H i M e s sa g e )+ " ]" ; if ( N M N N T P 1 -> P o s tin g )
F o rm 1 -> C a p tio n = F o rm 1 -> C a p tio n + " P o s tin g A llo w e d ]"
els e
}
F o rm 1 -> C a p tio n = F o rm 1 -> C a p tio n + " P o s tin g P ro h ib ite d ]" ;
N e w s D ir 特 性
声 明 prope r ty N e w s D ir : s tr ing;
这 个 特 性 用 于 指 定 一 个 目 录 临 时 存 放 文 章 如 果 这 个 特 性 设 为 空 就 是 当前 目 录
P a r s e A tta c h m en ts 特 性
声 明 prope r ty P a rs e A tta c h m e n ts : boo le a n ;
如 果 这 个 特 性 设 为 T ru e 将 自 动 从 文 章 中 把 附 件 解 码 并 分 离 出 来
Pa s sw o r d 特 性
声 明 prope r ty P a s s w ord: s tr ing;
登 录 到 有 的 新 闻 服 务 器 时 可 能 需 要 给 出 口 令
Po r t 特 性
声 明 prope r ty P o r t: L ong in t;
这 个 特 性 用 于 指 定 要 连 接 的 NN T P 服 务 器 的 端 口 号 默 认 是 119
Po s t B o d y 特 性
声 明 prope r ty P o s t B o d y : T E x S tr ingL is t ;
这 个 特 性 用 于 指 定 要 张 贴 到 新 闻 组 的 文 章 的 正 文 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t ∗ Se n d e r )
{
N M N N T P 1 -> P o s t B o d y -> A s s ig n ( M e m o 1 -> L in e s ) ;
N M N N T P 1 -> P o s t R e c o rd -> P r F rom A ddre s s = " y og i@ b oo b o o .c o m " ; N M N N T P 1 -> P o s t R e c o rd -> P r R e p ly T o = " y og i@ boo bo o .c o m " ;
N M N N T P1 -> Po s t R e c o rd -> Pr Su b je c t = " T e s t Po s t in g " ;
NM NNT P 1 -> P o s t R e c o rd -> P r N e w s G ro u p s = NM NNT P 1 -> S e le c te d G ro u p ; NM NNT P 1 -> A tta c h m e n ts -> A ss ig n ( L is t B o x 1 -> I te m s ) ;
NM NNT P 1 -> P o s t H e a d e r -> V a lu e s [" R e fe re r" ]= " w w w . n e tm a s te rs l lc . c o m " ; NM NNT P 1 -> P o s t A rtic le ( ) ;
}
Po s t H e a d e r 特 性
声 明 prope r ty P o s t H e a d e r : T E xS tr ingL is t;
这 个 特 性 用 于 指 定 要 张 贴 到 新 闻 组 的 文 章 的 头 标 程 序 示 例 请 参 见 Po s t B o d y
特 性
Po s tin g 特 性
声 明 prope r ty P o s ting: boo le a n ;
如 果 当 前 选 择 的 新 闻 组 允 许 张 贴 文 章 这 个 特 性 就 返 回 T ru e
R e m o te I P 特 性
声 明 prope r ty R e m o te IP : s tr ing ;
这 个 特 性 返 回 新 闻 服 务 器 的 IP 地 址 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : B u tton9C l ic k ( TO b je c t ∗ Se n d e r )
{
S h o w M e s sa g e (" C u r re n tly c o n n e c te d to : " + N M N N T P 1 -> R e m o te IP ) ;
}
R e p ly N u m be r 特 性
声 明 prope r ty R e p ly N u m b e r : L o n g in t;
这 个 只 读 的 特 性 返 回 NN T P 服 务 器 响 应 客 户 请 求 的 应 答 代 码
R e p o r t L e v e l 特 性
声 明 prope r ty R e po r t L e ve l : in te ge r ;
这 个 特 性 用 于 指 定 状 态 信 息 的 详 细 程 度 可 以 设 为 以 下 值 S ta tu s _N one S ta tu s _In f - o rm a t iona l S tatu s _ B as ic S ta tus _R ou tin e s S ta tu s _D e bug S ta tu s _ T ra c e
Se le c te d G ro u p 特 性
声 明 prope r ty S e le c te d G roup: s tr ing ;
调 用 了 S e t G roup 函 数 后 这 个 特 性 返 回 当 前 选 择 的 新 闻 组 名
S ta tu s 特 性
声 明 prope r ty S ta tus : S tr ing;
这 个 特 性 返 回 当 前 的 状 态 信 息
T im e o u t 特 性
声 明 prope r ty T im e O u t: In te ge r ;
这 个 特 性 用 于 指 定 一 个 毫 秒 数 如 果 超 过 规 定 的 时 间 S o ck et没 有 响 应 就 触 发异 常
Tra n s a c tio n R e p ly 特 性
声 明 prope r ty T ra n s a c tionR e p ly : S tr ing;
这 个 特 性 返 回 上 一 次 命 令 的 执 行 结 果 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : B u tton1C l ic k ( TO b je c t∗ Se n d e r )
{
NM NNT P 1 -> C o n n e c t( ) ;
S how M e s sa g e ( N M N N T P 1-> T ra nsa c tio nR e p ly ) ;
}
U s erI d 特 性
声 明 prope r ty U s e r Id : W ide S tr ing;
这 个 特 性 用 于 设 置 用 户 名 与 Pa ss w o rd 特 性 一 起 用 于 身 份 验 证
1 4. 2 N N T P 控 件 的 方 法
C o n n ec t 函 数
声 明 proc e dure C o n n e c t;
这 个 函 数 用 于 登 录 到 NN T P 服 务 器 H o s t Po r t U s e rId 和 Pa ss w o rd 等 特 性 必须 事 先 设 置 好
D is c o n n ec t 函 数
声 明 proc e dure D is c onne c t;
这 个 函 数 断 开 与 新 闻 服 务 器 的 连 接
G e t A r tic le 函 数
声 明 p ro c e d u re G e t A rtic le ( R e f : in te g e r ) ;
这 个 函 数 从 新 闻 服 务 器 的 当 前 新 闻 组 中 检 索 一 篇 文 章 R e f 参 数 指 定 该 文 章的 编 号 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::B u tto n 1 C lic k ( T O b je c t ∗ Se n d e r )
{
NM NNT P 1 -> G e t A r t ic le ( 1 5 6 ) ;
}
G e t A r tic le B o d y 函 数
声 明 p ro c e d u re G e t A rtic le B o d y ( R e f : in te g e r ) ;
这 个 函 数 用 于 从 新 闻 服 务 器 的 当 前 新 闻 组 中 检 索 一 篇 文 章 的 正 文 R e f 参 数指 定 该 文 章 的 编 号
G e t A r tic le H e a d e r 函 数
声 明 p ro c e d u re G e t A rtic le H e a d e r ( R e f : in te g e r ) ;
这 个 函 数 用 于 从 当 前 新 闻 组 中 检 索 一 篇 文 章 的 标 题 R e f 参 数 指 定 该 文 章 的编 号
G e t A r tic le L is t 函 数
声 明 proc e dure G e t A r tic le L is t( A ll: boo le a n; A r tic le N u m be r : in te g e r ) ;
这 个 函 数 用 于 从 当 前 选 择 的 新 闻 组 中 检 索 文 章 的 列 表 如 果 A ll 参 数 设 为T ru e 列 表 中 包 含 新 闻 组 中 的 所 有 文 章 如 果 A ll参 数 设 为 Fa ls e 列 表 中 只包 含 编 号 大 于 A rtic le N u m b e r 参 数 的 文 章 每 检 索 到 一 个 文 章 就 会 触 发 一次 O n H e a d e r L is t事 件
G e t G ro upL is t 函 数
声 明 proc e dure G e t G roupL is t;
这 个 函 数 很 重 要 用 于 获 得 新 闻 服 务 器 中 所 有 新 闻 组 的 列 表
Po s t A r tic le 函 数
声 明 proc e dure P o s t A r t ic le ;
这 个 函 数 用 于 张 贴 文 章 Po s t B o d y 特 性 和 P o s t H ead e r特 性 必 须 事 先 设 置 好
Se t G ro u p 函 数
声 明 proc e dure S e t G roup( G roup: S tr ing);
这 个 函 数 把 G roup 参 数 指 定 的 新 闻 组 设 为 当 前 新 闻 组 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::L is tB o x 1 D b l C lic k ( T O b je c t * S e n d e r ) ;
{
N M N N T P 1 -> S e tG ro u p (" a lt.p a s c a l.d e lp h i" ) ;
}
1 4. 3 N N T P 控 件 的 事 件
NNT P 控 件 的 事 件 往 往 是 与 调 用 某 个 方 法 相 关 联 的 如 果 事 件 被 触 发 通 常表 示 调 用 成 功 您 可 以 在 处 理 事 件 的 句 柄 中 得 到 NNT P 服 务 器 的 返 回 信 息
O n A r tic le 事 件
声 明 p ro p e r ty O n A rtic le : T N o tif y E v e n t ;
每 下 载 一 篇 文 章 就 会 触 发 一 次 这 个 事 件 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 A r tic le ( T O b je c t ∗ Se n d e r )
{
M e m o 1 -> T e x t = NM NNT P 1 -> H e a d e r -> T e x t ; M e m o2-> T e x t = N M N N T P 1 -> B o dy -> T e x t;
}
O n A r tic le C a c he U pda te 事 件
声 明 p ro p e r ty O n A r tic le C ach eU p d a te : T H an d ler E v en t;
其 中 T H an d ler E v en t是 这 样 声 明 的
T H a nd le r E v e n t = P roc e dure ( va r ha nd le d : boo le a n ) o f O b je c t ;
每 下 载 一 篇 文 章 并 且 该 文 章 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事 件
O n A u th e n tic a tio n F a ile d 事 件
声 明 prope r ty O n A u th e n tic a t ionF a i le d : T H a nd le r E v e n t;
其 中 T H an d ler E v en t是 这 样 声 明 的
T H a nd le r E v e n t = P roc e dure ( va r ha nd le d : boo le a n ) o f O b je c t ;
当 登 录 到 新 闻 服 务 器 时 如 果 没 有 事 先 给 出 用 户 名 和 口 令 或 者 用 户 名 和口 令 是 非 法 的 将 会 触 发 这 个 事 件 更 正 了 错 误 后 如 果 把 H a nd le d 参 数 设为 T ru e 将 再 登 录 一 遍
O n A u th en tica tio n N eed e d 事 件
声 明 prope r ty O n A u th e n tic a t ionN e e d e d : T H a nd le r E v e n t;
如 果 某 个 操 作 需 要 验 证 用 户 的 身 份 就 会 触 发 这 个 事 件
O n B o d y 事 件
声 明 prope r ty O n B o d y : T N o tif y E ve n t;
每 下 载 到 一 篇 文 章 的 正 文 就 会 触 发 这 个 事 件 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 B ody ( T O b je c t∗ Se n d e r )
{
M e m o1-> L in e s -> A s s ign ( N M N N T P 1 -> B o d y ) ;
}
O n B o dy C a c h e U pda te 事 件
声 明 p ro p e r ty O n B o d y C ach e U p d ate : T H a n d ler E v en t;
每 下 载 一 篇 文 章 的 正 文 并 且 该 正 文 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事件
O n C o n n ec t 事 件
声 明 prope r ty O n C onne c t: T N o tif y E v e n t;
当 客 户 已 经 成 功 地 连 接 到 新 闻 服 务 器 时 将 触 发 这 个 事 件
O n C o n n ectio n F a ile d 事 件
声 明 prope r ty O n C onne c tionF a ile d: T N o tify E ve n t;
当 客 户 试 图 登 录 到 新 闻 服 务 器 失 败 时 将 触 发 这 个 事 件
O n D is c o nne c t 事 件
声 明 prope r ty O n D is c onne c t: T N o tif y E v e n t;
当 客 户 断 开 与 新 闻 服 务 器 的 连 接 时 将 触 发 这 个 事 件 注 意 在 处 理 这 个 事件 的 句 柄 中 如 果 需 要 访 问 VC L 元 件 的 话 最 好 先 判 断 VC L 元 件 是 否 存 在
O n G ro u p L is t C a c h e U p d a te 事 件
声 明 prope r ty O n G roupL is t C a c h e U pda te : T G ro u p R e tr ie v e dC a c h e E v e n t;
其 中 T G roupR e tr ie v e d C a c h e E ve n t是 这 样 声 明 的
T G ro u p R e tr ie v e dC a c he E v e n t = P roc e du re ( v a r H a n d le d: b o o le a n; N a m e : s tr ing; F irs tA rtic le , L a s t A rtic le : in te g e r ; P o s tin g : b o o le a n ) o f o b je c t ;
每 当 检 索 到 一 个 新 闻 组 时 就 会 触 发 这 个 事 件 N a me 参 数 是 新 闻 组 名 称
F irs tA rtic le 参 数 是 新 闻 组 中 第 一 篇 文 章 的 编 号 L a s t A rtic le 参 数 是 新 闻 组 中最 后 一 篇 文 章 的 编 号 Po s tin g 参 数 为 T ru e 表 示 允 许 张 贴 文 章 程 序 示 例 如下
vo id _fa s tc a l l T F orm 1 : : N M N N T P 1 G ro upL is t C a c h e U p d a te ( b o o l & H a nd le d , A n s i S tr in g N a m e , in t F ir s t A r - t ic le , L a s t A r t ic le , bool P o s t in g)
{
L is t B o x 1 -> I te m s -> A d d ( N a m e ) ;
}
O n G ro u p S e le c t 事 件
声 明 prope r ty O n G roupS e le c t: T N o tif y E v e n t;
当 程 序 调 用 S e t G roup 函 数 选 择 了 当 前 新 闻 组 后 就 会 触 发 这 个 事 件
O n G ro u pSe le c t R e qu ire d 事 件
声 明 prope r ty O n G roupS e le c t R e qu ire d: T H a n d le r E v e n t;
NNT P 控 件 的 大 部 分 操 作 是 针 对 当 前 新 闻 组 进 行 的 如 果 当 前 没 有 指 定 新 闻组 就 会 触 发 这 个 事 件 程 序 示 例 如 下
vo id _ fa s tc a l l T F orm 1 : : N M N N T P 1 G roupS e le c t R e qu ire d( b o o l & H a n d le d )
{
A n s i S tr ing T m p S tr ;
if ( In p u tQ u e ry ( " N e w s g ro u p s e le c to io n R e q u ire d ! " ," E n te r N e w s G ro u p N a m e :" ,T m p S tr ) )
{
N M N N T P 1 -> S e t G ro u p (T m p S tr ) ; ha n d le d = true ;
}
}
O n H e a d e r 事 件
声 明 prope r ty O n H e a d e r : T N o tif y E ve n t;
每 检 索 到 一 篇 文 章 的 头 标 就 会 触 发 这 个 事 件 程 序 示 例 如 下
v o id _ fa s tc a ll T F o rm 1 ::N M N N T P 1 H e a d e r ( T O b je c t * S e n d e r )
{
M e m o 1 -> L in es -> A s s ig n ( N M N N T P 1 -> H ead er);
}
O n H e a d e r C a c he U pda te 事 件
声 明 prope r ty O n H e a d e r C a c h e U pda te : T H e a de r C a c he E v e n t ;
每 检 索 到 一 篇 文 章 的 头 标 并 且 该 头 标 需 要 保 存 到 缓 存 中 时 就 会 触 发 这 个 事件
O n I n v a lid A r tic le 事 件
声 明 prope r ty O n Inva l idA r tic le : T N o tify E v e n t;
如 果 要 下 载 的 文 章 不 存 在 就 会 触 发 这 个 事 件
O n I n v a lid H o s t 事 件
声 明 prope r ty O n Inva l idH os t: T H a nd le r E v e n t;
当 H o s t特 性 所 指 定 的 主 机 名 是 非 法 的 就 触 发 这 个 事 件
O n P o s te d 事 件
声 明 prope r ty O n P o s te d : T N o tify E ve n t;
当 一 篇 文 章 已 经 成 功 地 张 贴 到 新 闻 组 中 就 会 触 发 这 个 事 件