Windows Vista IE 7保护模式开发者生存指南
2008-08-22 17:24:11 来源:WEB开发网HRESULT IEGetWriteableHKCU(HKEY* phKey);
如果函数成功,就可在其他的注册表API中使用这个返回的HKEY来写入数据了。
提示用户保存文件
当IE运行于保护模式时,插件还有一个办法(非直接的)可写入到文件系统中,而且是在低权限区域之外,这是通过调用IEShowSaveFileDialog()显示一个保存文件对话框来完成的。如果用户输入了一个文件名,插件就能通过调用IESaveFile()让IE来写这个文件。要注意的是,这个操作总是会显示保存文件对话框,以确保用户知道将要写入一个文件。
保存文件的步骤如下:
1、调用IEShowSaveFileDialog()显示保存文件对话框。
2、调用IEGetWriteableFolderPath()获取IE缓存目录。
3、把数据写到缓存目录的一个临时文件中。
4、调用IESaveFile()把数据复制到用户选择的文件中。
5、清理临时文件
IEShowSaveFileDialog()是对通用文件保存对话框的一个包装函数:
HRESULT IEShowSaveFileDialog(
HWND hwnd,
LPCWSTR lpwstrInitialFileName,
LPCWSTR lpwstrInitialDir,
LPCWSTR lpwstrFilter,
LPCWSTR lpwstrDefExt,
DWORD dwFilterIndex,
DWORD dwFlags,
LPWSTR* lppwstrDestinationFilePath,
HANDLE* phState
);
hwnd是一个插件所有的窗口句柄,IE将会使用最顶层的所有者窗口作为对话框的父窗口;lppwstrDestinationFilePath是一个指向LPWSTR的指针,其为用户选择的文件路径;phState是一个指向HANDLE的指针,其为用户所选择文件的句柄,在调用其他API时,也会用到这个句柄。其他参数与OPENFILENAME结构中的对应成员用法类似。
IEShowSaveFileDialog()返回S_OK代表用户选择了某个文件名,S_FALSE代表取消了对话框,而失败的HRESULT代表API未成功。
更多精彩
赞助商链接