type
AWPARAM = record
size: Word; //该结构的长度
hwnd: HWND; //Authorware窗口的句柄
authoring: Bool;//是否处在开发状态,是返回true 否返回false
reserved1: LongInt;//保留
reserved2: LongInt;//保留
end {AWPARAM};
FAR = AWPARAM;
AWPARAM_PTR = ^AWPARAM //声明作为远指针调用
好了,将该参数结构描述加入工程文件(在uses语句之后),现在让我们使用这个参数来实现一个商业化的软件,还是以上面这个输入框函数为例,要求当用户在Athorware开发环境下使用时一切正常,当用户在打包
后生成的EXE文件中调用时弹出一个要求注册的模式对话框。
首先将上面函数改为:
……
function displayinputbox(winhandle: AWPARAM_PTR;aption,tiptxt,defaulttxt:Pchar):Thandle;stdcall;
……
begin //从此处插入以下代码
if winhandle.authoring=false then
messagebox(winhandle.hwnd,’这是一个未注册的Authorware插件’,’请注册’,MB_OK);
……
可是,现在的问题是:如果用户不调用AWPARAM 这个参数,岂不是会出错?
其实,Marcomedia公司早就想到了这一点。该参数只提供给程序员使用,对于用户而言,该参数
是隐藏的,不透明的,是一个“虚拟参数”也就是用户在使用这个函数时根本就不加入这个参数,而是由Authorware自行加入,就好像这个参数根本就不存在.
为了让Authorware识别这个参数,在字符串资源文件中需要作如下修改:
……
"ASSS\0",(第一个“A”表示要求Authorware传递一个AWPRRAM参数,切记!)
……
现在你可以坐在家里等收钱吧
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



