当用户选择了File/Open菜单项时,我们填充ofn的其他成员,然后调用GetOpenFileName函数显示一个“打开文件”对话框。
.if eax==TRUE
invoke CreateFile,ADDR buffer,\
GENERIC_READ or GENERIC_WRITE ,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,\
NULL
mov hFile,eax
如果用户选择了一个文件时,我们调用CreateFile函数来打开。我们设置标志位来让该函数的文件能够读写。文件打开后我们把返回的文件句柄保存在一个全局变量中以便以后使用。CreateFile函数应用非常广泛,其原型如下:
CreateFile proto lpFileName:DWORD,\
dwDesiredAccess:DWORD,\
dwShareMode:DWORD,\
lpSecurityAttributes:DWORD,\
dwCreationDistribution:DWORD\,
dwFlagsAndAttributes:DWORD\,
hTemplateFile:DWORD
dwDesiredAccess 指定想要进行的操作。
0 打开文件查询它的属性。
GENERIC_READ 打开文件读
GENERIC_WRITE 打开文件写.
dwShareMode 指定文件的共享模式。
0 不让其他进程共享,即当您打开该文件后,其他进程欲打开该文件时将失败。
FILE_SHARE_READ 允许其他进程读。
FILE_SHARE_WRITE 允许其他进程写。
lpSecurityAttributes 该属性在WIN95下无效。
dwCreationDistribution 指定欲生成的文件在其已存在和未存在时应做的动作。
CREATE_NEW 生成一个新文件。如果文件已存在则失败。
CREATE_ALWAYS 无论文件是否存在都生成一个新文件。
OPEN_EXISTING 打开存在的文件。如果文件不存在则失败。
OPEN_ALWAYS 打开文件,如果该文件不存在则生成,这和在dwCreationDistribution 中设置 CREATE_NEW标志位一样。
TRUNCATE_EXISTING打开文件。打开时该文件的长度裁减到零(也即完全不要原来的文件了)。这要求调用进程必须有GENERIC_WRITE的权利,如果指定的文件不存在,该函数返回失败。
dwFlagsAndAttributes 指定文件的属性。
FILE_ATTRIBUTE_ARCHIVE 该文件具有一般的归档文件的属性。用户可以用该标志位来标记文件的删除和备份。
FILE_ATTRIBUTE_COMPRESSED 文件或目录是压缩的。对于文件来说是压缩其中的所有数据,而对于目录来说新生成的子目录和文件都要压缩。
FILE_ATTRIBUTE_NORMAL 该文件没有一般的属性集。该标志位只能单独使用。
更多内容请看PCdog.com--Fireworks教程 PPT教程 电脑入门教程专题
